SAINT(ID:153/sai003)

A program to do formal integration 


Symbolic Automatic INTegrator. J. Slagle, MIT 1961. Written in LISP.

A program to do formal integration (Sammett 1961)


Related languages
LT => SAINT   Influence

References:
  • Slagle, J. A heuristic program that solves symbolic integration problems in freshman calculus. Ph.D. diss., MIT, May 1961 view details
  • Slagle, J. R. "A heuristic program that solves symbolic integration problems in freshman calculus: symbolic automatic integrator (SAINT)" Report 5 G-0001, MIT Lincoln Laboratory, May 10, 1961 view details
  • Slagle, James R. "A Heuristic Program that Solves Symbolic Integration Problems in Freshman Calculus" pp507-520 view details Abstract: A large high-speed general-purpose digital computer (IBM 7090) was programmed to solve elementary symbolic integration problems at approximately the level of a good college freshman. The program is called SAINT, an acronym for "Symbolic Automatic INTegrator." This paper discusses the SAINT program and its performance. SAINT performs indefinite integration. It also performs definite and multiple integration when these are trivial extensions of indefinite integration. It uses many of the methods and heuristics of students attacking the same problems. SAINT took an average of two minutes each to solve 52 of the 54 attempted problems taken from the Massachusetts Institute of Technology freshman calculus final examinations. Based on this and other experiments with SAINT, some conclusions concerning computer solution of such problems are: (1) Pattern recognition is of fundamental importance. (2) Great benefit would have been derived from a larger memory and more convenient symbol manipulating facilities. (3) The solution of a symbolic integration problem by a commercially available computer is far cheaper and faster than by man. Extract: Introduction
    Introduction
    A large high-speed general-purpose digital computer (IBM 7090) was programmed
    to solve elementary symbolic integration problems at approximately
    the level of a good college freshman. The program is called SAINT, an acronym
    for "Symbolic Automatic INTegrator." The SAINT program is written in
    LISP [5] and most of the work reported here is the substance of a doctoral dissertation
    at the Massachusetts Institute of Technology [13]. This paper discusses
    the SAINT program and its performance.
    Some typical samples of SAINT's external behavior are given so that the
    reader may think in concrete terms. Let SAINT read into its card reader an
    IBM card containing (in a suitable notation) the symbolic integration problem,
    f xe ~ dx. In less than a minute a half, prints out answer, ½e ~2. and SAINT the
    Except where otherwise noted, every problem mentioned in this paper has been
    solved by SAINT. Note that SAINT omits the constant of integration, and we,
    too, shall ignore it throughout our discussion. After working for less than a
    minute on the problem f e ~ dx (which cannot be integrated in elementary form)
    SAINT prints out that it cannot solve it.
    SAINT performs indefinite integration, also called antidifferentiation. In
    * Received March, 1963.
    t This work was done in part at the Massachusetts Institute of Technology Computation
    Center.
    Operated with support from the U. S. Army, Navy and Air Force.
    507
    50S JAMES ~. SI,,kGI,E
    addition, it performs definite and multiple infegration when these are trivial
    extensions of indefinite integration. SAINT handles integrands that represent
    explicit elementary functions of a real variable which, for the sake of brevity,
    will be called elementary functions. The elementary functions are tl~e functions
    normally encountered in freshman integral caleulus, except that SAINT does
    not handle hyperbolic notation. The elementary functions are defined recursively
    as follows:
    a. Any real constant is an elementary function.
    b. The variable is an elementary function.
    c. The finite sum or finite product of elementary functions is an elementary
    function.
    d. An elementary function raised to an elementary function power is an
    elementary function.
    e. A trigonometric function of an elementary funct, ion is an elementary
    function.
    f. A logarithmic or inverse trigonometric function of an elementary function
    (restricted in range if necessary) is an elementary function.
    Currently, SAINT uses 26 standard forms. It uses 18 kinds of transformations
    including integration by parts and various substitution methods. Other methods,
    including the method of partial fractions, are excluded because of storage limita.
    tions. (When given two problems requiring the method of partial fractions
    SAINT found nothing to try and reported failure.) Since the SAINT program
    uses heuristic methods to search for solution, it is by definition a heuristic program.
    Although many author have given many definitions, in this paper a
    heuristic method (or simply a heuristic) is a method which generates a problem's
    solution by a trial and error process (involving feedback). Extract: Heuristic
    10. Heuristic goal list. A list of goals requiring heuristic transformations, or,
    more briefly, a heuristic goal list, is an ordered list of those goals which are neither
    of standard form nor amenable to an algorithm-like transformation. A member
    of the heuristic goal list is called a heuristic goal. New such goals are inserted in
    order of increasing relative cost estimate.
    11. Heuristic transformations. A transformation of a goal is called heuristic
    when, even though it is applicable and plausible, there is a significant risk that
    it is not the appropriate next step. In practice, the distinction between heuristic
    and algorithm-like transformations is largely empirical. The heuristic transformations
    are analogous to the methods of detachment, forward chaining and
    backward chaining in the LOGIC THEORIST of Newell, Shaw, and Simon [8].
    The ten types of heuristic transformations [13] used by SAINT are designed to
    suggest plausible transformations of the integrand, substitutions and attempts
    using the method of integration by parts. Below is given only the most successful
    heuristic, "substitution for a subexpression whose derivative divides the inte- :
    grand."
    Let g (v) be the integrand. For each nonconstant nonlinear subexpression s (v)
    such that neither its main connective is MINUS nor is it a product with a constant
    factor, and such that the number of nonconstant factors of the fraction g(v)/ ;
    s' (v) (after cancellation) is less than the number of factors of g (v), try substituting
    u = s (v). Thus, in [ x sin x ~ dx, substitute u = X 2. Extract: Heuristic
    Realization of SAINT on a Computer
    For t~he most part, the implementation of the integration procedure described
    above is straightforward though very lengthy. The programming language used
    is LISP [5], as implemented on the IBM 709 and 7090. LISP manipulates symbolic
    expressions represented in LIST structures in much the same manner as
    an IPL language. About a third of the 32,768 register memory of the computer
    is occupied by the LISP system, which includes many general-purpose programs
    written by others. Another third is occupied by prerequisite programs. The
    remaining third is occupied by the SAINT program. Since the program is so
    large, full details cannot be given here, although more details are given in [13].
    Also, since the program is so large, only about 3000 registers are available for
    working space in the free storage list, despite great effort to make this list as
    large as possible. The overall procedure is embodied in a LISP program called
    INTEGRAL with three inputs, namely, the integrand, the variable of integration
    and the resource allotment. The output of the program is either the integral
    or an indication of failure.
    Each goal is represented by an object in the sense of LISP. When a new goal
    is created, a unique print name such as, G0002, is assigned. In addition to its
    print name, the association list of a goal contains or may contain:
    1. ACTIVE. If ACTIVE Occurs on the association list of a goal, that goal is
    alive; otherwise it is dead.
    2. Two consecutive elements, INTEGRAND and the integrand.
    3. Two consecutive elements, SUBGOA~S and the list of subgoals. Some goals
    have no subgoals, in which case these two elements do not appear.
    4. Two consecutive elements, SUPERGOALS and a list of pairs; the first member
    of each pair is the name of a supergoal. The second member of the pair describes
    how the solution to the supergoal problem is related to the solution of the problem,
    and is either: (a) COMPONENT, which denotes that the supergoal integrand
    is a sum which was decomposed, or (b) an expression which represents a program
    which, when applied to the solution of this goal, will have for its output the solution
    of the supergoal.
    The original problem has no supergoals. The supergoal and subgoal lists fully
    specify the goal tree (and are the latter's only representation); operations such
    as pruning on the goal tree are performed by operating on these lists.
    5. Four elements, CHARACTER, the character, RELATIVECOSTESTIMATE and tile
    relative cost estimate. These four elements are associated with the goal only if
    it is put on the heuristic goal list.
    6. Two elements, INTEGRAL and the solution to the problem. These elements
    are associated with the goal only if it has been achieved.
    As soon as a new goal g is generated, SAINT uses straightforward methods in
    an attempt to achieve it. While doing this, SAINT may add g or certain of g's
    subgoals to the temporary goal list. If g is achieved, an attempt is made to achieve
    the original goal. This is embodied in the following iterative program, IMSLN [S]
    where s is some final segment of the goal list. In general, the final segment of a
    list (gl, g2, ? ? ? , g~) is either the empty list or one of the n lists (gi, g~+l, ? ? ? , g,,)
    for each i = 1, 2, ? ? ? , n. During the execution of the IMSLN program, any goals
    appended to the goal list will also be appended to the final segment. The initial
    value of s is (g) where g is either the original goal or a goal generated by a
    heuristic transformation. Below is given the iterative procedure IMSLN [8].
    a. If s is empty, return with FALSE.
    b. Let us consider the goal g~, the first member oF s. If gi is the same as some other unachieved
    goal, h, which precedes gi on the goal list, then make the supergoal of gl an
    other supergoal of h and calculate I~S~,N of the rest of s, that is, delete g~ the first member
    of s and go to step "a".
    e. if g~ is directly achievable either because it is the same as some previously achieved
    goal or because it is of standard form, achieve it. Then, if pruning with respect to g~
    achieves the original goal, terminate with this fact; otherwise calculate I~snN of the
    rest of s.
    d. If some algorithm-like transformation is appropriate for g~ , apply it and calculate
    IMSLN of the rest of s.
    e. Otherwise, append g~ to the end of the temporary goal list and calculate IMSLN of the
    rest of s.
          in [ACM] JACM 10(04) October 1963 view details
  • Sammet, Jean E. "Formula Manipulation by Computer" view details Extract: SAINT
    It is a well known fact learned in freshman calculus that one can formally differentiate almost any expression, while such a statement is definitely not true for integration. Integration of polynomials is quite trivial; integration of an arbitrary function is quite difncult. Thus, it is not surprising that there has been almost no work done in this area, the only major exception being the SAINT system by Slagle, which currently stands as a monument to the handling  of  integration  on a digital computer. In this program he employs heuristic techniques to perform integration;  the program does quite well on an MIT freshman calculus examination. Slagle has tried to  handle a very  wide class of functions and as a result sometimes runs out of time or space in trying to do the integration.  

          in Advances in Computers, Vol. 8 FL Alt and M Rubinoff (Eds.), Academic Press, New York, 1967 view details
  • Sammet, Jean E. "Revised Annotated Descriptor Based Bibliography for the Use of Computers for Non-Numerical Mathematics" view details
          in Bobrow, D. G. (ed) "Symbol Manipulation Languages and Techniques", Proceedings of the IFIP Working Conference on Symbol Manipulation Languages. North-Holland Publishing Co., Amsterdam, 1968 view details
  • Sammet, Jean E. "Computer Languages - Principles and History" Englewood Cliffs, N.J. Prentice-Hall 1969. p.410. view details
          in Bobrow, D. G. (ed) "Symbol Manipulation Languages and Techniques", Proceedings of the IFIP Working Conference on Symbol Manipulation Languages. North-Holland Publishing Co., Amsterdam, 1968 view details
  • Moses, Joel "Symbolic integration: the stormy decade" view details Abstract: Three approaches to symbolic integration in the 1960's are described. The first, from artificial intelligence, led to Slagle's SAINT and to a large degree to Moses' SIN. The second, from algebraic manipulation, led to Manove's implementation and to Horowitz' and Tobey's reexamination of the Hermite algorithm for integrating rational functions. The third, from mathematics, led to Richardson's proof of the unsolvability of the problem for a class of functions and for Risch's decision procedure for the elementary functions. Generalizations of Risch's algorithm to a class of special functions and programs for solving differential equations and for finding the definite integral are also described.
          in [ACM] CACM 14(08) August 1971 view details
  • Stock, Karl F. "A listing of some programming languages and their users" in RZ-Informationen. Graz: Rechenzentrum Graz 1971 206 view details Abstract: 321 Programmiersprachen mit Angabe der Computer-Hersteller, auf deren Anlagen die entsprechenden Sprachen verwendet werden kennen. Register der 74 Computer-Firmen; Reihenfolge der Programmiersprachen nach der Anzahl der Herstellerfirmen, auf deren Anlagen die Sprache implementiert ist; Reihenfolge der Herstellerfirmen nach der Anzahl der verwendeten Programmiersprachen.

    [321 programming languages with indication of the computer manufacturers, on whose machinery the appropriate languages are used to know.  Register of the 74 computer companies;  Sequence of the programming languages after the number of manufacturing firms, on whose plants the language is implemented;  Sequence of the manufacturing firms after the number of used programming languages.]
          in [ACM] CACM 14(08) August 1971 view details
  • Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 511 view details Abstract: PREFACE  AND  INTRODUCTION
    The exact number of all the programming languages still in use, and those which are no longer used, is unknown. Zemanek calls the abundance of programming languages and their many dialects a "language Babel". When a new programming language is developed, only its name is known at first and it takes a while before publications about it appear. For some languages, the only relevant literature stays inside the individual companies; some are reported on in papers and magazines; and only a few, such as ALGOL, BASIC, COBOL, FORTRAN, and PL/1, become known to a wider public through various text- and handbooks. The situation surrounding the application of these languages in many computer centers is a similar one.

    There are differing opinions on the concept "programming languages". What is called a programming language by some may be termed a program, a processor, or a generator by others. Since there are no sharp borderlines in the field of programming languages, works were considered here which deal with machine languages, assemblers, autocoders, syntax and compilers, processors and generators, as well as with general higher programming languages.

    The bibliography contains some 2,700 titles of books, magazines and essays for around 300 programming languages. However, as shown by the "Overview of Existing Programming Languages", there are more than 300 such languages. The "Overview" lists a total of 676 programming languages, but this is certainly incomplete. One author ' has already announced the "next 700 programming languages"; it is to be hoped the many users may be spared such a great variety for reasons of compatibility. The graphic representations (illustrations 1 & 2) show the development and proportion of the most widely-used programming languages, as measured by the number of publications listed here and by the number of computer manufacturers and software firms who have implemented the language in question. The illustrations show FORTRAN to be in the lead at the present time. PL/1 is advancing rapidly, although PL/1 compilers are not yet seen very often outside of IBM.

    Some experts believe PL/1 will replace even the widely-used languages such as FORTRAN, COBOL, and ALGOL.4) If this does occur, it will surely take some time - as shown by the chronological diagram (illustration 2) .

    It would be desirable from the user's point of view to reduce this language confusion down to the most advantageous languages. Those languages still maintained should incorporate the special facets and advantages of the otherwise superfluous languages. Obviously such demands are not in the interests of computer production firms, especially when one considers that a FORTRAN program can be executed on nearly all third-generation computers.

    The titles in this bibliography are organized alphabetically according to programming language, and within a language chronologically and again alphabetically within a given year. Preceding the first programming language in the alphabet, literature is listed on several languages, as are general papers on programming languages and on the theory of formal languages (AAA).
    As far as possible, the most of titles are based on autopsy. However, the bibliographical description of sone titles will not satisfy bibliography-documentation demands, since they are based on inaccurate information in various sources. Translation titles whose original titles could not be found through bibliographical research were not included. ' In view of the fact that nany libraries do not have the quoted papers, all magazine essays should have been listed with the volume, the year, issue number and the complete number of pages (e.g. pp. 721-783), so that interlibrary loans could take place with fast reader service. Unfortunately, these data were not always found.

    It is hoped that this bibliography will help the electronic data processing expert, and those who wish to select the appropriate programming language from the many available, to find a way through the language Babel.

    We wish to offer special thanks to Mr. Klaus G. Saur and the staff of Verlag Dokumentation for their publishing work.

    Graz / Austria, May, 1973
          in [ACM] CACM 14(08) August 1971 view details
  • Geddes, K.O. ; Czapor S.R. and G. Labahn, "Algorithms for Computer Algebra" Kluwer Academic Publishers, Boston, 1992 view details Extract: Extract from Chapter one
    A BRIEF HISTORICAL SKETCH
    -------------------------

    The development of systems for symbolic mathematical computation first became
    an active area of research and implementation during the decade 1961-1971.
       . . .
       . . .

    To put the decade 1961-1971 into perspective, let us recall that FORTRAN
    appeared about 1958 and ALGOL in 1960. These two languages were designed
    primarily for numerical mathematical computation.
    Then in 1960/1961 came the development of LISP, a language for list
    processing. LISP was a major advancement on the road to languages for
    symbolic computation. An operation such as symbolic differentiation which
    is foreign to FORTRAN and ALGOL is relatively easy in LISP. (Indeed this
    is one of the standard programming assignments for students first learning
    LISP.) As will be noted later, several computer algebra systems were
    written in LISP.

    1961-1966
    ---------

    In 1961, James Slagle at M.I.T. wrote a LISP program called SAINT
    for Symbolic Automatic INTegration.
    This was one of the earliest applications of LISP to symbolic computation
    and it was the first comprehensive attempt to program a computer to behave
    like a freshman calculus student.
    The program was based on a number of heuristics for indefinite integration
    and it performed about as well as a good calculus student.

    One of the first systems for symbolic computation was FORMAC, developed
    by Jean Sammet, Robert Tobey, and others at IBM during the period 1962-1964.
    It was a FORTRAN preprocessor (a PL/I version appeared later) and it was
    designed for the manipulation of elementary functions including, of course,
    polynomials and rational functions.
    Another early system was ALPAK, a collection of FORTRAN-callable subroutines
    written in assembly language for the manipulation of polynomials and rational
    functions. It was designed by William S. Brown and others at Bell Laboratories
    and was generally available about 1964.
    A language now referred to as Early ALTRAN was designed at Bell Laboratories
    during the period 1964-1966. It used ALPAK as its package of computational
    procedures.

    There were two other significant systems for symbolic computation developed
    during this period. George Collins at IBM and the University of Wisconsin
    (Madison) developed PM, a system for polynomial manipulation, an early
    version of which was operational in 1961 with improvements added to the
    system through 1966. The year 1965 marked the first appearance of MATHLAB,
    a LISP-based system for the manipulation of polynomials and rational
    functions, developed by Carl Engelman at M.I.T. It was the first interactive
    system designed to be used as a symbolic calculator. Included among its
    many firsts was the use of two-dimensional output to represent its
    mathematical output.

    The work of this period culminated in the first ACM Symposium on Symbolic
    and Algebraic Manipulation held in March 1966 in Washington, D.C.
    That conference was summarized in the August 1966 issue of the Communications
    of the ACM.

    1966-1971
    ---------

    In 1966/1967, Joel Moses at M.I.T. wrote a LISP program called SIN
    (for Symbolic Integrator). Unlike the earlier SAINT program, SIN was
    algorithmic in approach and it was also much more efficient.
    In 1968, Tony Hearn at Stanford University developed REDUCE, an
    interactive LISP-based system for physics calculations. One of its
    principal design goals was portability over a wide range of platforms,
    and as such only a limited subset of LISP was actually used.
    The year 1968 also marked the appearance of Engelman's MATHLAB-68,
    an improved version of the earlier MATHLAB interactive system, and of
    the system known as Symbolic Mathematical Laboratory developed by
    William Martin at M.I.T. in 1967.
    The latter was a linking of several computers to do symbolic manipulation
    and to give good graphically formatted output on a CRT terminal.

    The latter part of the decade saw the development of several important
    general purpose systems for symbolic computation.
    ALTRAN evolved from the earlier ALPAK and Early ALTRAN as a language and
    system for the efficient manipulation of polynomials and rational functions.
    George Collins developed SAC-1 (for Symbolic and Algebraic Calculations)
    as the successor of PM for the manipulation of polynomials and rational
    functions. CAMAL (CAMbridge Algebra system) was developed by David Barton,
    Steve Bourne, and John Fitch at the University of Cambridge. It was
    implemented in the BCPL language, and was particularly geared to
    computations in celestial mechanics and general relativity.
    REDUCE was redesigned by 1970 into REDUCE 2, a general purpose system
    with special facilities for use in high-energy physics calculations.
    It was written in an ALGOL-like dialect called RLISP, avoiding the
    cumbersome parenthesized notation of LISP, while at the same time retaining
    its original design goal of being easily portable.
    SCRATCHPAD was developed by J. Griesmer and Richard Jenks at IBM Research
    as an interactive LISP-based system which incorporated significant portions
    of a number of previous systems and programs into its library, such as
    MATHLAB-68, REDUCE 2, Symbolic Mathematical Library, and SIN.
    Finally, the MACSYMA system first appeared about 1971.
    Designed by Joel Moses, William Martin, and others at M.I.T., MACSYMA was
    the most ambitious system of the decade.
    Besides the standard capabilities for algebraic manipulation, it included
    facilities to aid in such computations as limit calculations, symbolic
    integration, and the solution of equations.

    The decade from 1961 to 1971 concluded with the Second Symposium on
    Symbolic and Algebraic Manipulation held in March 1971 in Los Angeles.
    The proceedings of that conference constitute a remarkably comprehensive
    account of the state of the art of symbolic mathematical computation in 1971.

    1971-1981
    ---------

    While all of the languages and systems of the sixties and seventies began
    as experiments, some of them were eventually put into "production use''
    by scientists, engineers, and applied mathematicians outside of the
    original group of developers. REDUCE, because of its early emphasis on
    portability, became one of the most widely available systems of this decade.
    As a result it was instrumental in bringing computer algebra to the attention
    of many new users. MACSYMA continued its strong development, especially
    with regard to algorithm development. Indeed, many of the standard
    techniques (e.g. integration of elementary functions, Hensel lifting,
    sparse modular algorithms) in use today either came from, or were strongly
    influenced by, the research group at M.I.T. It was by far the most powerful
    of the existing computer algebra systems.

    SAC/ALDES by G. Collins and R. Loos was the follow-up to Collins' SAC-1.
    It was a non-interactive system consisting of modules written in the ALDES
    (Algebraic DEScription) language, with a translator converting the results
    to ANSI FORTRAN. One of its most notable distinctions was in being the only
    major system to completely and carefully document its algorithms.
    A fourth general purpose system which made a significant mark in the late
    1970's was muMATH. Developed by David Stoutemyer and Albert Rich at the
    University of Hawaii, it was written in a small subset of LISP and came
    with its own programming language, muSIMP.
    It was the first comprehensive computer algebra system which could actually
    run on the IBM family of PC computers.
    By being available on such small and widely accessible personal computers,
    muMATH opened up the possibility of widespread use of computer algebra
    systems for both research and teaching.

    In addition to the systems mentioned above, a number of special purpose
    systems also generated some interest during the 1970's. Examples of these
    include: SHEEP, a system for tensor component manipulation designed by
    Inge Frick and others at the University of Stockholm;
    TRIGMAN, specially designed for computation of Poisson series and written
    in FORTRAN by W. H. Jeffreys at University of Texas (Austin);
    and SCHOONSCHIP by M. Veltman of the Netherlands for computations in
    high-energy physics.
    Although the systems already mentioned have all been developed in
    North America and Europe, there were also a number of symbolic manipulation
    programs written in the U.S.S.R. One of these is ANALITIK, a system
    implemented in hardware by V. M. Glushkov and others at the Institute of
    Cybernetics, Kiev.

    1981-1991
    ---------

    Due to the significant computer resource requirements of the major
    computer algebra systems, their widespread use remained (with the exception
    of muMATH) limited to researchers having access to considerable
    computing resources. With the introduction of microprocessor-based
    workstations, the possibility of relatively powerful desk-top computers
    became a reality. The introduction of a large number of different computing
    environments, coupled with the often nomadic life of researchers (at least
    in terms of workplace locations) caused a renewed emphasis on portability
    for the computer algebra systems of the 1980's.
    More efficiency (particularly memory space efficiency) was needed in order
    to run on the workstations that were becoming available at this time,
    or equivalently, to service significant numbers of users on the
    time-sharing environments of the day.
    This resulted in a movement towards the development of computer algebra
    systems based on newer "systems implementation'' languages such as C,
    which allowed developers more flexibility to control the use of
    computer resources. The decade also marked a growth in the commercialization
    of computer algebra systems. This had both positive and negative effects
    on the field in general. On the negative side, users not only had to
    pay for these systems but also they were subjected to unrealistic claims
    as to what constituted the state of the art of these systems. However,
    on the positive side, commercialization brought about a marked increase in
    the usability of computer algebra systems, from major advances in user
    interfaces to improvements to their range of functionality in such areas
    as graphics and document preparation.

    The beginning of the decade marked the origin of MAPLE.
    Initiated by Gaston Gonnet and Keith Geddes at the University of Waterloo,
    its primary motivation was to provide user accessibility to computer algebra.
    MAPLE was designed with a modular structure: a small compiled kernel of
    modest power, implemented completely in the systems implementation
    language C (originally B, another language in the "BCPL family'')
    and a large mathematical library of routines written in the user-level
    MAPLE language to be interpreted by the kernel. Besides the command
    interpreter, the kernel also contained facilities such as integer and
    rational arithmetic, simple polynomial manipulation, and an efficient
    memory management system. The small size of the kernel allowed it to be
    implemented on a number of smaller platforms and allowed multiple users
    to access it on time-sharing systems.
    Its large mathematical library, on the other hand, allowed it to
    be powerful enough to meet the mathematical requirements of researchers.

    Another system written in C was SMP (Symbolic Manipulation Program) by
    Stephen Wolfram at Caltech. It was portable over a wide range of machines
    and differed from existing systems by using a language interface that was
    rule-based. It took the point of view that the rule-based approach was the
    most natural language for humans to interface with a computer algebra
    program. This allowed it to present the user with a consistent,
    pattern-directed language for program development.

    The newest of the computer algebra systems during this decade were
    MATHEMATICA and DERIVE.
    MATHEMATICA is a second system written by Stephen Wolfram (and others). It
    is best known as the first system to popularize an integrated environment
    supporting symbolics, numerics, and graphics. Indeed when MATHEMATICA
    first appeared in 1988, its graphical capabilities (2-D and 3-D plotting,
    including animation) far surpassed any of the graphics available on
    existing systems. MATHEMATICA was also one of the first systems to
    successfully illustrate the advantages of combining a computer algebra
    system with the easy-to-use editing features on machines designed to use
    graphical user-interfaces (i.e. window environments). Based on C,
    MATHEMATICA also comes with its own programming language which closely
    follows the rule-based approach of its predecessor, SMP.

    DERIVE, written by David Stoutemyer and Albert Rich, is the follow-up to
    the successful muMATH system for personal computers. While lacking the
    wide range of symbolic capabilities of some other systems, DERIVE has an
    impressive range of applications considering the limitations of the 16-bit
    PC machines for which it was designed.
    It has a friendly user interface, with such added features as two-dimensional
    input editing of mathematical expressions and 3-D plotting facilities.
    It was designed to be used as an interactive system and not as a programming
    environment.

    Along with the development of newer systems, there were also a number of
    changes to existing computer algebra systems. REDUCE 3 appeared in 1983,
    this time with a number of new packages added by outside developers.
    MACSYMA bifurcated into two versions, DOE-MACSYMA and one distributed by
    SYMBOLICS, a private company best known for its LISP machines.
    Both versions continued to develop, albeit in different directions,
    during this decade. AXIOM, (known originally as SCRATCHPAD II)
    was developed during this decade by Richard Jenks, Barry Trager,
    Stephen Watt and others at the IBM Thomas J. Watson Research Center.
    A successor to the first SCRATCHPAD language, it is the only
    "strongly typed'' computer algebra system. Whereas other computer algebra
    systems develop algorithms for a specific collection of algebraic domains
    (such as, say, the field of rational numbers or the domain of polynomials
    over the integers), AXIOM allows users to write algorithms over general
    fields or domains.

    As was the case in the previous decade, the eighties also found a number
    of specialized systems becoming available for general use.
    Probably the largest and most notable of these is the system CAYLEY,
    developed by John Cannon and others at the University of Sydney, Australia.
    CAYLEY can be thought of as a "MACSYMA for group theorists.''
    It runs in large computing environments and provides a wide range
    of powerful commands for problems in computational group theory.
    An important feature of CAYLEY is a design geared to answering questions not
    only about individual elements of an algebraic structure, but more
    importantly, questions about the structure as a whole. Thus, while one
    could use a system such as MACSYMA or MAPLE to decide if an element in a
    given domain (such as a polynomial domain) has a given property (such as
    irreducibility), CAYLEY can be used to determine if a group structure is
    finite or infinite, or to list all the elements in the center of the
    structure (i.e. all elements which commute with all the elements of the
    structure).

    Another system developed in this decade and designed to solve problems
    in computational group theory is GAP (Group Algorithms and Programming)
    developed by J. Neubueser and others at the University of Aachen, Germany.
    If CAYLEY can be considered to be the "MACSYMA of group theory,'' then GAP
    can be viewed as the "MAPLE of group theory.'' GAP follows the general
    design of MAPLE in implementing a small compiled kernel (in C) and a large
    group theory mathematical library written in its own programming language.

    Examples of some other special purpose systems which appeared during this
    decade include FORM by J. Vermaseren, for high energy physics calculations,
    LiE, by A.M. Cohen for Lie Algebra calculations,
    MACAULAY, by Michael Stillman, a system specially built for computations
    in Algebraic Geometry and Commutative Algebra,
    and PARI by H. Cohen in France, a system oriented mainly for number theory
    calculations. As with most of the new systems of the eighties, these last
    two are also written in C for portability and efficiency.

    Research Information about Computer Algebra
    -------------------------------------------

    Research in computer algebra is a relatively young discipline, and the
    research literature is scattered throughout various journals devoted to
    mathematical computation. However, its state has advanced to the point where
    there are two research journals primarily devoted to this subject area: the
    "Journal of Symbolic Computation" published by Academic Press
    and "Applicable Algebra in Engineering, Communication and Computing"
    published by Springer-Verlag.
    Other than these two journals, the primary source of recent research
    advances and trends is a number of conference proceedings.
    Until recently, there was a sequence of North American conferences and
    a sequence of European conferences.
    The North American conferences, primarily organized by ACM SIGSAM
    (the ACM Special Interest Group on Symbolic and Algebraic Manipulation),
    include SYMSAM '66 (Washington, D.C.), SYMSAM '71 (Los Angeles),
    SYMSAC '76 (Yorktown Heights), SYMSAC '81 (Snowbird),
    and SYMSAC '86 (Waterloo).
    The European conferences, organized by SAME (Symbolic and Algebraic
    Manipulation in Europe) and ACM SIGSAM, include the following whose
    proceedings have appeared in the Springer-Verlag series
    "Lecture Notes in Computer Science":
    EUROSAM '79 (Marseilles), EUROCAM '82 (Marseilles),
    EUROCAL '83 (London), EUROSAM '84 (Cambridge),
    EUROCAL '85 (Linz), and EUROCAL '87 (Leipzig).
    Starting in 1988, the two streams of conferences have been merged
    and they are now organized under the name ISSAC (International Symposium
    on Symbolic and Algebraic Computation),
    including ISSAC '88 (Rome), ISSAC '89 (Portland, Oregon),
    ISSAC '90 (Tokyo), ISSAC '91 (Bonn) and ISSAC '92 (Berkeley).


    -----------------------------------------------
    Professor Keith Geddes
    Symbolic Computation Group
    Department of Computer Science
    University of Waterloo
    Waterloo  ON  N2L 3G1
    CANADA
          in [ACM] CACM 14(08) August 1971 view details
    Resources
    • Page at Lincoln
      SAINT, symbolic integration program (1961)


      The first symbolic integration program as good as a Freshman.
      References:
      J. R. Slagle. A Heuristic Program that Solves Symbolic Integration Problems in Freshman Calculus, SAINT. Ph.D. thesis, MIT Department of Mathematics.
      external link