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
tcc: a system for fast, flexible, and high-level dynamic code generation
Proceedings of the ACM SIGPLAN 1997 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)
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
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
The Java Language Specification
The Java Language Specification
Lightweight and Generative Components I: Source-Level Components
GCSE '99 Proceedings of the First International Symposium on Generative and Component-Based Software Engineering
Lightweight and Generative Components 2: Binary-Level Components
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Jumbo: run-time code generation for Java and its applications
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Routine run-time code generation
ACM SIGPLAN Notices
Invited application paper: program generation considered easy
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A tour of tempo: a program specializer for the C language
Science of Computer Programming - Special issue on program transformation
Optimizations in distributed run-time compilation
Optimizations in distributed run-time compilation
Optimizing marshalling by run-time program generation
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Hi-index | 0.00 |
We describe our efforts to use source-level rewriting to optimize run-time program generators written in Jumbo, a run-time program generation system for Java. Jumbo is a compiler written in compositional style, which brings the advantage that any program fragment can be abstracted out and compiled to an intermediate form. These forms can be put together at run-time to build complete programs. This principle provides a high level of flexibility in writing program generators. However, this comes at the price of inefficient run-time compilation. Using source-level transformations, we optimize the run-time generation of byte code from fragments, achieving speedups of 5–15%. We discuss the optimization process and give several examples.