## Description

First attempts to use computers for calculations not only with numbers but also with mathematical expressions (e.g., symbolic differentiation) were made in the 1950s. In the 1960s research in this direction became rather intensive. This area was known under different names: symbolic calculations, analytic calculations, and computer algebra. Recently this last name is most widely used. Why algebra and not, say, calculus? The reason is that it is most useful to consider operations usually referred to calculus (such as differentiation) as algebraic operations in appropriate algebraic structures (differential ﬁelds).

First universal (i.e., not specialized for some particular application area) computer algebra systems appeared at the end of the 1960s. Not many such systems have been constructed; they are shown in the Table 1.1. Creating a universal com-puter algebra system is a huge amount of work, at the scale of hundreds of man-years. Some projects of this kind were not sufﬁciently developed and subsequently died; they are not shown in Table 1.1.

Theoretical physicist A. Hearn (known to specialists for the DrellHearn sum rule) has written a Lisp program REDUCE to automatize some actions in calculating Feynman diagrams. It quickly grew into a universal system. At ﬁrst, it was distributed free (it was sufﬁcient to ask for Hearn’s permission) and became widely used by physicists. Later it became commercial. At the end of 2008 it has become free, with a modiﬁed BSD license.

Macsyma was born in the MAC project at MIT (1969), the name means MAC SYmbolic MAnipulator. The project has nothing to do with Macintosh computers, which appeared much later. Its name had several ofﬁcial meanings (Multiple-Access Computer, Man And Computer, Machine Aided Cognition) and some unofﬁcial ones (Man Against Computer, Moses And Company, Maniacs And Clowns, etc.). The work was done on a single PDP-6, later PDP-10 computer (about 1 MByte memory; there were no bytes back then, but 36-bit words). One of the ﬁrst time-sharing operating systems, ITS, was written for this computer, and many users at once worked on it interactively. Later this computer became one of the ﬁrst nodes of ARPANET, the ancestor if Internet, and users from other universities could use Macsyma.

The company Symbolics was spun off MIT. It produced Lisp machines—computers with a hardware support of Lisp, as well as software for these computers, including Macsyma—the largest Lisp program at that time. Later production of Lisp machines became unproﬁtable, because general-purpose workstations (Sun, etc.) became faster and cheaper. Symbolics went bankrupt; Macsyma business was continued by Macsyma Inc., who sold Macsyma for a number of platforms and operating systems. Its market share continued to shrink because of the success of Maple and Mathematica, and ﬁnally the company was sold in 1999 to Andrew Topping. The new owner stopped Macsyma development and marketing. Then he died, and the rights to the commercial Macsyma now belong to his inheritors. All efforts spent on improving this branch of Macsyma are irreversibly lost.

Fortunately, this was not the only branch. Macsyma development at MIT was largely funded by DOE, and MIT transferred this codebase to DOE who distributed it. This version was ported to several platforms. All these ports died except one. Professor William Schelter ported DOE Macsyma to Common Lisp, the new Lisp standard, and developed this version until he died in 2001. This version was called Maxima, to avoid trademark problems. In 1998 he obtained permission from DOE to release Maxima under GPL. He also developed GCL (GNU Common Lisp). Currently Maxima is an active free software project and works on many Common Lisp implementations.

Macsyma has played a huge role in the development of computer algebra systems. It was the ﬁrst system in which modern algorithms for polynomials, integration in elementary functions, etc., were implemented (REDUCE and Mac-syma inﬂuenced each other strongly and are rather similar to each other). Macsyma was designed as an interactive system. For example, if the form of an answer depends on the sign of a parameter, it will ask the user

Is a positive or negative?

Scratchpad was born in IBM research laboratories (1974). At ﬁrst it did not differ from other systems (Macsyma, REDUCE) very much and borrowed chunks of code from them. It was radically redesigned in the version Scratchpad II (1985).

And this design, perhaps, still remains the most beautiful one from a mathematical point of view. It is a strongly typed system (the only one among universal computer algebra systems). Any object (formula) in it belongs to some domain (e.g., it is a single-variable polynomial with integer coefﬁcients). Each domain belongs to some category (e.g., it is a ring, or a commutative group, or a totally ordered set). New domains can be constructed from existing ones. For example, a matrix of elements belonging to any ring can be constructed. It is sufﬁcient to program a matrix multiplication algorithm once. This algorithm calls the operations of addition and multiplication of the elements. If matrices of rational numbers are being multiplied, then addition and multiplication of rational numbers are called; and if matrices of polynomials—then addition and multiplication of polynomials.

Scratchpad was never distributed to end users by IBM. At last, IBM decided to stop wasting money for nought (or for basic research) and sold Scratchpad II to the English company NAG (famous for its numerical libraries). It marketed this system under the name Axiom. However, the product did not bring enough proﬁt and was withdrawn in 2001.

Axiom development took about 300 man-years of work of researchers having highest qualiﬁcation. All this could easily disappear without a trace. Fortunately, one of old-time Scratchpad II developers at IBM, Tim Daly, has succeeded in convincing NAG to release Axiom under the modiﬁed BSD license. Now it is a free software project and still the most beautiful system from mathemat-ical point of view. But unfortunately, due to incompatible visions of the directions of the future development, two forks appeared—OpenAxiom and FriCAS. And it is not clear which one is better.

muMATH (Soft Warehouse, Hawaii, 1979) got to the list of universal computer algebra systems with some stretch. It was written for microprocessor systems with a very limited memory (later called personal computers); mu in its name, of course, means μ , i.e., micro. This system never implemented advanced modern algorithms. It used heuristic methods instead, as taught in university calculus courses: let’s try this and that, and if you can’t get it, you can’t get it. But it was surprisingly powerful at its humble size. The system has been essentially rewritten in 1988 and got a menu interface, graphics, and the new name, Derive. Then Soft Warehouse was bought by Texas Instruments, who presented a calculator with a (Derive-based) computer algebra system in 1995. Derive was withdrawn from market in 2007.

All these systems can be referred to the ﬁrst generation. They are all written in various dialects of Lisp. They were considered related to the area of artiﬁcial intelligence.

The ﬁrst representative of the second generation is the Canadian system Maple. It has a small kernel written in C, which implements an interpreted procedural language convenient for writing computer algebra algorithms. The major part of its mathematical knowledge is contained in the library written in this language. Maple can work on many platforms. It quickly became popular. In 2009 Maplesoft (Waterloo Maple Inc.) has been acquired by the Japanese company Cybernet Systems Group; development of Maple is not affected. By the way, numerical program MathCAD used a cutdown version of Maple to provide some computer algebraic capabilities.