An Abstract Interpretation Framework for (almost) Full Prolog

A novel abstract interpretation framework is introduced that captures Prolog depth-first strategy and the cut operation. The framework is based on a new conceptual idea, the notion of substitution sequences, and the traditional fixpoint approach to abstract interpretation. It broadens the class of analyses that are amenable in practice to abstract interpretation and refines the precision of existing analyses. Its practicability is demonstrated in a companion paper. This paper focuses on theoretical foundations.

[1]  Neil D. Jones,et al.  Stepwise Development of Operational and Denotational Semantics for Prolog , 1984, International Conference on Spoken Language Processing.

[2]  Giorgio Levi,et al.  Declarative Modeling of the Operational Behavior of Logic Languages , 1989, Theor. Comput. Sci..

[3]  Pascal Van Hentenryck,et al.  Cardinality Analysis of Prolog , 1994, ILPS.

[4]  Pascal Van Hentenryck,et al.  Type analysis of Prolog using type graphs , 1994, PLDI '94.

[5]  Andrew Taylor,et al.  LIPS on a MIPS: Results from a Prolog Compiler for a RISC , 1990, ICLP.

[6]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[7]  Kim Marriott,et al.  Semantics-Based Dataflow Analysis of Logic Programs , 1989, IFIP Congress.

[8]  Manuel V. Hermenegildo,et al.  Compile-Time Derivation of Variable Dependency Using Abstract Interpretation , 1992, J. Log. Program..

[9]  Roberto Barbuti,et al.  Modelling Prolog control , 1992, POPL '92.

[10]  Dan Sahlin Determinacy Analysis for Full Prolog , 1991, PEPM.

[11]  Gilberto Filé,et al.  Static Analysis of Prolog with Cut , 1993, LPAR.

[12]  Giorgio Levi,et al.  A Synchronization Logic: Axiomatics and Formal Semantics of Generalized Horn Clauses , 1984, Inf. Control..

[13]  Giorgio Levi,et al.  Chemical Logic Programming? , 1993, GULP.

[14]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[15]  Frank S. de Boer,et al.  Semantic Models for Concurrent Logic Languages , 1991, Theor. Comput. Sci..

[16]  Laura Ricci,et al.  Detecting Determinate Computations by Bottom-up Abstract Interpretation , 1992, ESOP.

[17]  Akinori Yonezawa,et al.  Asynchronous Communication Model Based on Linear Logic , 1992, Parallel Symbolic Computing.

[18]  Marianne Baudinet Proving Termination Properties of Prolog Programs: A Semantic Approach , 1988, LICS.

[19]  C. R. Ramakrishnan,et al.  Extracting Determinacy in Logic Programs , 1993, ICLP.

[20]  Dale Miller,et al.  Logic Programming in a Fragment of Intuitionistic Linear Logic , 1994, Inf. Comput..

[21]  Saumya K. Debray,et al.  Denotational and Operational Semantics for Prolog , 1988, J. Log. Program..

[22]  Luís Monteiro An Extension to Horn Clause Logic Allowing the Definition of Concurrent Processes , 1981, ICFPC.

[23]  Pascal Van Hentenryck,et al.  A Generic Abstract Interpretation Algorithm and its Complexity Analysis , 1990, ICLP.

[24]  Gerda Janssens,et al.  Deriving Descriptions of Possible Values of Program Variables by Means of Abstract Interpretation , 1990, J. Log. Program..

[25]  Erik P. de Vink,et al.  Continuation Semantics for PROLOG with Cut , 1989, TAPSOFT, Vol.1.

[26]  Maurice Bruynooghe,et al.  A Practical Framework for the Abstract Interpretation of Logic Programs , 1991, J. Log. Program..

[27]  Pascal Van Hentenryck,et al.  Experimental evaluation of a generic abstract interpretation algorithm for PROLOG , 1994, TOPL.

[28]  Giorgio Levi,et al.  Generalized AND/OR Graphs , 1976, Artif. Intell..

[29]  Gilberto Filé,et al.  Computations, abstractions and constraints in logic programs , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[30]  Peter D. Mosses,et al.  Denotational semantics , 1995, LICS 1995.

[31]  Jean-Marc Andreoli,et al.  Abstract Interpretation of Linear Logic Programming , 1993, ILPS.