Computer Science Department
School of Computer Science, Carnegie Mellon University


Optimizing a Solver of Oplymorphism Constraints: SEMI

Robert O'Callahan

June 1999

Keywords: Java, bytecode, Ajax, polymorphism, polymorphic recursion, SEMI, contraint solving

As part of the Ajax system for analyzing Java bytecode programs, I have developed an analysis called SEMI, based on type inference with polymorphic recursion. SEMI has a number of optimizations which significantly decrease the time and space requirements for analyzing large programs. These optimizations exploit the characteristics of Java programs to make analysis tractable. These assumptions, and the optimizations that follow from them, may apply in other domains using type inference with polymorphic recursion. In this report, I describe the SEMI algorithm, the optimizations it incorporates, and the characteristics of Java programs that justify the optimizations.

30 pages

Return to: SCS Technical Report Collection
School of Computer Science homepage

This page maintained by