Projections for strictness analysis
Proc. of a conference on Functional programming languages and computer architecture
Inductive assertion method for logic programs
Theoretical Computer Science - International Joint Conference on Theory and Practice of Software Development, P
Generating function versions with rational strictness patterns
Science of Computer Programming
Inverse image analysis generalises strictness analysis
Information and Computation
Janus: a step towards distributed constraint programming
Proceedings of the 1990 North American conference on Logic programming
Abstract interpretation and application to logic programs
Journal of Logic Programming
QD-Janus: a sequential implementation of Janus in Prolog
Software—Practice & Experience
Precise and efficient groundness analysis for logic programs
ACM Letters on Programming Languages and Systems (LOPLAS)
Reversing abstract interpretations
ESOP'92 Selected papers of the symposium on Fourth European symposium on programming
Improving abstract interpretations by systematic lifting to the powerset
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
A logical model for relational abstract domains
ACM Transactions on Programming Languages and Systems (TOPLAS)
Two classes of Boolean functions for dependency analysis
Science of Computer Programming
Type dependencies for logic programs using ACI-unification
Theoretical Computer Science
Logical optimality of groundness analysis
Theoretical Computer Science
A Generic Processor for Program Validation and Debugging
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
An Assertion Language for Constraint Logic Programs
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
Advanced techniques for approximating variable aliasing in logic programs
Advanced techniques for approximating variable aliasing in logic programs
On proving left termination of constraint logic programs
ACM Transactions on Computational Logic (TOCL)
Backward Type Inference Generalises Type Checking
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
Path Dependent Analysis of Logic Programs
Higher-Order and Symbolic Computation
Making abstract domains condensing
ACM Transactions on Computational Logic (TOCL)
Inverting abstract unification for set-sharing
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Goal-directed weakening of abstract interpretation results
ACM Transactions on Programming Languages and Systems (TOPLAS)
Inferring non-suspension conditions for logic programs with dynamic scheduling
ACM Transactions on Computational Logic (TOCL)
Collecting potential optimisations
LOPSTR'02 Proceedings of the 12th international conference on Logic based program synthesis and transformation
Goal-independent suspension analysis for logic programs with dynamic scheduling
ESOP'03 Proceedings of the 12th European conference on Programming
Automatic binding-related error diagnosis in logic programs
ICLP'07 Proceedings of the 23rd international conference on Logic programming
Non-leftmost unfolding in partial evaluation of logic programs with impure predicates
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Detecting determinacy in prolog programs
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Determinacy inference for logic programs
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Proofs you can believe in: proving equivalences between Prolog semantics in Coq
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Hi-index | 0.01 |
One recurring problem in program development is that of understanding how to re-use code developed by a third party. In the context of (constraint) logic programming, part of this problem reduces to figuring out how to query a program. If the logic program does not come with any documentation, then the programmer is forced to either experiment with queries in an ad hoc fashion or trace the control-flow of the program (backward) to infer the modes in which a predicate must be called so as to avoid an instantiation error. This paper presents an abstract interpretation scheme that automates the latter technique. The analysis presented in this paper can infer moding properties which if satisfied by the initial query, come with the guarantee that the program and query can never generate any moding or instantiation errors. Other applications of the analysis are discussed. The paper explains how abstract domains with certain computational properties (they condense) can be used to trace control-flow backward (right-to-left) to infer useful properties of initial queries. A correctness argument is presented and an implementation is reported.