Optimal Domains for Disjunctive Abstract Intepretation

Abstract In the context of standard abstract interpretation theory, we define the inverse operation to the disjunctive completion of abstract domains, introducing the notion of least disjunctive basis of an abstract domain D. This is the most abstract domain inducing the same disjunctive completion as D. We show that the least disjunctive basis exists in most cases, and study its properties, also in relation with reduced product and complementation of abstract domains. The resulting framework is powerful enough to be applied to arbitrary abstract domains for analysis, providing advanced algebraic methodologies for domain manipulation and optimization. These notions are applied to abstract domains for static analysis of functional and logic programming languages.

[1]  Roberto Giacobazzi,et al.  Complementing Logic Program Semantics , 1996, ALP.

[2]  Kim Marriott,et al.  Two Classes of Boolean Functions for Dependency Analysis , 1998, Sci. Comput. Program..

[3]  K. Hofmann,et al.  A Compendium of Continuous Lattices , 1980 .

[4]  S. L. Édel'man Closure operators on a lattice , 1980 .

[5]  Alan Mycroft,et al.  Abstract interpretation and optimising transformations for applicative programs , 1982 .

[6]  Patrick Cousot,et al.  Abstract Interpretation and Application to Logic Programs , 1992, J. Log. Program..

[7]  Roberto Giacobazzi,et al.  Weak relative pseudo-complements of closure operators , 1996 .

[8]  Philip W. Dart On Derived Dependencies and Connected Databases , 1991, J. Log. Program..

[9]  Gilberto Filé,et al.  Complementation of Abstract Domains made Easy , 1996, JICSLP.

[10]  Philip Wadler,et al.  Projections for strictness analysis , 1987, FPCA.

[11]  Radhia Cousot,et al.  Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages) , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[12]  Thomas P. Jensen,et al.  Disjunctive strictness analysis , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[13]  Kim Marriott,et al.  Precise and efficient groundness analysis for logic programs , 1993, LOPL.

[14]  P. Cousot Thesis: These d'Etat es sciences mathematiques: Methodes iteratives de construction et d'approximation de points fixes d'operateurs monotones sur un treillis, analyse semantique de programmes (in French) , 1978 .

[15]  Nielson Flemming,et al.  Abstract interpretation using domain theory , 1984 .

[16]  Kwangkeun Yi,et al.  Automatic generation and management of interprocedural program analyses , 1993, POPL '93.

[17]  Agostino Cortesi,et al.  Optimal Groundness Analysis Using Propositional Logic , 1996, J. Log. Program..

[18]  Flemming Nielson,et al.  Expected forms of data flow analyses , 1985, Programs as Data Objects.

[19]  Patrick Cousot,et al.  Inductive definitions, semantics and abstract interpretations , 1992, POPL '92.

[20]  Patrick Cousot,et al.  Types as abstract interpretations , 1997, POPL '97.

[21]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[22]  Roberto Giacobazzi,et al.  Refining and Compressing Abstract Domains , 1997, ICALP.

[23]  Patrick Cousot,et al.  Méthodes itératives de construction et d'approximation de points fixes d'opérateurs monotones sur un treillis, analyse sémantique des programmes , 1978 .

[24]  Roberto Giacobazzi,et al.  Functional Dependencies and Moore-Set Completions of Abstract Interpretations and Semantics , 1995, ILPS.

[25]  Flemming Nielson,et al.  Abstract interpretation using domain theory , 1984 .

[26]  Kim Marriott,et al.  Boolean Functions for Dependency Analysis: Algebraic Properties and Efficient Representation , 1994, SAS.

[27]  Gilberto Filé,et al.  A unifying view of abstract domain design , 1996, CSUR.

[28]  Neil D. Jones,et al.  Complexity of flow analysis, inductive assertion synthesis and a language due to Dijkstra , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).

[29]  Sebastian Hunt PERs Generalise Projections for Strictness Analysis (Extended Abstract) , 1990, Functional Programming.

[30]  Agostino Cortesi,et al.  Complementation in abstract interpretation , 1997, TOPL.

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

[32]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.

[33]  Flemming Nielson,et al.  Strong Abstract Interpretation Using Power Domains (Extended Abstract) , 1983, ICALP.

[34]  Patrick Cousot Program analysis: the abstract interpretation perspective , 1997, SIGP.

[35]  Roberto Barbuti,et al.  A general framework for semantics-based bottom-up abstract interpretation of logic programs , 1993, TOPL.

[36]  Neil D. Jones,et al.  Program Flow Analysis: Theory and Application , 1981 .

[37]  Gilberto Filé,et al.  Improving Abstract Interpretations by Systematic Lifting to the Powerset , 1994, ILPS.

[38]  Gilberto Filé,et al.  The Powerset Operator on Abstract Interpretations , 1999, Theor. Comput. Sci..

[39]  Morgan Ward,et al.  The Closure Operators of a Lattice , 1942 .

[40]  Patrick Cousot,et al.  Abstract interpretation , 1996, CSUR.