An application of abstract interpretation of logic programs: occur check reduction
Proc. of the European symposium on programming on ESOP 86
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Algebraic properties of idempotent substitutions
Proceedings of the seventeenth international colloquium on Automata, languages and programming
A practical framework for the abstract interpretation of logic programs
Journal of Logic Programming
Handbook of theoretical computer science (vol. B)
Abstract interpretation and application to logic programs
Journal of Logic Programming
Static analysis of logic programs for independent and parallelism
Journal of Logic Programming
Compile-time derivation of variable dependency using abstract interpretation
Journal of Logic Programming
Experimental evaluation of a generic abstract interpretation algorithm for PROLOG
ACM Transactions on Programming Languages and Systems (TOPLAS)
Denotational abstract interpretation of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
The role of standardising apart in logic programming
Theoretical Computer Science
The Semantics of Predicate Logic as a Programming Language
Journal of the ACM (JACM)
Making abstract interpretations complete
Journal of the ACM (JACM)
Set-sharing is redundant for pair-sharing
Theoretical Computer Science
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Synergistic Analysis for Sharing and Groundness with Traces Linearity
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
Pair-independence and freeness analysis through linear refinement
Information and Computation
Theory and Practice of Logic Programming
Three optimisations for sharing
Theory and Practice of Logic Programming
Enhanced sharing analysis techniques: a comprehensive evaluation
Theory and Practice of Logic Programming
A general framework for variable aliasing: towards optimal operators for sharing properties
LOPSTR'02 Proceedings of the 12th international conference on Logic based program synthesis and transformation
Random: r-based analyzer for numerical domains
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Hi-index | 0.00 |
We face the problems of correctness, optimality, and precision for the static analysis of logic programs, using the theory of abstract interpretation. We propose a framework with a denotational, goal-dependent semantics equipped with two unification operators for forward unification (calling a procedure) and backward unification (returning from a procedure). The latter is implemented through a matching operation. Our proposal clarifies and unifies many different frameworks and ideas on static analysis of logic programming in a single, formal setting. On the abstract side, we focus on the domain sharing by Jacobs and Langen (The Journal of Logic Programming, 1992, vol. 13, nos. 2–3, pp. 291–314) and provide the best correct approximation of all the primitive semantic operators, namely, projection, renaming, and forward and backward unifications. We show that the abstract unification operators are strictly more precise than those in the literature defined over the same abstract domain. In some cases, our operators are more precise than those developed for more complex domains involving linearity and freeness.