Jumbo: Run-time Program Generation for Java
Sam Kamin

Jumbo is an extension of Java with a staging facility. It is distinguished from similar Java extensions by several features: its method of construction by use of compositional compilation; its consequent generality; and its completeness as a Java implementation. By compositional compilation we mean that each language construct contains its own compilation semantics, just as each construct contains its own meaning in a denotational definition. Using this technique, we obtain a system in which the run-time code generator uses exactly the same code - or, rather, a residual of the same code - as the static compiler. The result is that virtually any code fragment can be quoted and included in programs generated at run time. Adding to this the fact that Jumbo is a complete implementation of Java (excluding 1.5 extensions), we have a facility that is very powerful and general, and thereby easy to use for ordinary Java programmers. The talk gives an overview of Jumbo and compositional semantics, and presents several examples. Finally, we present the view that run-time program generation can be viewed as an application - a particularly compelling application - of functional programming.