Foundations of deductive databases and logic programming
Functional computations in logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Andorra I: a parallel Prolog system that transparently exploits both And-and or-parallelism
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
A practical algorithm for exact array dependence analysis
Communications of the ACM
Deriving descriptions of possible values of program variables by means of abstract interpretation
Journal of Logic Programming
Detecting determinate computations by bottom-up abstract interpretation
ESOP'92 Symposium proceedings on 4th European symposium on programming
Cost analysis of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Extracting determinacy in logic programs
ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
Fast and precise regular approximations of logic programs
Proceedings of the eleventh international conference on Logic programming
Cardinality analysis of Prolog
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
A methodology for granularity-based control of parallelism in logic programs
Journal of Symbolic Computation - Special issue on parallel symbolic computation
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
CP '99 Proceedings of the 5th International Conference on Principles and Practice of Constraint Programming
SFCS '79 Proceedings of the 20th Annual Symposium on Foundations of Computer Science
Program development using abstract interpretation (and the ciao system preprocessor)
SAS'03 Proceedings of the 10th international conference on Static analysis
Relating data-parallelism and (and-) parallelism in logic programs
Computer Languages
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
Concurrency, Graphs and Models
Annotation Algorithms for Unrestricted Independent And-Parallelism in Logic Programs
Logic-Based Program Synthesis and Transformation
Non-discriminating Arguments and Their Uses
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
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
Hi-index | 0.00 |
We propose an analysis for detecting procedures and goals that are deterministic (i.e. that produce at most one solution), or predicates whose clause tests are mutually exclusive (which implies that at most one of their clauses will succeed) even if they are not deterministic (because they call other predicates that can produce more than one solution). Applications of such determinacy information include detecting programming errors, performing certain high-level program transformations for improving search efficiency, optimizing low level code generation and parallel execution, and estimating tighter upper bounds on the computational costs of goals and data sizes, which can be used for program debugging, resource consumption and granularity control, etc. We have implemented the analysis and integrated it in the CiaoPP system, which also infers automatically the mode and type information that our analysis takes as input. Experiments performed on this implementation show that the analysis is fairly accurate and efficient.