An experiment in partial evaluation: the generation of a compiler generator
Proc. of the first international conference on Rewriting techniques and applications
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Proceedings of the first ACM SIGPLAN international conference on Functional programming
An Automatic Program Generator for Multi-Level Specialization
Lisp and Symbolic Computation
Compilation for two computers with NELIAC
Communications of the ACM
A Hybrid Approach to Online and Offline Partial Evaluation
Higher-Order and Symbolic Computation
Program transformation system based on generalized partial computation
New Generation Computing - Partial evaluation and program transformation
An Introduction to Online and Offline Partial Evaluation using a Simple Flowchart Language
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
Parital Computation of Programs
Proceedings of RIMS Symposium on Software Science and Engineering
Metacomputation: Metasystem Transitions plus Supercompilation
Selected Papers from the Internaltional Seminar on Partial Evaluation
The structure of a self-applicable partial evaluator
Programs as Data Objects, Proceedings of a Workshop
Principles of inverse computation and the Universal resolving algorithm
The essence of computation
Offline partial evaluation can be as accurate as online partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A tour of tempo: a program specializer for the C language
Science of Computer Programming - Special issue on program transformation
A reversible programming language and its invertible self-interpreter
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Is there a fourth Futamura projection?
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Self-generating program specializers
Information Processing Letters
An experiment with the fourth futamura projection
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
A self-applicable online partial evaluator for recursive flowchart languages
Software—Practice & Experience
Hi-index | 0.00 |
This paper shows that bootstrapping of compiler generators from program specializers is a viable alternative to the third Futamura projection. To practically validate the technique, a novel partial evaluation-based compiler generator was designed and implemented for a recursive flowchart language. Three-step bootstrapping was found to be faster and to produce the same compiler generator that Gomard and Jones produced two decades ago by double self-application. Compiler-generator bootstrapping has distinct properties that are not present in the classic three Futamura projections, such as the ability to turn a specializer into a compiler generator in one step without self-application. Up to now, the approach of hand-writing compiler generators has only been used to avoid difficulties when specializing strongly-typed languages, not as a first step towards compiler-generator bootstrapping.