How to make AXIOM into a scratchpad

Scratchpad [GrJe71] was a computer algebra system developed in the early 1970s. Like M&M (Maple [CGG91ab] and Mathematical [W01S92]) and other systems today, Scratchpad had one principal representation for mathematical formulae based on “expression trees”. Its user interface design was based on a pattern-matching paradigm with infinite rewriterule semantics, providing what we believe to be the most natural paradigm for interactive symbolic problem solving. Like M&M, however, user programs were interpreted, often resulting in poor performance relative to similar facilities coded in standard programming languages such as FORTRAN and C. Scratchpad development stopped in 1976 giving way to a new system design ([ JenR79], [JeTr81]) that evolved into AXIOM [JeSu92]. AXIOM has a strongly-typed programming language for building a library of parameterized types and algorithms, and a type-inferencing interpreter that accesses the library and can build any of an infinite number of types for interactive use. We suggest that the addition of an expression tree type to AXIOM can allow users to operate with the same freedom and convenience of untyped systems without giving up the expressive power and run-time efficiency provided by the type system. We also present a design that supports a multiplicity y of programming styles, from the Scratchpad pattern-matching paradigm to functional programming to more conventional procedural programming. The resulting design seems to us to combine the best features of Scratchpad with current AXIOM and to offer a most attractive, flexible, and user-friendly environment for interactive problem solving. Section 2 is a discussion of design issues contrasting AXIOMwith other symbolic systems. Sections 3 and 4 is an assessment of AXIOM’s current design for building libraries and interactive use. Section 5 describes a new interface design for AXIOM, its resulting paradigms, and its underlying semantic model. Section 6 compares this work with others.

[1]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

[2]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[3]  Stephen Wolfram,et al.  Mathematica: a system for doing mathematics by computer (2nd ed.) , 1991 .

[4]  Michael B. Monagan Gauss: A Parameterized Domain of Computation System with Support for Signature Functions , 1993, DISCO.

[5]  Anthony C. Hearn,et al.  REDUCE 2: A system and language for algebraic manipulation , 1971, SYMSAC '71.

[6]  Guy L. Steele,et al.  Common Lisp the Language , 1984 .

[7]  Joel Moses,et al.  Algebraic simplification: a guide for the perplexed , 1971, CACM.

[8]  Rüdiger G. K. Loos Toward a formal implementation of computer algebra , 1974, SIGS.

[9]  Richard D. Jenks MODLISP -- an introduction (invited) , 1979, EUROSAM.

[10]  Bjarne Stroustrup,et al.  The C++ Programming Language, Second Edition , 1991 .

[11]  Stephen Wolfram,et al.  SMP - A Symbolic Manipulation Program , 1981, SYMSAC '81.

[12]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[13]  Richard D. Jenks,et al.  The type inference and coercion facilities in the scratchpad II interpreter , 1987, PLDI 1987.

[14]  Michael B. Monagan,et al.  Introduction to Gauss , 1994, SIGS.

[15]  V. Stavridou,et al.  Abstraction and specification in program development , 1988 .

[16]  M. Partridge Editor , 1960 .

[17]  W. A. Martin,et al.  The MACSYMA system , 1971, SYMSAC '71.

[18]  R. D. Jenks,et al.  SCRATCHPAD/1: An interactive facility for symbolic mathematics , 1971, SYMSAC '71.

[19]  Richard D. Jenks,et al.  AXIOM: the scientific computation system , 1992 .

[20]  Bruce W. Char,et al.  Maple V Language Reference Manual , 1993, Springer US.

[21]  Stephen M. Watt,et al.  A first report on the A# compiler , 1994, ISSAC '94.

[22]  John McCarthy,et al.  LISP 1.5 Programmer's Manual , 1962 .

[23]  Bruno Buchberger,et al.  Gröbner Bases in Mathematica: Enthusiasm and Frustration , 1991, Programming Environments for High-Level Scientific Problem Solving.

[24]  Bruce W. Char,et al.  Maple V Library Reference Manual , 1992, Springer New York.

[25]  G. L. Steele Common Lisp , 1990 .

[26]  Michael Wester Mathematics: A System for Doing Mathematics by Computer, Second Edition (Stephen Wolfram) , 1992, SIAM Rev..

[27]  Robin Milner,et al.  Definition of standard ML , 1990 .