GEDANKEN—a simple typeless language based on the principle of completeness and the reference concept
Communications of the ACM
Revised report on the algorithm language ALGOL 60
Communications of the ACM
The evaluation, classification and interpretation of expressions
ACM '64 Proceedings of the 1964 19th ACM national conference
PAL—a language designed for teaching programming linguistics
ACM '68 Proceedings of the 1968 23rd ACM national conference
Correctness results for lambda calculus interpreters
Correctness results for lambda calculus interpreters
Algol-60 Implementation
LISP 1.5 Programmer's Manual
Programming Languages, Information Structures, and Machine Organization.
Programming Languages, Information Structures, and Machine Organization.
The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies)
The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies)
Block structure (Extended Abstract): Retention or deletion?
STOC '71 Proceedings of the third annual ACM symposium on Theory of computing
Operational semantics of programming languages
Proceedings of ACM conference on Proving assertions about programs
Bibliography on data base structures
ACM SIGMIS Database
Hi-index | 0.00 |
Interpreters for programming languages may be defined in terms of the information structures (data structures) generated during program execution. This paper develops a class of proof techniques for proving equivalence between two classes of programming language interpreters referred to as associative interpreters and sequential interpreters. The relation between associative and sequential interpreters is briefly illustrated first for arithmetic expression evaluation and then for lambda calculus evaluation, and the strategy for proving equivalence is briefly described. The proof technique is worked out in detail both for arithmetic expression evaluation and for lambda calculus evaluation. The relatively trivial case of arithmetic expression evaluation is considered in detail in order to illustrate the basic structure of the proof in a context familiar to the uninitiated. The proof of equivalence of associative and sequential lambda calculus interpreters demonstrates a nontrivial equivalence proof and at the same time provides valuable insights into the relation between mathematical definitions of the lambda calculus and practical implementations of the lambda calculus. It is shown that an understanding of lambda calculus interpretation in turn provides insights into interpretation mechanisms for block structure languages like ALGOL 60.