|
CMU-CS-99-136
Computer Science Department
School of Computer Science, Carnegie Mellon University
CMU-CS-99-136
Optimizing a Solver of Oplymorphism Constraints: SEMI
Robert O'Callahan
June 1999
CMU-CS-99-136.ps
CMU-CS-99-136.pdf
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
|