New languages from old: The extension of programming languages by embedding, with a case study

  • Authors:
  • Michael B. Feldman

  • Affiliations:
  • -

  • Venue:
  • ICSE '76 Proceedings of the 2nd international conference on Software engineering
  • Year:
  • 1976

Quantified Score

Hi-index 0.00

Visualization

Abstract

Embedding is the extension of a programming language without altering the processor for that language, and preferably using only the facilities of that language. While a single subroutine is the simplest form of semantic extension by embedding, embedding can produce powerful application-oriented languages (AOL) in a relatively economical fashion. A first approximation to a design discipline for writing embedded AOLs is presented. SNOBOL4 is discussed as a particularly receptive host language, in that it has flexible subroutine, data-structure, and storage allocation facilities, has a run-time compiler which can be called from a SNOBOL4 program, and is widely available for almost all research computer systems. A description is given of AUTOMAT, a SNOBOL4-embedded AOL for classroom or research experiments with abstract sequential machines. The generalized transition table is introduced as a data structure in which finite-state machines (FSM), Turing machines, pushdown automata, and the like can be represented as special cases. Data structures for sets, partitions and covers, sparse matrices, and tapes are provided as well. The AUTOMAT AOL currently includes over 100 operators developed according to the proposed method. Applications thus far include an extensive FSM utility system, universal simulators for FSM and other models, FSM minimization, and Krohn-Rhodes decomposition. Performance statistics are presented.