next up previous
Next: Generalized Interface Up: Code Analysis and Optimization Previous: The Quad IR

The Bytecode IR

In addition, to experiment with rapid code generation from bytecode and also to leverage existing bytecode analyses and tools, Joeq includes a bytecode IR, which corresponds directly to the bytecode in the Java class file. The design of the bytecode framework is based on the Byte Code Engineering Library (BCEL), a popular open-source library for analyzing and manipulating bytecode[12]. We took the opportunity to clean up some of the BCEL interfaces; for example, by construction BCEL uses separate objects for loaded classes versus classes that can be modified -- Joeq merges these into a single object. Most code written to use BCEL will work with Joeq with only a few trivial modifications. Joeq can also output Java class files using the bytecode IR along with the class and member metadata.

John Whaley 2003-03-15