Strictness analysis and polymorphic invariance
on Programs as data objects
Two-level semantics and code generation
Theoretical Computer Science - First European Symposium on Programming, Saarbru:9Aicken, W. Germany, March 17:8
MetaLISP: a representation independent dialect of LISP with reduction semantics
MetaLISP: a representation independent dialect of LISP with reduction semantics
Partial type inference for untyped functional programs
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A confluent calculus of Macro expansion and evaluation
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Specifying the correctness of binding-time analysis
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
A Self-Interpreter of Lambda Calculus Having a Normal Form
CSL '92 Selected Papers from the Workshop on Computer Science Logic
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Hi-index | 0.00 |
We develop a calculus in which the computation steps required to execute a computer program can be separated into discrete stages. The calculus, denoted &lgr;2, is embedded within the pure untyped &lgr;-calculus. The main result of the paper is a characterization of sufficient conditions for confluence for terms in the calculus. The condition can be taken as a correctness criterion for translators that perform reductions in one stage leaving residual redexes over for subsequent computation stages. As an application of the theory, we verify the correctness of a macro expansion algorithm. The expansion algorithm is of some interest in its own right since it solves the problem of desired variable capture using only the familiar capture avoiding substitutions.