AMBIT/S(ID:1816/amb006)

Ambit symbolic system for strings 


(S for strings).

Places
People:
Structures:
Related languages
AMBIT => AMBIT/S   Adaptation of

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