Introduction to Set Constraint-Based Program Analysis

Abstract This paper given an introduction to using set constraints to specify program analyses. Several standard analysis problems are formulated using set constraints, which serves both to illustrate the style of using constraints to specify program analysis problems and the range of application of set constraints.

[1]  F. Cardone,et al.  Two extensions of Curry's type inference system , 1990 .

[2]  Didier Rémy,et al.  Type checking records and variants in a natural extension of ML , 1989, POPL '89.

[3]  Alan Mycroft,et al.  The Theory and Practice of Transforming Call-by-need into Call-by-value , 1980, Symposium on Programming.

[4]  Sophie Tison,et al.  Solving systems of set constraints with negated subset relationships , 1993, Proceedings of 1993 IEEE 34th Annual Foundations of Computer Science.

[5]  Mads Tofte,et al.  Implementation of the typed call-by-value λ-calculus using a stack of regions , 1994, POPL '94.

[6]  Alexander Aiken,et al.  The Complexity of Set Constraints , 1993, CSL.

[7]  John Cocke,et al.  Register allocation via graph coloring , 1981 .

[8]  Patrick Cousot,et al.  Compositional and Inductive Semantic Definitions in Fixpoint, Equational, Constraint, Closure-condition, Rule-based and Game-Theoretic Form , 1995, CAV.

[9]  Nevin Heintze Set Based Analysis of ML Programs (Extended Abstract) , 1993 .

[10]  P. Hudak,et al.  A Collecting Interpretation of Expressions (Without Powerdomains). , 1988 .

[11]  Peter Sestoft,et al.  Analysis and efficient implementation of functional programs , 1991 .

[12]  John C. Mitchell,et al.  Type inference with simple subtypes , 1991, Journal of Functional Programming.

[13]  Neil D. Jones,et al.  Flow analysis and optimization of LISP-like structures , 1979, POPL.

[14]  Alexander Aiken,et al.  Partial online cycle elimination in inclusion constraint graphs , 1998, PLDI.

[15]  Bjarne Steensgaard,et al.  Points-to analysis in almost linear time , 1996, POPL '96.

[16]  Gordon D. Plotkin,et al.  An ideal model for recursive polymorphic types , 1984, Inf. Control..

[17]  Stephan Merz,et al.  Type checking higher-order polymorphic multi-methods , 1997, POPL '97.

[18]  William Pugh,et al.  The Omega test: A fast and practical integer programming algorithm for dependence analysis , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

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

[20]  Paul Hudak A semantic model of reference counting and its abstraction (detailed summary) , 1986, LFP '86.

[21]  Keshav Pingali,et al.  Dependence flow graphs: an algebraic approach to program dependencies , 1991, POPL '91.

[22]  Alexander Aiken,et al.  Type inclusion constraints and type inference , 1993, FPCA '93.

[23]  Jens Palsberg,et al.  Object-oriented type inference , 1991, OOPSLA '91.

[24]  Phil Wadfer,et al.  Strictness analysis on non-fiat domains (by abstract interpretation over finite domains) , 1985 .

[25]  Alexander Aiken,et al.  Decidability of Systems of Set Constraints with Negative Constraints , 1994, Inf. Comput..

[26]  Alexander Aiken,et al.  Program Analysis Using Mixed Term and Set Constraints , 1997, SAS.

[27]  Paola Giannini,et al.  A Complete Type Inference Algorithm for Simple Intersection Types , 1992, CAAP.

[28]  Mitchell Wand,et al.  Type inference for record concatenation and multiple inheritance , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[29]  Alexander Aiken,et al.  Solving systems of set constraints , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[30]  Matthias Felleisen,et al.  Componential set-based analysis , 1997, TOPL.

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

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

[33]  Alexander Aiken,et al.  Set Constraints: Results, Applications, and Future Directions , 1994, PPCP.

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

[35]  Fritz Henglein,et al.  Global tagging optimization by type inference , 1992, LFP '92.

[36]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[37]  Andreas Podelski,et al.  Set Constraints: A Pearl in Research on Constraints , 1997, CP.

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

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

[40]  Philip Wadler,et al.  A practical subtyping system for Erlang , 1997, ICFP '97.

[41]  Sophie Tison,et al.  Solving Systems of Set Constraints using Tree Automata , 1993, STACS.

[42]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[43]  Patrick Cousot,et al.  Static Determination of Dynamic Properties of Recursive Procedures , 1977, Formal Description of Programming Concepts.

[44]  Patrick Cousot,et al.  Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation , 1992, PLILP.

[45]  William Pugh,et al.  Going Beyond Integer Programming with the Omega Test to Eliminate False Data Dependences , 1995, IEEE Trans. Parallel Distributed Syst..

[46]  Fritz Henglein,et al.  Type inference and semi-unification , 1988, LISP and Functional Programming.

[47]  Witold Charatonik,et al.  Set constraints with projections are in NEXPTIME , 1994, Proceedings 35th Annual Symposium on Foundations of Computer Science.

[48]  Harald Ganzinger,et al.  Set constraints are the monadic class , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.