Algebraic manipulation 

Algebraic Manipulation by Identity Translation (also claimed: "Acronym May Be Ignored Totally").
Carlos Christensen at Computer Associates 1964
An early pattern-matching language aimed at algebraic manipulation. Forerunner of several varieties.
"operates on data which is maintained as a fully linked tree structure."

Related languages
AMBIT => AMBIT/G   Adaptation of
AMBIT => AMBIT/S   Adaptation of

  • Christensen, C., AMBIT. A Programming Language for Algebraic Symbol Manipulation, Computer Associates, Inc., Report No. CA-644-R, Wakefield, Mass. (Oct., 1964). view details
  • Christensen, C., "Examples of Symbol Manipulation in the AMBIT Programming Language" view details Abstract: THE AMBIT PROGRAMMING language has been applied to problems in two areas. In the area of algebraic symbol manipulation, programs have been written in AMBIT for elementary arithmetic, elementary algebra, formal differentiation, set operations, and propositional calculus. In the area of list processing, a variety of programs have been written for syntactic analysis, including both “top-down” and “bottom-up” analysis. This paper is intended to exhibit the important features of AMBIT without entering into a complete and formal definition of AMBIT. The paper contains a brief informal definition of the language and several examples of programs written in the language. The informal definition discusses primarily those facilities of the language which are used in the example programs; other facilities currently available in AMBIT are not mentioned. The definition depends on the example programs for the illustration and clarification of difficult points, and the reader is advised to defer a detailed examination of the definition until he has read through the example programs.
          in [ACM] Proceedings of the 1965 20th National Conference 1965 , Cleveland, Ohio, United States view details
  • Christensen, Carlos "On the Implementation of AMBIT: A Language for Symbol Manipulation" pp570-573 view details Extract: Implementation

    The AMBIT programming language is a member of a growing family of languages each of which uses some form of string transformation rule as its central linguistic facility. The string transformation rule operates by matching a given pattern to a portion of the data and then replacing that portion of the data with other data specified by a second pattern. Although these languages have much in common, they differ in important ways with respect to the method of pattern matching which is implicit in each of their designs. COMIT [1] and SNOBOL [2] operate on data which is an unstructured string; PANON-1B [3, 4] and AXLE [5] also operate on an unstructured string but assign a structure to it dynamically by automatic syntactic analysis; on the other hand, AMBIT [6, 7] operates on data which is maintained as a fully linked tree structure.

    AMBIT is the only one of the languages just mentioned for which (except for certain special cases) a particular string transformation rule is executed in a time which is constant and independent of the data on which it is executed. For the programming of the manipulation of wall- structured data, such as a fully-parenthesized algebraic equation, this property greatly reduces the dependence of the execution time of a program as a whole on the size and structure of the data to which it is applied. This property of AMBIT arises from the use of an algorithm called the "AMBIT scan" for all pattern matching. string is a symmetric linked list in which common sub- lists do not occur.


    An AMBIT program operates on a single data structure called the data string. In its external representation, as seen by the programmer, the data string is a linear notation for a tree structure. That is, it is one-dimensional sequence of characters in which structure is indicated by parenthesis pairs rather than by resort to a two-dimensional "tree" notation. In its internal representation, as operated upon by an AMBIT program executer, the data string is a symmetric linked list in which common sub- lists do not occur.

    Thus the AMBIT data string is a tree structure rather than either a pure string structure or a generalized list structure. To the extent that this characteristic of the data string carries over to the AMBIT programming system as a whole, AMBIT is a tree-processing language rather than a string-processing or list-processing language. The restriction of AMBIT to tree processing has been a deliberate experiment in both the general application and efficient implementation of tree processing.

    A data string is a sequence of segments. It is assumed in this paper that a segment is an instance of one of the following four symbols:

    0 ^ ( )

    The symbols 0 and ^ are called elements, and the symbol ^ is a special kind of element called a pointer. The symbols ( and ) must occur in the data string in matched, nested pairs according to the usual usage of parentheses. pdf
          in [ACM] CACM 9(08) August 1966 view details

  • Quinn, J. H. review of Christensen 1965 view details Abstract: This paper succeeds in its intent "to exhibit the important features of AMBIT without entering into a complete and formal description of AMBIT." The paper consists of a brief semi-formal description of the AMBIT programming language and four example programs written in the language. A detailed discussion of the AMBTT instructions follows each program, and a trace of the program-flow through a sample problem is included in the discussion of three of the four example programs.

    AMBIT is a non-numeric data processing language which facilitates manipulation of symbol strings. The languagea permits concise description of rules which cause replacement of symbols in an input symbol string, according to patterns recognized in the string. Pointers mark the position of recognized patterns in the data string; multiple scans through the data string, as it is transformed, eliminate the need of recursive procedure calls. The ancestry of AMBIT clearly includes COMIT, SNOBOL, and Formula ALGOL

    Two possible objections to AMBIT arise in the reviewer's mind. First, although AMBIT allows a seemingly nonrecursive description of seemingly recursive processes, those of us who have trained ourselves to think recursively find such Precursive descriptions lengthy, unwieldily, and cumbersome. Second, most recursive descriptions of data string manipulation processes require only one pass through the data string; most nonrecursive descriptions pay for the privilege of being nonrecursive by requiring additional passes through the data string. However, these objections are philosophical; the AMBIT language is clearly a contribution in the area of non-numeric data processing.

    Understanding AMBIT may require several careful readings of this paper, and considerable time in tracing sample data through the example programs. Part of the semi-formal description, which might well have been left out, may still seem vague after the example programs are understood.

          in ACM Computing Reviews 7(04) July-August 1966 view details
  • Sammet, Jean E., "Roster of Programming Languages 1967" view details Extract: AMBIT
    A string manipulation language based on a replacement rule involving a pointer
          in Computers & Automation 16(6) June 1967 view details
  • Abrahams, Paul W. "Symbol manipulation languages". New York: New York University, Courant Inst. of Mathematical Sciences 1968 view details
          in Computers & Automation 16(6) June 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. pp.454-457. 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., "Roster of Programming Languages 1972" 10 view details
          in Computers & Automation 21(6B), 30 Aug 1972 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 32 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 Computers & Automation 21(6B), 30 Aug 1972 view details