A review of Macsyma
---
paper_title: MACSYMA - the fifth year

paper_content:

MACSYMA is a large symbolic and algebraic manipulation system which has been under development at Project MAC, M.I.T. since 1969. We first discuss some of the design decisions, such as multiple representations, that led to the current system. We then give a brief description of the facilities of MACSYMA by dividing the system into seven packages: language and interactive facilities, general representation, rational function representation and related algorithms, the integration subsystem, the power series subsystem, the MACLISP system, and miscellaneous facilities.
---
paper_title: The legacy of MATHLAB 68

paper_content:

MATHLAB 68 is an on-line system providing machine aid for the mechanical symbolic processes encountered in analysis. It is capable of performing, automatically and symbolically, such common procedures as differentiation, polynomial factorization, indefinite integration, direct and inverse Laplace transforms, and the solution of linear differential equations with constant (symbolic) coefficients. We discuss its interactive nature and its range of services which extends from ignorant bookkeeper to, on occasion, expert problem solver. We also describe the internal data representations and algorithms of the system. The paper regards the system as a fixed object and explores its accomplishments, its contributions to future systems, the motivation and consequences of the major decisions made during its development and, perhaps most important of all, its weaknesses.
---
paper_title: Conform: a conformal mapping system

paper_content:

Conform consists of a collection of LISP routines that permit the real time manipulation and display of conformal mappings of one complex plane onto another.
---
paper_title: The design of a language for algebraic computation systems

paper_content:

This thesis describes the design of a language to support a mathematics-oriented symbolic algebra system. The language, which we have named NEWSPEAK, permits the complex interrelations of mathematical types, such as rings, fields and polynomials to be described. Functions can be written over the most general type that has the required operations and properties and then inherited by subtypes. All function calls are generic, with most function resolution done at compile time. Newspeak is type-safe, yet permits runtime creation of types.
---
paper_title: SCRATCHPAD/360: reflections on a language design

paper_content:

The key concepts of the SCRATCHPAD language are described, assessed, and illustrated by an example. The language was originally intended as an interactive problem solving language for symbolic mathematics. Nevertheless, as this paper intends to show, it can be used as a programming language as well.
---
paper_title: Pattern matching algebraic identities

paper_content:

The problem of matching an identity to a function is explored. Two methods of improving the speed of the matching process are given. One involves detecting failure as early as possible in the matching process. The other is a notational extension that improves the scaling behaviour of the identity.
---
paper_title: The SMP Pattern Matcher

paper_content:

A new pattern matcher has been implemented for the symbolic manipulation program SMP. The pattern matcher correctly treats associative and commutative functions, functions with arbitrary symmetries under permutations of their arguments, and patterns subject to arbitrary logical predicates. A pattern is said to match a candidate instance if the set of expressions it represents is a superset of those represented by the instance (either or both may contain generic symbols which match possibly infinite sets of expressions). The matcher is primarily syntactic, but is able to find matches for syntactically different expressions which become literally equivalent upon replacing the generic symbols in the pattern by their bindings to subexpressions of the instance and simplifying the result. The bindings must be determined by literal comparison with the instance, not by solving equations.
---
paper_title: Mathematics and the Imagination

paper_content:

Emphasizes the approach to mathematics rather than an explanation of the hows and whys of the subject. The author argues that maths is analogous to a fairyland ruled by logic, and that the only restraint on what math can provide is the reader's lack of imagination in using its principles.
---

Title: A Review of Macsyma

Section 1: Introduction
Description 1: Write a brief overview of the achievements and problems associated with Macsyma.

Section 2: Comments on Selected Features
Description 2: Discuss various features of Macsyma, highlighting successes and failures.

Section 3: Input
Description 3: Describe the parsing and user language aspects of Macsyma, including methods for extending syntax.

Section 4: The Language Semantics
Description 4: Explain the semantics of Macsyma's programming language and its relationship to mathematical and LISP semantics.

Section 5: Prospects for the Future: the Language
Description 5: Provide suggestions for future enhancements in the input system and overall language design.

Section 6: Display
Description 6: Discuss the evolution and capabilities of Macsyma's display program and the challenges associated with it.

Section 7: Conjunction of Data Types
Description 7: Outline how Macsyma handled multiple data types and the implications of this approach.

Section 8: Summary: Data Structuring
Description 8: Summarize the insights and challenges related to Macsyma's data structuring methods.

Section 9: Pattern Matching
Description 9: Detail the various pattern matching systems used in Macsyma and their efficacy.

Section 10: Summary of Matching
Description 10: Provide an overall assessment of the pattern matching capabilities and ongoing issues.

Section 11: Paradigms of Knowledge-Adjunction
Description 11: Explain how users could add new knowledge to Macsyma, particularly through the "assume" facility.

Section 12: Algorithm Collection and Evaluation
Description 12: Review the algorithms incorporated into Macsyma, their development, and evaluation process.

Section 13: User Community
Description 13: Describe the growth and impact of the user community on the development of Macsyma.

Section 14: Software Engineering
Description 14: Discuss the software engineering practices employed in developing Macsyma and their evolution.

Section 15: Documentation
Description 15: Evaluate the quality and challenges of the user documentation for Macsyma.

Section 16: Inconsistency, Wrongness
Description 16: Highlight issues with inconsistencies and erroneous results in Macsyma.

Section 17: Non-modularity, Non-extensibility
Description 17: Explain the issues related to the non-modular and non-extensible aspects of Macsyma's design.

Section 18: Inefficiency on Large Expressions
Description 18: Discuss the inefficiencies encountered when Macsyma processed large expressions.

Section 19: Input and Output
Description 19: Review the limitations and capabilities of Macsyma's input and output functionalities.

Section 20: Model of User
Description 20: Describe the perceived model of the user in Macsyma's design and its implications.

Section 21: Interactivity
Description 21: Explain how interactive features were implemented in Macsyma and their evolution.

Section 22: Conclusions
Description 22: Summarize the key points of the review and provide concluding thoughts on the system.

Section 23: Epilog
Description 23: Provide an epilog discussing the developments after 1982 and the legacy of Macsyma.