The categorical abstract machine
Science of Computer Programming
Two-level functional languages
Two-level functional languages
Optimizing ML with run-time code generation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
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
Run-time code generation and modal-ML
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Efficient incremental run-time specialization for free
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
C and tcc: a language and compiler for dynamic code generation
ACM Transactions on Programming Languages and Systems (TOPLAS)
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
DyC: an expressive annotation-directed dynamic compiler for C
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
MetaML and multi-stage programming with explicit annotations
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
A modal analysis of staged computation
Journal of the ACM (JACM)
A compiled implementation of strong reduction
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Definitional Interpreters for Higher-Order Programming Languages
Higher-Order and Symbolic Computation
Multi-Stage Programming: Axiomatization and Type Safety
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
Efficient Multi-level Generating Extensions for Program Specialization
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
A temporal-logic approach to binding-time analysis
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
A functional correspondence between evaluators and abstract machines
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Implementing multi-stage languages using ASTs, Gensym, and reflection
Proceedings of the 2nd international conference on Generative programming and component engineering
A functional correspondence between call-by-need evaluators and lazy abstract machines
Information Processing Letters
A tour of tempo: a program specializer for the C language
Science of Computer Programming - Special issue on program transformation
A modal type system for multi-level generating extensions with persistent code
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Theoretical Computer Science - Applied semantics: Selected topics
Functional derivation of a virtual machine for delimited continuations
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Shifting the stage: Staging with delimited control
Journal of Functional Programming
Hi-index | 0.00 |
We develop virtual machines and compilers for a multi-level language, which supports multi-stage specialization by composing program fragments with quotation mechanisms. We consider two styles of virtual machines--ones equipped with special instructions for code generation and ones without--and show that the latter kind can deal with, more easily, low-level code generation, which avoids the overhead of (run-time) compilation by manipulating instruction sequences, rather than source-level terms, as data. The virtual machines and accompanying compilers are derived by program transformation, which extends Ager et al.'s derivation of virtual machines from evaluators.