Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Constant propagation with conditional branches
ACM Transactions on Programming Languages and Systems (TOPLAS)
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
A correspondence between continuation passing style and static single assignment form
IR '95 Papers from the 1995 ACM SIGPLAN workshop on Intermediate representations
Modern compiler implementation in Java
Modern compiler implementation in Java
ACM SIGPLAN Notices
Jump Minimization in Linear Time
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Compiler Design
Continuations: A Mathematical Semantics for Handling FullJumps
Higher-Order and Symbolic Computation
Rabbit: A Compiler for Scheme
The best simple code generation technique for WHILE, FOR, and DO loops
ACM SIGPLAN Notices
Hi-index | 0.00 |
Starting from an operational specification of a translation from a structured to an unstructured imperative language, we point out how a compositional and context-insensitive translation gives rise to static chains of jumps. Taking an inspiration from the notion of continuation, we state a new compositional and context-sensitive specification that provably gives rise to no static chains of jumps, no redundant labels, and no unused labels. It is defined with one inference rule per syntactic construct and operates in linear time and space on the size of the source program (indeed it operates in one pass).