An experiment in partial evaluation: the generation of a compiler generator
Proc. of the first international conference on Rewriting techniques and applications
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Computability and complexity: from a programming perspective
Computability and complexity: from a programming perspective
Communications of the ACM
A formalism for translator interactions
Communications of the ACM
Parital Computation of Programs
Proceedings of RIMS Symposium on Software Science and Engineering
Principles of inverse computation and the Universal resolving algorithm
The essence of computation
Transformation by interpreter specialisation
Science of Computer Programming - Special issue on program transformation
Machine-independent computer programming
Machine-independent computer programming
Imperative-program transformation by instrumented-interpreter specialization
Higher-Order and Symbolic Computation
An investigation of Jones optimality and BTI-universal specializers
Higher-Order and Symbolic Computation
Software—Practice & Experience
An experiment with the fourth futamura projection
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
Bootstrapping compiler generators from partial evaluators
PSI'11 Proceedings of the 8th international conference on Perspectives of System Informatics
Hi-index | 0.89 |
This paper demonstrates the existence of self-generating program specializers and uses a language-independent projection to obtain them. The projection is considered from the viewpoint of the interpretive approach and a bootstrapping technique is identified by which a specializer can optimize its own implementation. A theorem is presented that equates the set of self-generating specializers and the set of specializers produced by the new projection. A practical consequence of the theorem is that an implementation of a specializer must contain an error if it is not possible to observe self-generation, which requires only a textual program comparison. Self-generation may thus provide a method for testing specializers and self-interpreters while they are under development.