Extensible control structures

Abstract
A considerable amount of programming language research has been directed towards the development of extensible languages. Typically, these languages allow data type extensions, in which new data types are constructed in terms of built-in or previously defined ones, and syntax extensions, which allow the programmer to express himself in a more convenient notation than that of the base language. For the past few years the author has been experimenting with a third axis of extensibility, namely, control extensions - the introduction of non-standard control structures into programming languages. By non-standard control structures we refer to any one of a set of facilities which have appeared as specialized extensions to existing languages. These include non-deterministic algorithms, backtracking, parallel processing, co-routines, simulation primitives, synchronization operations, and the like. Numerous papers describe how one or more of the above can he added to some language (usually ALGOL-60). However, there have been relatively few studies of either the effects of the extensions on the language as a whole or the possibility of obtaining all of these extensions in a unified way from a common base.