Lambda lifting: transforming programs to recursive equations
Proc. of a conference on Functional programming languages and computer architecture
Denotational semantics: a methodology for language development
Denotational semantics: a methodology for language development
ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Realistic compilation by program transformation (detailed summary)
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Compiler generators: what they can do, what they might do, and what they will probably never do
Compiler generators: what they can do, what they might do, and what they will probably never do
Functional programming with bananas, lenses, envelopes and barbed wire
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
For a better support of static data flow
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Compiling with continuations
Improving binding times without explicit CPS-conversion
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Safe fusion of functional expressions
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Synthesis: an efficient implementation of fundamental operating system services
Synthesis: an efficient implementation of fundamental operating system services
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
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
A generic account of continuation-passing styles
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimizing dynamically-dispatched calls with run-time type feedback
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Continuation-based partial evaluation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
DCG: an efficient, retargetable dynamic code generation system
ASPLOS VI Proceedings of the sixth international conference on Architectural support for programming languages and operating systems
A tractable Scheme implementation
Lisp and Symbolic Computation
Semantic Lego
Shortcut deforestation in calculational form
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Warm fusion: deriving build-catas from recursive definitions
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Optimizing ML with run-time code generation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Proceedings of the first ACM SIGPLAN international conference on Functional programming
A general approach for run-time specialization and its application to C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-directed partial evaluation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Revised report on the algorithmic language scheme
ACM SIGPLAN Lisp Pointers
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
Selected Papers from the Internaltional Seminar on Partial Evaluation
Selected Papers from the Internaltional Seminar on Partial Evaluation
Integer Constraints to Stop Deforestation
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
Towards Unifying Partial Evaluation, Deforestation, Supercompilation, and GPC
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
Efficient Multi-level Generating Extensions for Program Specialization
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
Implementing Memoization for Partial Evaluation
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
Call-By-Name CPS-Translation as a Binding-Time Improvement
SAS '95 Proceedings of the Second International Symposium on Static Analysis
Compiler Generation for Interactive Graphics Using Intermediate Code
Selected Papers from the Internaltional Seminar on Partial Evaluation
Pragmatics of Type-Directed Partial Evaluation
Selected Papers from the Internaltional Seminar on Partial Evaluation
A Uniform Approach for Compile-Time and Run-Time Specialization
Selected Papers from the Internaltional Seminar on Partial Evaluation
Homomorphisms and Promotability
Proceedings of the International Conference on Mathematics of Program Construction, 375th Anniversary of the Groningen University
Grammar-Based Data-Flow Analysis to Stop Deforestation
CAAP '94 Proceedings of the 19th International Colloquium on Trees in Algebra and Programming
Rabbit: A Compiler for Scheme
A supercompiler system based on the language REFAL
ACM SIGPLAN Notices
Efficient incremental run-time specialization for free
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Towards automatic construction of staged compilers
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Binding-time analysis for both static and dynamic expressions
New Generation Computing - Partial evaluation and program transformation
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Enforcing Safety Properties Using Type Specialization
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
Compiling Embedded Programs to Byte Code
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Binding-Time Analysis for Both Static and Dynamic Expressions
SAS '99 Proceedings of the 6th International Symposium on Static Analysis
Inlining as staged computation
Journal of Functional Programming
Combinators for program generation
Journal of Functional Programming
Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
Implicitly heterogeneous multi-stage programming
New Generation Computing
Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages
Journal of Functional Programming
Finally tagless, partially evaluated: tagless staged interpreters for simpler typed languages
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
Hi-index | 0.00 |
One of the flagship applications of partial evaluation is compilation and compiler generation. However, partial evaluation is usually expressed as a source-to-source transformation for high-level languages, whereas realistic compilers produce object code.We close this gap by composing a partial evaluator with a compiler by automatic means. Our work is a successful application of several meta-computation techniques to build the system, both in theory and in practice. The composition is an application of deforestation or fusion.The result is a run-time code generation system built from existing components. Its applications are numerous. For example, it allows the language designer to perform interpreter-based experiments with a source-to-source version of the partial evaluator before building a realistic compiler which generates object code automatically.