Componential set-based analysis

Set based analysis is a constraint-based whole program analysis that is applicable to functional and object-oriented programming language. Unfortunately, the analysis is useless for large programs, since it generates descriptions of data flow relationships that grow quadratically in the size of the program.This paper presents componential set-based analysis, which is faster and handles larger programs without any loss of accuracy over set-based analysis. The design of the analysis exploits a number of theoretical results concerning constraint systems, including a completeness result and a decision algorithm concerning the observable equivalance of constraint systems. Experimental results validate the practically of the analysis.

[1]  Azaria Paz,et al.  Theory of Machines and Computations , 1971 .

[2]  Cormac Flanagan,et al.  Effective Static Debugging via Compential Set-Based Analysis , 1997 .

[3]  Scott F. Smith,et al.  Subtyping Constrained Types , 1996, SAS.

[4]  Matthias Felleisen,et al.  Set-Based Analysis for Full Scheme and Its Use in Soft-Typing , 1995 .

[5]  Matthias Felleisen,et al.  Units: cool modules for HOT languages , 1998, PLDI.

[6]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[7]  John E. Hopcroft,et al.  An n log n algorithm for minimizing states in a finite automaton , 1971 .

[8]  Scott F. Smith,et al.  Sound polymorphic type inference for objects , 1995, OOPSLA.

[9]  Nevin Heintze,et al.  Set-based analysis of ML programs , 1994, LFP '94.

[10]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[11]  Manuel Fähndrich,et al.  Making Set-Constraint Program Analyses Scale , 1996 .

[12]  Andrew K. Wright Simple imperative polymorphism , 1995, LISP Symb. Comput..

[13]  Mads Tofte,et al.  Type Inference for Polymorphic References , 1990, Inf. Comput..

[14]  Olin Shivers,et al.  Control-flow analysis of higher-order languages of taming lambda , 1991 .

[15]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[16]  Suresh Jagannathan,et al.  Effective Flow Analysis for Avoiding Run-Time Checks , 1995, SAS.

[17]  Jens Palsberg,et al.  Closure analysis in constraint form , 1995, TOPL.

[18]  Ronald L. Rivest,et al.  The Design and Analysis of Computer Algorithms , 1990 .

[19]  François Pottier,et al.  Simplifying subtyping constraints , 1996, ICFP '96.

[20]  Jens Palsberg,et al.  A type system equivalent to flow analysis , 1995, TOPL.

[21]  Alexander Aiken,et al.  Soft typing with conditional types , 1994, POPL '94.

[22]  Matthias Felleisen,et al.  Modular and Polymorphic Set-Based Analysis: Theory and Practice , 1996 .

[23]  Matthias Felleisen,et al.  Catching bugs in the web of program invariants , 1996, PLDI '96.

[24]  John C. Reynolds,et al.  Automatic computation of data set definitions , 1968, IFIP Congress.

[25]  Manuel Fähndrich,et al.  Making Set-Constraint Based Program Analyses Scale , 1996 .

[26]  Rajiv Gupta,et al.  Reducing the Cost of Data Flow Analysis By Congruence Partitioning , 1994, CC.

[27]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[28]  Patrick Cousot,et al.  Formal language, grammar and set-constraint-based program analysis by abstract interpretation , 1995, FPCA '95.

[29]  Neil D. Jones,et al.  A flexible approach to interprocedural data flow analysis and programs with recursive data structures , 1982, POPL '82.