Abstract.OpenJIT is an open-ended, reective JIT compiler framework for Java being researched and developed in a joint p r o j e c t by T okyo Inst. Tech. and Fujitsu Ltd. Although in general self-descriptive systems have been studied in various contexts such as reection and interpreter/compiler bootstrapping, OpenJIT is a rst system we know t o d a t e that oers a stable, full-edged Java JIT compiler that plugs into existing monolithic JVMs, and oer competitive performance to JITs typically written i n C o r C + + . T h i s i s i n c o n trast to previous work where compilation did not occur in the execution phase, customized VMs being developed ground-up, performance not competing with existing optimizing JIT compilers, and/or only a subset of the Java language being supported. The main contributions of this paper are, 1) we p r o p o s e a n architecture for a reective JIT compiler on a monolithic VM, and identify the technical challenges as well as the techniques employed, 2) We dene an API that adds to the existing JIT compiler APIs in \classic" JVM to allow reective JITs to be constructed, 3) We show detailed benchmarks of run-time behavior of OpenJIT to demonstrate that, while being competitive with existing JITs the time-and space-overheads of compiler metaobjects that exist in the heap are small and manageable, and 4) we demonstrate how reective JITs could be useful class-or application specic customization and optimization by p r o viding an important reective \hook" into a Java system. Being an object-oriented compiler framework, OpenJIT can be congured to be small and portable or fully-edged optimizing compiler framework in the spirit of SUIF. It is fully JCK compliant, and runs all large Java applications we h a ve tested to date including HotJava. We are currently distributing OpenJIT for free to foster further research i n to advanced compiler optimization, compile-time reection, advanced run-time support for languages, as well as other areas such a s e m bedded computing, metacomputing, and ubiquitous computing.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.