P
Patrick Lam
Researcher at University of Waterloo
Publications - 63
Citations - 4279
Patrick Lam is an academic researcher from University of Waterloo. The author has contributed to research in topics: Data structure & Java. The author has an hindex of 26, co-authored 63 publications receiving 3987 citations. Previous affiliations of Patrick Lam include McGill University & Massachusetts Institute of Technology.
Papers
More filters
Proceedings ArticleDOI
Soot: a Java bytecode optimization framework
TL;DR: Soot, a framework for optimizing Java* bytecode, is implemented in Java and supports three intermediate representations for representing Java bytecode: Baf, a streamlined representation of bytecode which is simple to manipulate; Jimple, a typed 3-address intermediate representation suitable for optimization; and Grimp, an aggregated version of Jimple suitable for decompilation.
Book ChapterDOI
Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?
Raja Vallée-Rai,Etienne Gagnon,Laurie Hendren,Patrick Lam,Patrice Pominville,Vijay Sundaresan +5 more
TL;DR: The approach to class file optimization is to first convert the stack-based bytecode into Jimple, a three-address form more amenable to traditional program optimization, and then convert the optimized Jimple back to bytecode.
The Soot framework for Java program analysis: a retrospective
TL;DR: relevant features of Soot are described, its development process is summarized, and useful features for future program analysis frameworks are discussed.
Proceedings ArticleDOI
Practical virtual method call resolution for Java
Vijay Sundaresan,Laurie Hendren,Chrislain Razafimahefa,Raja Vallée-Rai,Patrick Lam,Etienne Gagnon,Charles Godin +6 more
TL;DR: This paper addresses the problem of resolving virtual method and interface calls in Java bytecode by developing a technique that can be solved with only one iteration, and thus scales linearly with the size of the program, while at the same time providing more accurate results than two popular existing linear techniques, class hierarchy analysis and rapid type analysis.