A theory of discrete patterns and their implementation in SNOBOL4

  title={A theory of discrete patterns and their implementation in SNOBOL4},
  author={James F. Gimpel},
  journal={Commun. ACM},
The notion of a discrete pattern is formalized and certain properties deduced. A pattern is shown to be a generalization of a formal language. Algorithms for implementing the kinds of patterns in SNOBOL4 are given. The general approach is to create, in-so-far as possible, a bottom-up parse from a top-down specification. 

Figures from this paper

Mathematical semantics of SNOBOL4

This paper analyzes the semantics of the programming language SNOBOL4, following the mathematical approach proposed by D. Scott and C. Strachey, and demonstrates that the mathematics approach can provide a natural and usable formal specification of a practical programming language.

From abstract model to efficient compilation of patterns

In programming systems it can be a built-in language facility as string matching in SNOBOL4 or a language extension for matching of list structures as in INTERLISP.

A procedural approach to pattern matching in SNOBOL4

This paper presents a methodology for describing and implementing pattern matching in SNOBOL4 using the coroutine notion, which permits a complete procedural implementation as well as a concise description of the pattern-matching process.

Proving Properties of SNOBOL 4 Patterns: Selecting the Assertion Format

Adapting Classic Hoare logic to a non-imperative environment can provide new insight into the method of axiomatic semantics as well as into the specific new area of application.

An Alternative to the Use of Patterns in String Processing

Generators, coupled with a goal-driven method of expression evaluation, provide the string processing facilities of SNOBOL4 without the disadvantages associated with patterns.

Extensible pattern matching in SNOBOL4

A definitional mechanism that provides extensibility for the existing facilities in which programmer-defined scanning procedures are written as co-routines at the source-language level is described.

Nonlinear pattern theory

The formal treatment of patterns is extended to include the nonlinear patterns ABORT and FENCE and their derivatives and the theory is applied to analyzing the behavior of a class of patterns to parse programming languages operating in back-up-free fashion.

Implementing SNOBOL4 Pattern Matching in Icon

A history of the SNOBOL programming languages

In this paper historical emphasis is placed on the original language, SNOBOL, although important aspects of the subsequent languages are covered.



Formal languages and their relation to automata

  • J. HopcroftJ. Ullman
  • Computer Science
    Addison-Wesley series in computer science and information processing
  • 1969
The theory of formal languages as a coherent theory is presented and its relationship to automata theory is made explicit, including the Turing machine and certain advanced topics in language theory.

Blocks—a new datatype for SNOBOL4

A new datatype, called a block, has been implemented for SNOBOL4. A block is a three-dimensional aggregate of characters in the form of a right parallelepiped, best thought of as a three-dimensional

A programming language for mechanical translation

  • V. Yngve
  • Computer Science
    Mech. Transl. Comput. Linguistics
  • 1958
A notational system for use in writing translation routines and related programs is described to be convenient for the linguist so that he can do his own programming.

Regular Expression Search Algorithm

A method for locating specific character strings embedded in character text is described and an implementation of this method in the form of a compiler is discussed. The compiler accepts a regular

Compiler Construction for Digital Computers

The techniques involved in writing compilers for high-level languages such as FORTRAN or PL/1, as well as semantic routines, are described.

Programming Techniques: Regular expression search algorithm

A method for locating specific character strings embedded in character text is described and an implementation of this method in the form of a compiler is discussed. The compiler accepts a regular

Translator writing systems

A critical review of recent efforts to automate the writing of translators of programming languages is presented and various approaches to automating the postsyntactic aspects of translator writing are discussed.

The syntax of programming languages

The non-terminal of the abstract syntax represents a group of syntactic objects whose meanings are all in the same semantic domain and changes the language as well as the grammar.

The SNOBOL4 programming language

Data-structures and programming