Deriving Target Code as a Representation of Continuation Semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Theory of Programming Language Semantics
A Theory of Programming Language Semantics
Semantics-directed machine architecture
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Circular Expressions: Elimination of Static Environments
Proceedings of the 8th Colloquium on Automata, Languages and Programming
From standard to implementation denotational semantics
Semantics-Directed Compiler Generation, Proceedings of a Workshop
Control flow aspects of semantics directed compiling (Summary)
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
The semantics of program dependence
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Continuation-based parallel implementation of functional programming languages
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Compiler prototyping using formal semantics
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
A types-as-sets semantics for milner-style polymorphism
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The scheme 311 compiler an exercise in denotational semantics
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Functional derivation of a virtual machine for delimited continuations
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Hi-index | 0.00 |
In our paper [Wand 82a], we introduced a paradigm for compilation based on combinators. A program from a source language is translated (via a semantic definition) to trees of combinators; the tree is simplified (via associative and distributive laws) to a linear, assembly-language-like format: the "compiler writer's virtual machine" operates by simulating a reduction sequence of the simplified tree. The correctness of these transformations follows from general results about the λ-calculus. The code produced by such n generator is always tree-like. In this paper, the method is extended to produce target code with explicit loops. This is done by re-introducing variables into the terms of the target language in a restricted way, along with a structured binding operator.