SCRATCHPAD/1(ID:3200/scr006)


Extension of SCRATCHPAD base language to incorporate workspaces after the fashion of APL


Related languages
LPL => SCRATCHPAD/1   written with
Scratchpad => SCRATCHPAD/1   Evolution of
SCRATCHPAD/1 => META/LISP   Subsystem
SCRATCHPAD/1 => META/PLUS   Subsystem
SCRATCHPAD/1 => Scratchpad II   Evolution of

References:
  • Griesmer, J. H.; Jenks, R. D. "SCRATCHPAD/1: An interactive facility for symbolic mathematics" view details Abstract: The SCRATCHPAD/1 system is designed to provide an interactive symbolic computational facility for the mathematician user. The system features a user language designed to capture the style and succinctness of mathematical notation, together with a facility for conveniently introducing new notations into the language. A comprehensive system library incorporates symbolic capabilities provided by such systems as SIN, MATHLAB, and REDUCE. Extract: Introduction
    Introduction
    The major goal of the SCRATCHPAD project has been the design and implementation of a symbolic mathematics facility which provides a mathematician user with a powerful algebraic capability, and which at the same time is as convenient to use as his pencil and paper. To achieve this goal, principal effort has been expended in four areas:
    (i) The implementation of an experimental LISP system for both interactive and batch use permitting simultaneous access to a large number of LISP-based algebraic facilities;
    (ii) the building of a library of symbolic facilities taking maximum advantage of developments in symbolic computations originating elsewhere;
    (iii) the design and implementation of an extensible user language enabling a user to state his problem using notations approaching that of conventional mathematics;
    (iv) the development of a flexible evaluator giving the user maximum control over the substitution and simplification mechanisms of the system.

    SCRATCHPAD has been implemented in the LISP programming language using an experimental System/ 360 LISP system. The major features of this LISP system that enhance its capability for symbolic and algebraic computations are provisions for unlimited precision integer arithmetic and for accessing a sizable number of LISP compiled and assembled programs.

    This latter capability has enabled significant portions of the following systems to be incorporated into the library so as to be simultaneously available to the SCRATCHPAD user:

    MATHLAB - Carl Engelman, MITRE Corporation
    REDUCE - Anthony Hearn, Stanford University and the University of Utah
    On-line Simplification System  - Knut Korsvold, Stanford University and the Norwegian Defence Research Establishment
    Symbolic Mathematical Laboratory - William Martin, MIT
    Symbolic INtegration (SIN) - Joel Moses, MIT.

    An extensible language approach was adopted in the design of the SCRATCHPAD user language. The initial language presented to each user is called the "base language" and contains a set of basic syntactic constructs described by notations resembling those in conventional mathematics. These basic constructs may then be extended by an individual user in order that he may tailor the system to his particular needs.
    The objectives in the design and implementation of the SCRATCHPAD evaluator were to achieve efficiency comparable to that of REDUCE2 yet to provide the generality and understandability of the FAMOUS system. The evaluator design is built upon the concept of "replacement rules" and provides a basis for the manipulation of not only algebraic expressions but also inequalities and logical expressions.

    Extract: Sources of scratchpad
    System Organization And Capabilities
    A user session with SCRATCHPAD consists of the
    sequential processing of user commands by the
    SCRATCHPAD supervisor. During such processing,
    four major component parts of the system are utilized:
    creates 2250 display commands, in the formof vector
    strokes and branches to character subroutines, to
    produce a two-dimensional display of mathematical
    expressions. The revision of the Picture Compiler
    for use in SCRATCHPAD was effected with the consuiting
    help of Professor Martin and yielded an improved
    facility for breaking multiline expressions,
    an input translator to convert input strings into
    a form suitable for interpretation;
    an output translator to convert expressions in an
    internal form to a two-dimensional format
    for output to the user;
    a library accessible by the evaluator containing
    the bulk of the special purpose algebraic
    manipulation functions; and,
    an evaluator to carry out the appropriate action
    indicated by the command.
          in [ACM] Proceedings of the Second Symposium on Symbolic and Algebraic Manipulation, March 23-25, 1971 Los Angeles (SYMSAM 71) view details
  • Jenks, R. D. "META LISP and META PLUS: Tools for rapidly implementing extendable language translators" view details Abstract: A unique feature of the SCRATCHPAD system for symbolic manipulation is its powerful translation facilities. The essential components are META/LISP, a translator writing system, and META/PLUS, a facility for immediately extending the syntax of any translator produced through META/LISP. This talk will illustrate how these facilities may be used to produce a conversational higher-level LISP system. The language chosen is called ALPL because of its similarity to APL and LPL, a language resident in the SCRATCHPAD system. The essential characteristics of ALPL are described by eight syntax rules together with brief examples of corresponding ALPL and LISP programs. It is shown how a META/LISP program may be easily written to produce a conversation ALPL system. The ALPL language is then incrementally extended by introducing new notations defined in terms of existing ALPL constructs through calls to META/PLUS.
          in [ACM] Proceedings of the Second Symposium on Symbolic and Algebraic Manipulation, March 23-25, 1971 Los Angeles (SYMSAM 71) view details
  • Jenks, R. D., "META/PLUS: The syntax extension facility for SCRATCHPAD," view details
          in [ACM] Proceedings of the Second Symposium on Symbolic and Algebraic Manipulation, March 23-25, 1971 Los Angeles (SYMSAM 71) view details
  • Tobey, RG "Symbolic mathematical computation - introduction and overview" view details
          in [ACM] Proceedings of the Second Symposium on Symbolic and Algebraic Manipulation, March 23-25, 1971 Los Angeles (SYMSAM 71) 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 525 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] Proceedings of the Second Symposium on Symbolic and Algebraic Manipulation, March 23-25, 1971 Los Angeles (SYMSAM 71) view details
  • Jenks, Richard D. "A pattern compiler" view details Abstract: pattern compiler for the SCRATCHPAD system provides an efficient implementation of sets of user-defined pattern-replacement rules for symbolic mathematical computation such as tables of integrals or summation identities. Rules are compiled together, with common search paths merged and factored out and with the resulting code optimized for efficient recognition over all patterns. Matching principally involves structural comparison of expression trees and evaluation of predicates. Pattern recognizers are ?fully compiled? if values of match variables can be determined by solving equations at compile time. Recognition times for several pattern matchers are compared.
    External link: Online copy
          in Proceedings of the Third ACM symposium on Symbolic and algebraic computation, August 10-12, 1976, Yorktown Heights, New York, United States view details