CISC 872 Fall 1999 Bibliography

General Reading

[MU97]
Steven S. Muchnick, Advanced Compiler Design and Implementation, Margan Kaufmann, 1997.

[HI98]
Nicholas J. Higham, Handbook of Writing for the Mathematical Sciences, SIAM, 1998.

[MR90]
T. J. Marlowe and B. G. Ryder, "Properties of Data Flow Frameworks: A Unified Model," Acta Informatica, 28, 1990, pages 121-163.

[Ryd96]
B. G. Ryder, "The Future of Program Analysis," ACM Computing Surveys, Vol. 28, No. 4, 1996.

Scalability Goals: Changes in Program Representations

Def-Use Chains:

[RT81]
John H. Reif and Robert E. Tarjan, "Symbolic Program Analysis in Almost-linear time," SIAM Journal on Computing, Vol. 11, No. 1, February 1981, pages 81-93.

SSA:

[CFRW91]
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, "Efficiently Computing Static Single Assignment Form and the Control Dependence Graph," ACM Transactions on Programming Languages and Systems, Vol. 12, No. 4, October 1991, pages 451-490.

[CFRWZ89]
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, F. Kenneth Zadeck, "An Efficient Method of Computing Static Single Assignment Form", ACM Symposium on Principles of Programming Languages (POPL), 1989, pages 25-35.

[CF95]
Ron K. Cytron and Jeanne Ferrante, "Efficiently Computing Phi-nodes On-the-fly," TOPLAS, Volume 17, No. 3, May 1995, pages 487-506.

[KS98]
Kathleen Knobe and Vivek Sarkar, "Conditional Constant Propagation of Scalar and Array References Using Array SSA Form," Symposium on Static Analysis (SAS), 1998.

Sparse Evaluation Graph:

[CCF91]
Jong-Deok Choi, Ron Cytron, Jeanne Ferrante, "Automatic Construction of Sparse Data Flow Evaluation Graphs," ACM Symposium on Principles of Programming Languages (POPL), 1991, pages 55-66.

Dependence Flow Graph:

[JP93]
Richard Johnson and Keshav Pingali, "Dependence-Based Program Analysis, ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 1993, pages 78-89.

Congruence Partitioning:

[DGS94]
Evelyn Duesterwald, Rajiv Gupta, Mary Lou Soffa, "Reducing the Cost of Data Flow Analysis by Congruence Partitioning," International Conference on Compiler Construction, April 1994.

PDG:

[FOW87]
Jeanne Ferrante, Karl J. Ottenstein, Joe D. Warren, "The Program Dependence Graph and Its Use in Optimization," ACM Transactions on Programming Languages and Systems, Vol. 9, No. 3, July 1987, pages 319-349.

PDW:

[BMO90]
Robert A. Ballance, Arthur B. Maccabe, and Karl J. Ottenstein, "The Program Dependence Web: A representation supporting control-, data-, and demand-driven interpretation of imperative languages, Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 257-271, 1990.

Value Dependence Graph:

[WCES94]
Daniel Weise, Roger F. Crew, Michel Ernst, Bjarne Steensgaard, "Value Dependence Graphs: Representation Without Taxation," ACM Symposium on Principles of Programming Languages, 1994, pages 297-310.

b. Changes in the supergraph

SDG:

[HRB90]
Susan Horwitz, Thomas Reps, David Binkley, "Interprocedural Slicing Using Dependence Graphs," ACM Transactions on Programming Languages and Systems, Vol. 12, No. 1, January 1990, pages 26-60.

Program Summary Graph:

[C88]
David Callahan, "The Program Summary Graph and Flow-sensitive Interprocedural Data Flow Analysis," ACM SIGPLAN Conference on Programming Language Design and Implementation, June 1988, pages 47-56.

[HS94]
Mary Jean Harrold and Mary Lou Soffa, "Efficient Computation of Interprocedural Definition-Use Chains," TOPLAS, Volume 16, No. 2, March 1994, pages 175-204.

