Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
One-pass code generation using continuations
Software—Practice & Experience
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Separating binding times in language specifications
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Constant propagation with conditional branches
ACM Transactions on Programming Languages and Systems (TOPLAS)
Notions of computation and monads
Information and Computation
Compiling with continuations
Two-level functional languages
Two-level functional languages
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
The essence of compiling with continuations
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A generic account of continuation-passing styles
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESOP'92 Selected papers of the symposium on Fourth European symposium on programming
A correspondence between continuation passing style and static single assignment form
IR '95 Papers from the 1995 ACM SIGPLAN workshop on Intermediate representations
TIL: a type-directed optimizing compiler for ML
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
C: a language for high-level, efficient, and machine-independent dynamic code generation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM SIGPLAN Notices
Compiling standard ML to Java bytecodes
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Stackability in the simply-typed call-by-value lambda calculus
Science of Computer Programming
Contification using dominators
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Compilers and staging transformations
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Definitional Interpreters for Higher-Order Programming Languages
Higher-Order and Symbolic Computation
Optimizing Nested Loops Using Local CPS Conversion
Higher-Order and Symbolic Computation
Macros That Compose: Systematic Macro Programming
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Correctness of Procedure Representations in Higher-Order Assembly Language
Proceedings of the 7th International Conference on Mathematical Foundations of Programming Semantics
Proceedings of the ESPRIT Working Group 8533 on Prospects for Hardware Foundations: NADA - New Hardware Design Methods, Survey Chapters
A First-Order One-Pass CPS Transformation
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
A temporal-logic approach to binding-time analysis
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
LAMBDA: The Ultimate Declarative
LAMBDA: The Ultimate Declarative
Rabbit: A Compiler for Scheme
Orbit: an optimizing compiler for scheme
Orbit: an optimizing compiler for scheme
Compilation by program transformation
Compilation by program transformation
Multistage programming: its theory and applications
Multistage programming: its theory and applications
Language support for program generation: reasoning, implementation, and applications
Language support for program generation: reasoning, implementation, and applications
A computational formalization for partial evaluation
Mathematical Structures in Computer Science
Intuitionistic model constructions and normalization proofs
Mathematical Structures in Computer Science
From ML to Ada: Strongly-typed language interoperability via source translation
Journal of Functional Programming
Normalization by evaluation for the computational lambda-calculus
TLCA'01 Proceedings of the 5th international conference on Typed lambda calculi and applications
Offline partial evaluation for shift and reset
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
CPS transformation of beta-redexes
Information Processing Letters
Compiling with continuations, continued
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
CPS transformation of beta-redexes
Information Processing Letters
Shrinking reductions in SML.NET
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
We present a translation from the call-by-value λ-calculus to monadic normal forms that includes short-cut boolean evaluation. The translation is higher-order, operates in one pass, duplicates no code, generates no chains of thunks, and is properly tail recursive. It makes a crucial use of symbolic computation at translation time.