The goal of this project is to develop an algebraic computation system that treats algebraic objects in a uniform manner. Users of this system will be able to introduce new objects using straightforward syntax and determine the properties of existing objects. There will be no distinction at the user level between system and user introduced types. Moreover, dynamic type checking will be the default, but static type resolution will be introduced in cases with no semantic ambiguity. The system will be divided into separately compilable modules. Collections of modules will form packages that follow a standard interface protocol, easing the task of interfacing other code or constructing special purpose systems from these packages. Transformations can be expressed either as rewrite rules or procedures, and code written in either form will coexist uniformly. The system evaluator will allow for the asynchronous parallel processing of calculation sub-tasks. In particular, it will be possible to distribute across workstations calculations with coarse- grained parallelism. An electronic mail server will be extended to provide for the evaluation of expressions as well as the distribution of documents and code.