[SP??]
M. Shirir and A. Pnuelli, "Two approaches to interprocedural data flow analysis," in Program Flow Analysis: THeory and Applications, S. Muchnick and N. Jones, eds. Prentice-Hall, Englewood Cliffs, NJ, pages 189--234.

Changes in Analysis for Scalability

Demand-driven Analysis

[HRS95]
Susan Horwitz, Thomas Reps, Mooly Sagiv, "Demand Interprocedural Dataflow Analysis," ACM SIGSOFT Foundations of Software Engineering, 1995, pages 104-115.

[DGS97]
Evelyn Duesterwald, Rajiv Gupta, Mary Lou Soffa, "A Practical Framework for Demand-driven Interprocedural Data Flow Analysis," ACM Transactions on Programming Languages and Systems, Vol. 19, No. 6, November 1997, pages 992-1030.

Slotwise Analysis

[DRZ92]
Dhananjay M. Dhamdhere, Barry K. Rosen, and F. Kennetch Zadeck, "How to Analyze Large Programs Efficiently and Informatively," Proceedings of ACM SIGPLAN Programming Languages Design and Implementation, 1992, pg. 212-223.

Partitioning Techniques

[ZRL96]
Sean Zhang, Barbara G. Ryder, William Landi, "Program Decomposition for Pointer Aliasing: A Step toward Practical Analyses," ACM SIGSOFT Foundations of Software Engineering, 1996, pages 81-92.

[R97]
Erik Ruf, "Partitioning Dataflow Analyses Using Types," ACM Symposium on Principles of Programming Languages, 1997, pages 15-26.

[CRL99]
Ramkrishna Chatterjee, Barbara G. Ryder, William A. Landi, "Relevant Context Inference," ACM Symposium on Principles of Programming Languages, 1999, pages 133-146.

[LH99]
Donglin Liang and Mary Jean Harrold, "Efficient Points-To Analysis for Whole-Program Analysis," ACM SIGSOFT Foundations of Software Engineering, 1999.

Precision Goals: Path-based Techniques

Eliminate Paths:

[RHS95]
Thomas Reps, Susan Horwitz, and Mooly Sagiv, "Precise Interprocedural Dataflow Analysis via Graph Reachability," POPL 1995.

[HR81]
L. Howard Holley and Barry K. Rosen, "Qualified Data Flow Problems," IEEE Transactions on Software Engineering, SE-7 (1), January 1981, pages 60-78.

[BGS97]
R. Bodik, R. Gupta, M.L. Soffa, "Refining Data Flow Information using Infeasible Paths," Proceedings of ACM SIGSOFT Symposium on Foundations of Software Engineering and Sixth European Software Engineering Conference, Sept. 1997.

Separate Paths:

[AmLa99}
Glenn Ammons and James R. Larus, "Improving Data-flow Analysis with Path Profiles," PLDI 1998.

[BA98]
Rastislav Bodik and Sadun Anik,"Path-Sensitive Value-Flow Analysis," POPL98.

Pointer Analysis:

[S96]
Bjarne Steensgaard, "Points-to Analysis in Almost Linear Time," ACM Symposium on Principles of Programming Langauges, 1996, pages 32-41.

[GH96]
Rakesh Ghiya and Laurie J. Hendren, "Is it a Tree, a DAG, or a Cyclic Graph? A Shape Analysis for Heap-Directed Pointers in C," POPL 96.

[SH97]
Marc Shapiro and Susan Horwitz, "Fast and Accurate Flow-Insensitive Points-to Analysis," POPL 97.

[GH98]
Rakesh Ghiya and Laurie J. Hendren, "Putting Pointer Analysis to Work," POPL 98.

[RH96]
Rakesh Ghiya and Laurie J. Hendren, "Connection Analysis: A Practical Interprocedural Heap Analysis in C," International Journal of Parallel Programming, Volume 24, No. 6, 1996.