SMP (computer algebra system)

Symbolic Manipulation Program, usually called SMP, was a computer algebra system designed by Chris A. Cole and Stephen Wolfram at Caltech circa 1979. It was initially developed in the Caltech physics department with contributions from Geoffrey C. Fox, Jeffrey M. Greif, Eric D. Mjolsness, Larry J. Romans, Timothy Shaw, and Anthony E. Terrano.

SMP was first sold commercially in 1981, by the Computer Mathematics Corporation of Los Angeles, which later became part of Inference Corporation. Inference further developed the program and marketed it commercially from 1983 to 1988, but it was not a commercial success, and Inference became pessimistic about the market for symbolic math programs, and so abandoned SMP to concentrate on expert systems.

SMP was influenced by the earlier computer algebra systems Macsyma (of which Wolfram was a user) and Schoonschip (whose code Wolfram studied).

SMP follows a rule-based approach, giving it a "consistent, pattern-directed language". Unlike Macsyma and Reduce, it was written in C.

During the 1980s, it was one of the generally available general-purpose computer algebra systems, along with Reduce, Macsyma, and Scratchpad, and later muMATH and Maple. It was often used for teaching college calculus.

The design of SMP's interactive language and its "map" commands influenced the design of the 1984 version of Scratchpad.

Criticism
SMP has been criticized for various characteristics, notably its use of floating-point numbers instead of exact rational numbers, which can lead to incorrect results, and makes polynomial greatest common divisor calculations problematic. Many other problems in early versions of the system were purportedly fixed in later versions.

Additional sources

 * Chris A. Cole, Stephen Wolfram, "SMP: A Symbolic Manipulation Program", Proceedings of the fourth ACM symposium on Symbolic and algebraic computation (SIGSAM), Snowbird, Utah, 1981. full text
 * Stephen Wolfram with Chris A. Cole, SMP: A Symbolic Manipulation Program, Reference Manual, California Institute of Technology, 1981; Inference Corporation, 1983. full text
 * Stephen Wolfram, "Symbolic Mathematical Computation", Communications of the ACM, April 1985 (Volume 28, Issue 4). Despite the general-sounding title the focus is on an introduction to SMP. Online version of this article
 * J.M. Greif, "The SMP Pattern-Matcher" in B.F. Caviness (editor), Proceedings of EUROCAL 1985, volume 2, pgs. 303-314, Springer-Verlag Lecture Notes in Computer Science, no. 204, ISBN 3-540-15984-3 A discussion, with examples, of the capabilities, tasks, and design philosophy of the pattern-matcher.
 * SMP's manual "SMP Handbook"
 * Stephen Wolfram's blog post on the history of SMP's creation