AMBIT/L(ID:538/amb005)

AMBIT symbolic system for lists 


(L for lists).

Christenson MassCA

An anchored, pattern-matching language for list-processing applications. The pattern-replacement rules are given as diagrams, not character strings, and the language is two- dimensional in this sense.

Places
People:
Structures:
Related languages
AMBIT/G => AMBIT/L   Restriction of
AMBIT/L => IAM   Based on

References:
  • Christensen, Carlos; "An Introduction to AMBIT/L, A Diagrammatic Language for List Processing" view details Abstract: AMBIT/L is a list-processing programming system. It integrates the general use of recursive functions with a pattern-matching style of programming. Two-dimensional directed-graph diagrams are used to represent the data,and similar diagrams appear throughout the program as the “patterns” of rules. The system has a simple core, but extends out to accommodate the always complicated requirements of input-output, traps and interrupts, and storage management; it is a large system. The PDP-10 implementation of AMBIT/L is described in this paper.
    Abstract: INTRODUCTION

    AMBIT/L is a list-processing programming system. It applies to essentially non-numeric programs which operate on data structures of moderate or extreme complexity. This applications area includes artificial intelligence, graphics, algebraic manipulation, and such software as compilers, interpreters, simulators, and editors.

    A remarkable and unique feature of AMBIT/L is its use of two-dimensional diagrams. Both the data and the program are represented by diagrams in which conventional text plays only a secondary role. The data diagram depicts the current relations between variables and values, and lines in this diagram move as program execution proceeds. The program diagram uses patterns of data in order to reference and modify the data. These diagrams are not informal aids or supplementary documentation; they are the representations used for communication with the computer. The value of a diagram in almost any context is familiar. But, in computer programming, the use of diagrams for data can have quite spectacular effects.

    In diagrammatic form, a collection of data can become an almost machine-like object, changing frequently in certain places but relatively fixed in others. An apparently difficult algorithm can be made easy by the selection of an appropriate structuring and constraint of the data. The development of AMBIT/L has included some pleasant surprises . The expected heavy demand for an elaborate graphics terminal did not arise; instead, an ordinary teletype (or line printer) proved adequate to "draw" working diagrams using the ordinary characters. Problems with formatting were eliminated by simple conventions which just happened to work for AMBIT/L. And the language structure seemed to flourish generally in the absence of the problems of delimiting, separating, and grouping which afflict textual programming languages.

    In terms of more familiar languages, AMBIT/L can be viewed as operating on list-structured data resembling that of LISP; incorporating the pattern-matching style of programming characteristic of SNOBOL; adopting the block-structured program framework of ALGOL 60; and providing trapping and interrupt facilities found in PL/I.

    Another view of AMBIT/L is to consider it a specialized version of AMBIT/G, a language of much greater theoretical interest and, for the present, of lesser practical value . This view is both historically and logically correct. AMBIT/L followed AMBIT/G by about two years and a future objective is to derive AMBIT/L from AMBIT/G by a completely formal sequence of "constraints" on the program and data of AMBIT/G.

    The AMBIT/L programming system has been operational on a Digital Equipment Corporation PDP-10/50 time-sharing computer since September 1969. The system includes its own diagram generator, compiler, link editor, interpreter, and debugging facility .

    AMBIT/L has been used to implement its own compiler (which was bootstrapped), its own debugging system, and certain of its built-in functions such as those for input-output and for long-integer arithmetic. But the most notable application of AMBIT/L has been to IAM.

    IAM is a large and complex system for interactive algebraic manipulation. IAM is written entirely in AMBIT/L. As of July 1970, it is composed of 301 separately compiled AMBIT/L program blocks; it has block nesting to a depth of 13 levels; has a listing of about 1500 pages of two-dimensional diagrams; and compiles to reentrant interpretive object code about 40,000 36-bit words long.

    This paper describes those aspects of AMBIT/L which are unusual and important. It provides an outline of the language, some of the design motivation, and some examples. It is an appropriate basis for evaluation of the language; but it should, ideally , be supplemented by a few moderately large example programs. There are no prerequisites for the paper; but the reader without experience with ALGOL 60 and LISP may find certain passages difficult.

          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
  • Wolfberg, Michael S. "AMBIT/L Programming System User's Guide", Research Division, Applied Data Research, Compass CA-7201-1711, January 1972. view details
          in [ACM] Proceedings of the Second Symposium on Symbolic and Algebraic Manipulation, March 23-25, 1971 Los Angeles (SYMSAM 71) view details
  • Wolfberg, Michael S. "Fundamentals of the AMBIT/L list-processing language" view details Abstract: This paper introduces the reader to the fundamentals of AMBIT/L, a diagrammatic list-processing language, by presenting its solution to a canonical programming problem. Extract: Introduction
    INTRODUCTION

    AMBIT/L is a programming system for list-processing used for writing essentiall  non-numeric programs which operate on complex data structures. An exceptional feature of the language is the employment of two-dimensional diagrams for both the data and the program, The data diagram (or data graph) is composed of nodes and interconnecting links which depict relations among variables and values. The diagram is the formal representation of AMBIT/L data, whereas similar diagrams are often used merely as informal aids in other list-processing systems.

    AMBIT/L is the third member of a class of related languages created by Carlos Christensen at Massachusetts Computer Associates. AMBIT/S is a language for symbol manipulation of string structures; its concepts were extended to produce the design of AMBIT/G for dealing with general data structures. Then the AMBIT/L language resulted from limiting the generality of AMBIT/G to the representation of list structures.

    In terms of more familiar languages, AMBIT/L can be viewed as operating on list-gtructured data resembling that of LISP; incorporating the patternmatching style of programming which is  characteristic of SNOBOL; adopting the block-structured program framework of ALGOL 60; and providing trapping and interrupt facilities found in PL/I.

    AMBIT/L is meant to be used as an implementation language for writing compilers and other systems software where manipulation of structured data is the primary activity. It is well suited for graphics applications, circuit and network analysis, and artificial intelligence problems such as theorem proving and game playing.

    A programming problem was posed by Richard A. Stone at SHARE XXXVIII as a means by which several list-processing languages could be compared. A session at the conference* was devoted to the treatment of the problem by PL/I, LISP, SNOBOL, L 6, and *I. This paper introduces the reader to the fundamentals of AMBIT/L by presenting its solution to the same problem together with explanatory material.

    Only those features of the language employed in the solution are discussed; there is no attempt to present the complete collection of capabilities. Furthermore, this paper does not discuss the AMBIT/L Programming System implemented on the PDP-10, which is an extensive facility consisting of several components making it a practical implementation tool well suited to the production and maintenance of large software systems.

    [...]

    SUMMARY

    By presenting its solution of a canonical problem, the AMBIT/L list-processing language has been introduced. Several important features have not been covered, but the essential flavor of AMBIT/L programming has been given. The interested reader is  encouraged to read other papers on the subject. The AMBIT/L Programming System for the PDP-10 has been operational since the Fall of 1969. It has been used to implement its own compiler and debugging package, some of its built-ln functions, and particularly [AM, a large and complex system for interactive algebraic manipulation. The emphasis on data and the use of diagrams has led to easier writing and maintenance of large software systems, particularly when one programmer has taken over the work of another.
          in Proceedings of the SIGPLAN symposium on Two-dimensional man-machine communication 1972 , Los Alamos, New Mexico, United States view details
  • Wolfberg, Michael S. "Highlights of the AMBIT/L Programming System", DECUS Proceedings, Spring 1972, Compass CA-7205-1111. view details
          in Proceedings of the SIGPLAN symposium on Two-dimensional man-machine communication 1972 , Los Alamos, New Mexico, United States view details
  • Sammet, Jean E. "Roster of Programming Languages for 1973" p147 view details
          in ACM Computing Reviews 15(04) April 1974 view details
  • Sammet, Jean E "Roster of programming languages for 1976-77" pp56-85 view details Extract: AMBIT/L
    An anchored, pattern-matching language for list-processing applications. The pattern-replacement rules are diagrams, not character strings, and the language is two-dimensional in this sense.
    Other  versions  of  AMBIT  are  not  in  use.
          in SIGPLAN Notices 13(11) Nov 1978 view details