Papers on Compilers and Program Analysis

This page compiles list of classic publications on compilers and program analysis.

Compilers

1971 IBM TR A Catalogue of Optimizing Transformations
1991 TOPLAS Efficiently Computing Static Single Assignment Form and the Control Dependence Graph
2003 MICRO LLVA: A Low-level Virtual Instruction Set Architecture
2004 CGO LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
2011 PLDI Finding and Understanding Bugs in C Compilers
2017 CGO ThinLTO: Scalable and Incremental LTO

Data Flow Analysis

1976 JACM Global Data Flow Analysis and Iterative Algorithms
1984 TOSE Program Slicing
1987 TOPLAS The Program Dependence Graph and Its Use in Optimization
1990 TOPLAS Interprocedural Slicing Using Dependence Graphs
1994 POPL Value Dependence Graphs: Representation Without Taxation
1995 POPL Precise Interprocedural Dataflow Analysis via Graph Reachability
2016 CC SVF: Interprocedural Static Value-Flow Analysis in LLVM

Pointer Analysis

1992 LOPLAS Undecidability of Static Analysis
1993 POPL Efficient Flow-Sensitive Interprocedural Computation of Pointer-Induced Aliases and Side Effects.
1994 PLDI Context-Sensitive Interprocedural Points-to Analysis in the Presence of Function Pointers
1995 PLDI Efficient Context-Sensitive Pointer Analysis for C Programs
1996 POPL Points-to Analysis in Almost Linear Time
1997 SAS The Effects of the Precision of Pointer Analysis
1997 POPL Fast and Accurate Flow-insensitive Points-to Analysis
1997 TOPLAS Precise Flow-Insensitive May-Alias Analysis is NP-Hard
1998 PLDI Type-Based Alias Analysis
1999 TOPLAS Interprocedural Pointer Alias Analysis
2000 PLDI Unification Based Pointer Analysis with Directional
2000 SAS Polymorphic versus Monomorphic Flow-insensitive Points-to Analysis for C
2000 ISSTA Which Pointer Analysis Should I Use?
2001 PASTE Pointer Analysis: Haven’t We Solved This Problem Yet?
2007 PLDI The Ant and the Grasshopper: Fast and Accurate Pointer Analysis for Millions of Lines of Code
2007 PLDI Making Context-sensitive Points-to Analysis with Heap Cloning Practical For The Real World
2009 CGO Wave Propagation and Deep Propagation for Pointe Analysis
2011 CGO Flow-Sensitive Pointer Analysis for Millions of Lines of Code

Abstract Interpretation, Symbolic Execution, and More

1977 POPL Abstract Interpretation: A Unified Latice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints

More

This list maintained by Prof. Peisen Yao of Zhejiang University is also very good: Some Interesting Papers.