Modes, values and expressions

Several modern programming languages (e.g. Algol 68 [1], Pascal [2], Basel [3], EL1 [4] ) require each variable to have a declared mode or type, which limits the class of values wh~ch it may assume. In each of these languages, a value may contain a reference or pointer to z value of the same type, allow?ng l~nked lists. In this case, it is natural to define the mode of the value recursively -that is, in terms of itself. For example, if list describes values which are structures containing two fields, one being an integer and the other a pointer to another value of type list, then we can summarize these facts by~ting

[1]  B. J. Mailloux,et al.  Report of Algorithmic Language ALGOL 68 , 1969 .

[2]  James H. Morris,et al.  Types are not sets , 1973, POPL.

[3]  Ben Wegbreit Studies in Extensible Programming Languages , 1970, Outstanding Dissertations in the Computer Sciences.

[4]  M. Rabin Automata on Infinite Objects and Church's Problem , 1972 .

[5]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[6]  J. Kral,et al.  The Equivalence of Modes and the Equivalence of Finite Automata , 1973 .

[7]  Joost Engelfriet A Note on Infinite Trees , 1972, Inf. Process. Lett..

[8]  Dana S. Scott,et al.  The lattice of flow diagrams , 1971, Symposium on Semantics of Algorithmic Languages.

[9]  S. Maclane,et al.  Categories for the Working Mathematician , 1971 .

[10]  Barry K. Rosen,et al.  Recursively defined data types: part 1 , 1973, POPL.

[11]  C. H. A. Koster On infinite modes , 1969, SIGP.

[12]  Samuel Eilenberg,et al.  Automata, languages, and machines. A , 1974, Pure and applied mathematics.

[13]  Jeffrey D. Ullman,et al.  Formal languages and their relation to automata , 1969, Addison-Wesley series in computer science and information processing.