19.07.2014 Views

Contents - Student subdomain for University of Bath

Contents - Student subdomain for University of Bath

Contents - Student subdomain for University of Bath

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1.1. HISTORY AND SYSTEMS 15<br />

1.1 History and Systems<br />

The first recorded use <strong>of</strong> computers to do computations <strong>of</strong> the sort we envisage<br />

was in 1951 [MW51], where 180 ( 2 127 − 1 ) 2<br />

− 1, a 79-digit number, was shown<br />

to be prime. In 1952 the great mathematician Emil Artin had the equally great<br />

computer scientist John von Neumann per<strong>for</strong>m an extensive calculation relating<br />

to elliptic curves on the MANIAC computer [ST92, p. 119]. In 1953, two theses<br />

[Kah53, Nol53] kicked <strong>of</strong>f the ‘calculus’ side <strong>of</strong> computer algebra with programs<br />

to differentiate expressions. In the same year, [Has53] showed that algorithms<br />

in group theory could be implemented on computers.<br />

1.1.1 The ‘calculus’ side<br />

The initial work [Kah53, Nol53] consisted <strong>of</strong> programs to do one thing, but the<br />

focus soon moved on to ‘systems’, capable <strong>of</strong> doing a variety <strong>of</strong> tasks. One<br />

early one was Collins’ system SAC [Col71], written in Fortran. Its descendants<br />

continue in SAC-2 [Col85] and QEPCAD [Bro03]. Of course, computer algebra<br />

systems can be written in any computer language, even Cobol [fHN76].<br />

However, many <strong>of</strong> the early systems were written in LISP, largely because <strong>of</strong><br />

its support <strong>for</strong> garbage collection and large integers. The group at M.I.T., very<br />

influential in the 1960s and 70s, developed MACSYMA [MF71, PW85]. This<br />

system now exists in several versions [Ano07]. At about the same time, Hearn<br />

developed Reduce [Hea05], and shortly after a group at IBM Yorktown Heights<br />

produced SCRATCHPAD [GJY75]. This group then produced AXIOM [JS92],<br />

a system that attempted to match the generality <strong>of</strong> mathematics with ‘generic<br />

programming’ to allow algorithms to be programmed in the generality in which<br />

they are conventionally (as in this book) stated.<br />

These were, on the whole, very large s<strong>of</strong>tware systems, and attempts were<br />

made to produce smaller ones. muMATH [RS79] and its successor DERIVE<br />

[RS92] were extremely successful systems on the early PC, and paved the way <strong>for</strong><br />

the computer algebra facilities <strong>of</strong> many high-end calculators. Maple [CGGG83]<br />

pioneered a ‘kernel+library’ design.<br />

The basic Maple system, the kernel, is a relatively small collection <strong>of</strong><br />

compiled C code. When a Maple session is started, the entire kernel<br />

is loaded. It contains the essential facilities required to run Maple<br />

and per<strong>for</strong>m basic mathematical operations. These components include<br />

the Maple programming language interpreter, arithmetic and<br />

simplification routines, print routines, memory management facilities,<br />

and a collection <strong>of</strong> fundamental functions. [MGH + 03, p. 6]<br />

1.1.2 The ‘group theory’ side<br />

Meanwhile, those interested in computation group theory, and related topics,<br />

had not been idle. One major system developed during the 1970s/80s was CAY-<br />

LEY [BC90]. This team later looked at Axiom, and built the system MAGMA

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!