The LOOME Research Group
Welcome to LOOME, the
Language t
OOls for
Modularity and
Efficiency group at UIUC!
LOOME works on programming language technologies that can help improve programmer productivity and program quality.
Our major emphasis is on tools for producing run-time code generators.
Leveraging techniques from the study of functional languages -
especially, the use of higher-order functions - we are able to make
program both highly generic and very efficient. Our view is that
run-time program generation (RTPG) can not only make programs run more
quickly, but can make traditional compile-time code generation methods
more widely available and easier to use.
Most of our work is centered on
Jumbo, a compiler for a
two-level version of Java. Jumbo compiles full Java 2.0. Code
generators are defined by placing Java source code in quotes; such
quoted code is partially compiled when first seen and then fully
compiled at run time. Such quoted code can contain "holes" that are
filled in at run time; for example, a fragment of code might have a
missing statement in the middle. These holes are eventually filled with
other pieces of quoted Java code (which can in turn contain holes).
Jumbo provides a very general mechanism in the sense that virtually any
Java code can be put in quotes and virtually any Java fragment of the
correct syntactic type can be used to fill in the holes.