State transition machines for lambda-calculus expressions

  • David A. Schmidt
Related Topics
Part of the Lecture Notes in Computer Science book series (LNCS, volume 94)


The process of compiler generation from formal definitions of the lambdacalculus is studied. The compiling schemes developed utilize as an object language the set of state transition machines (STMs): automata-like transition sets using first order arguments. An intermediate definition form, the STM_interpreter, is defined and treated as central to the formulation of state transition code. Three compiling schemes are produced: one derived directly from an STM-interpreter; one formulated from a version of Landin's SECD-machine; and one defined through meaning preserving transformations upon a denotational definition of the lambda-calculus itself. The results are compared and some tentative conclusions are made regarding the utility of compiler generation with the use of the STM forms.


  1. [1]
    Aho, A.V., and Ullman, J.D. The Theory of Parsing, Translation, and Compiling, Volume I, Prentice-Hall, Englewood Cliffs, N.J. (1972).Google Scholar
  2. [2]
    Church, A. The Calculi of Lambda-Conversion, Annals of Mathematical Studies 6, Princeton Univ. Press, Princeton, N.J. (1951).Google Scholar
  3. [3]
    Curry, H.B., and Feys, R. Combinatory Logic, Volume I, North-Holland, Amsterdam (1958).Google Scholar
  4. [4]
    Ershov, A.P. On the Essence of Compilation, in Formal Description of Programming Language Concepts, Neuhold, ed., North-Holland, Amsterdam (1976) 391–420.Google Scholar
  5. [5]
    Jones, N.D., and Schmidt, D.A. Compiler Generation from Denotational Semantics, PB-113, Aarhus University, Aarhus, Denmark (1979).Google Scholar
  6. [6]
    Kleene, S.C. Introduction to Metamathematics, North-Holland, Amsterdam (1952).Google Scholar
  7. [7]
    Landin, P.J. The Mechanical Evaluation of Expressions, Computer Journal 6–4 (1964) 308–320.Google Scholar
  8. [8]
    Plotkin, G.D. Call-by-Name, Call-by-Value and the Lambda-Calculus, Theoretical Computer Science 1 (1975) 125–159.CrossRefGoogle Scholar
  9. [9]
    Reynolds, J.C. Definitional Interpreters for Higher-Order Programming Languages, Proc. of the ACM National Conference, Boston, (1972) 717–740.Google Scholar
  10. [10]
    Reynolds, J.C. On the Relation between Dlrect and Continuation Semantics, Proc. of the Second Colloquium on Automata, Languages and Programming, Saarbrücken, Springer-Verlag, Berlin (1974) 141–156.Google Scholar
  11. [11]
    Schmidt, D.A. Compiler Generation from Lambda-Calculus Definitions of Programming Languages, Ph.D. Thesis, Kansas State University, Manhattan, Kansas, forthcoming.Google Scholar
  12. [12]
    Scott, D.A. Data Types as Lattices, SIAM Journal of Computing 5 (1976) 522–587.CrossRefGoogle Scholar
  13. [13]
    Stoy, J.E. Denotational Semantics, MIT Press, Cambridge, Mass. (1977).Google Scholar
  14. [14]
    Strachey, C., and Wadsworth, C.P. Continuations — A Mathematical Semantics for Handling full Jumps, Technical monograph PRG-11, Oxford University (1974).Google Scholar
  15. [15]
    Wadsworth, C.P. The Relation between Computational and Denotational Properties for Scott's Models of the Lambda-Calculus, SIAM Journal of Computing 5 (1976) 488–521.Google Scholar
  16. [16]
    Watt, D.A., and Madsen, O.L. Extended Attribute Grammars, Report no. 10, University of Glasgow (1977).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1980

Authors and Affiliations

  • David A. Schmidt
    • 1
  1. 1.Computer Science DepartmentAarhus UniversityDenmark

Personalised recommendations