| 2000 | A certifying compiler for Java. Christopher Colby, Peter Lee, George C. Necula, Fred Blau, Mark Plesko, Kenneth Cline |
| 2000 | A framework for interprocedural optimization in the presence of dynamic class loading. Vugranam C. Sreedhar, Michael G. Burke, Jong-Deok Choi |
| 2000 | A generational on-the-fly garbage collector for Java. Tamar Domani, Elliot K. Kolodner, Erez Petrank |
| 2000 | A single intermediate language that supports multiple implementations of exceptions. Norman Ramsey, Simon L. Peyton Jones |
| 2000 | ABCD: eliminating array bounds checks on demand. Rastislav Bodík, Rajiv Gupta, Vivek Sarkar |
| 2000 | An automatic object inlining optimization and its evaluation. Julian Dolby, Andrew A. Chien |
| 2000 | Bitwidth analysis with application to silicon compilation. Mark Stephenson, Jonathan Babb, Saman P. Amarasinghe |
| 2000 | Caching function calls using precise dependencies. Allan Heydon, Roy Levin, Yuan Yu |
| 2000 | Compiler analysis of irregular memory accesses. Yuan Lin, David A. Padua |
| 2000 | Contaminated garbage collection. Dante J. Cannarozzi, Michael P. Plezbert, Ron Cytron |
| 2000 | Dynamo: a transparent dynamic optimization system. Vasanth Bala, Evelyn Duesterwald, Sanjeev Banerjia |
| 2000 | Effective synchronization removal for Java. Erik Ruf |
| 2000 | Efficient algorithms for bidirectional debugging. Bob Boothe |
| 2000 | Exploiting superword level parallelism with multimedia instruction sets. Samuel Larsen, Saman P. Amarasinghe |
| 2000 | Field analysis: getting useful and low-cost interprocedural information. Sanjay Ghemawat, Keith H. Randall, Daniel J. Scales |
| 2000 | Functional reactive programming from first principles. Zhanyong Wan, Paul Hudak |
| 2000 | Improved spill code generation for software pipelined loops. Javier Zalamea, Josep Llosa, Eduard Ayguadé, Mateo Valero |
| 2000 | Modular interprocedural pointer analysis using access paths: design, implementation, and evaluation. Ben-Chung Cheng, Wen-mei W. Hwu |
| 2000 | Off-line variable substitution for scaling points-to analysis. Atanas Rountev, Satish Chandra |
| 2000 | On loops, dominators, and dominance frontier. G. Ramalingam |
| 2000 | Optimal instruction scheduling using integer programming. Kent D. Wilken, Jack Liu, Mark Heffernan |
| 2000 | Practicing JUDO: Java under dynamic optimizations. Michal Cierniak, Guei-Yuan Lueh, James M. Stichnoth |
| 2000 | Proceedings of the 2000 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Vancouver, Britith Columbia, Canada, June 18-21, 2000 Monica S. Lam |
| 2000 | Safety checking of machine code. Zhichen Xu, Barton P. Miller, Thomas W. Reps |
| 2000 | Scalable context-sensitive flow analysis using instantiation constraints. Manuel Fähndrich, Jakob Rehof, Manuvir Das |
| 2000 | Split-stream dictionary program compression. Steven Lucco |
| 2000 | Symbolic bounds analysis of pointers, array indices, and accessed memory regions. Radu Rugina, Martin C. Rinard |
| 2000 | Transforming loops to recursion for multi-level memory hierarchies. Qing Yi, Vikram S. Adve, Ken Kennedy |
| 2000 | Translation validation for an optimizing compiler. George C. Necula |
| 2000 | Type-based race detection for Java. Cormac Flanagan, Stephen N. Freund |
| 2000 | Unification-based pointer analysis with directional assignments. Manuvir Das |