Evaluation of the Implementation of an Abstract Interpretation Algorithm using Tabled CLP

  title={Evaluation of the Implementation of an Abstract Interpretation Algorithm using Tabled CLP},
  author={Joaqu{\'i}n Arias and Manuel Carro},
  journal={Theory and Practice of Logic Programming},
  pages={1107 - 1123}
Abstract CiaoPP is an analyzer and optimizer for logic programs, part of the Ciao Prolog system. It includes PLAI, a fixpoint algorithm for the abstract interpretation of logic programs which we adapt to use tabled constraint logic programming. In this adaptation, the tabling engine drives the fixpoint computation, while the constraint solver handles the LUB of the abstract substitutions of different clauses. That simplifies the code and improves performance, since termination, dependencies… Expand
A Theoretical Study of (Full) Tabled Constraint Logic Programming
This paper presents a top-down semantics for TCLP and shows that it is equivalent to a fixpoint semantics and studies how the constraints that a program generates can effectively impact termination, even for constraint classes that are not constraint compact. Expand


Description, Implementation, and Evaluation of a Generic Design for Tabled CLP
The role of projection and entailment in the termination, soundness, and completeness of TCLP systems are studied and the design and an experimental evaluation of Mod T CLP are presented, a framework that eases the integration of additional constraint solvers. Expand
Compile-Time Derivation of Variable Dependency Using Abstract Interpretation
A new algorithm for doing abstract interpretation in logic programs is described which concentrates on inferring the dependencies of the terms bound to program variables with increased precision and at all points in the execution of the program, rather than just at a procedure level. Expand
TCHR: a framework for tabled CLP
TCHR, a high-level framework for tabled Constraint Logic Programming, is presented and a novel, generalized technique for compacting answer sets is proposed, which is easily instantiated with new application-specific constraint domains. Expand
Integrated program debugging, verification, and optimization using abstract interpretation (and the Ciao system preprocessor)
A novel program development framework which uses modular, incremental abstract interpretation as a fundamental tool to obtain information about the program and can reason with much richer information than, for example, traditional types. Expand
Memoing for logic programs
  • D. Warren
  • Mathematics, Computer Science
  • CACM
  • 1992
Prolog, with its depth-first backtracking search through the tree of SLD refutations, is a procedural implementation of the declarative Horn clause language, which can benefit from the kinds of optimization techniques developed for traditional procedural languages. Expand
Abstract Interpretation based on OLDT Resolution
A unified framework for analyzing Prolog programs based on OLDT resolution, a top-down Prolog interpreter with memo-ization, and the behavior of the abstract interpreter is very close to the way human programmers usually analyze the property in their minds. Expand
Combined Determination of Sharing and Freeness of Program Variables through Abstract Interpretation
An abstract domain is proposed which accurately and concisely represents combined freeness and sharing information for program variables and all other domain-specific functions for an abstract interpreter working on this domain are presented. Expand
Deriving a fixpoint computation algorithm for top-down abstract interpretation of logic programs
Bruynooghe described a framework for the top-down abstract interpretation of logic programs. In this framework, abstract interpretation is carried out by constructing an abstract and-or tree in aExpand
An overview of Ciao and its design philosophy
An overall description of the Ciao multiparadigm programming system emphasizing some of the novel aspects and motivations behind its design and implementation is provided, and an informal overview of the language and program development environment is provided. Expand
A Practical Framework for the Abstract Interpretation of Logic Programs
This work develops a general framework which is suited to develop complex applications and to prove their correctness, and presents a generic abstract interpretation procedure for the construction of such an abstract and-or graph. Expand