1992 · 335 citations · 25 references
ComputingComputer ScienceAlgorithmsProgramming LanguagesTheory Of ComputationControl-flow AnalysisData-flow AnalysisAliasesPointer AnalysisPrecision
An alias is a name that refers to the same memory location, and determining aliases in pointer‑rich languages is ρ‑space‑hard. The paper proposes an algorithm for the Conditional May Alias problem to safely approximate interprocedural may aliasing with pointers. The algorithm achieves worst‑case precision and has been implemented in a prototype C‑program analysis tool. Initial experiments show promising speed and precision.
During execution, when two or more names exist for the same location at some program point, we call them aliases. In a language which allows arbitrary pointers, the problem of determining aliases at a program point is ρ-space-hard [Lan92]. We present an algorithm for the Conditional May Alias problem, which can be used to safely approximate Interprocedural May Alias in the presence of pointers. This algorithm is as precise as possible in the worst case and has been implemented in a prototype analysis tool for C programs. Preliminary speed and precision results are presented.
25
Analysis of pointers and structures
David Chase, Mark N. Wegman, F. K. Zadeck · ACM SIGPLAN Notices · 2004 · 437 citations
Flow analysis and optimization of LISP-like structures
Neil D. Jones, Steven S. Muchnick · 1979 · 308 citations
Analysis of pointers and structures
David Chase, Mark N. Wegman, F. Kenneth Zadeck · 1990 · 299 citations · Full text
Dependence analysis for pointer variables
Susan Horwitz, Phil Pfeiffer, Thomas Reps · 1989 · 233 citations