Communications of the ACM
On derived dependencies and connected databases
Journal of Logic Programming
The logic of typed feature structures
The logic of typed feature structures
Symbolic Boolean manipulation with ordered binary-decision diagrams
ACM Computing Surveys (CSUR)
Abstract interpretation and application to logic programs
Journal of Logic Programming
Deriving descriptions of possible values of program variables by means of abstract interpretation
Journal of Logic Programming
Static analysis of logic programs for independent and parallelism
Journal of Logic Programming
Cost analysis of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Precise and efficient groundness analysis for logic programs
ACM Letters on Programming Languages and Systems (LOPLAS)
Generalizations of unification
Journal of Symbolic Computation
Formal language, grammar and set-constraint-based program analysis by abstract interpretation
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
The quotient of an abstract interpretation
Theoretical Computer Science
Two classes of Boolean functions for dependency analysis
Science of Computer Programming
Sharing and groundness dependencies in logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program analysis, debugging, and optimization using the ciao system preprocessor
Proceedings of the 1999 international conference on Logic programming
Science of Computer Programming
Enhanced sharing analysis techniques: a comprehensive evaluation
Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Implementation of PROLOG
Set-sharing is redundant for pair-sharing
Theoretical Computer Science
An Application of Abstract Interpretation of Logic Programs: Occur Check Reduction
ESOP '86 Proceedings of the European Symposium on Programming
Semantic Analysis of Interval Congruences
Proceedings of the International Conference on Formal Methods in Programming and Their Applications
Specification-Based Automatic Verification of Prolog Programs
LOPSTR '96 Proceedings of the 6th International Workshop on Logic Programming Synthesis and Transformation
A Comparison of Three Occur-Check Analysers
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Abstract Domains for Sharing Analysis by Optimal Semantics
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
ALP '97-HOA '97 Proceedings of the 6th International Joint Conference on Algebraic and Logic Programming
TermiLog: A System for Checking Termination of Queries to Logic Programs
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Total Correctness of Logic Programs: A Formal Approach
ELP '96 Proceedings of the 5th International Workshop on Extensions of Logic Programming
ProFIT: prolog with features, inheritance and templates
EACL '95 Proceedings of the seventh conference on European chapter of the Association for Computational Linguistics
Theory and Practice of Logic Programming
Soundness, idempotence and commutativity of set-sharing
Theory and Practice of Logic Programming
Decomposing non-redundant sharing by complementation
Theory and Practice of Logic Programming
Enhanced sharing analysis techniques: a comprehensive evaluation
Theory and Practice of Logic Programming
cTI: a constraint-based termination inference tool for ISO-Prolog
Theory and Practice of Logic Programming
Efficient structural information analysis for real CLP languages
LPAR'00 Proceedings of the 7th international conference on Logic for programming and automated reasoning
Boolean Functions for Finite-Tree Dependencies
LPAR '01 Proceedings of the Artificial Intelligence on Logic for Programming
Finite-Tree Analysis for Constraint Logic-Based Languages
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Hi-index | 0.00 |
Logic languages based on the theory of rational, possibly infinite, trees have much appeal in that rational trees allow for faster unification (due to the safe omission of the occurs-check) and increased expressivity (cyclic terms can provide very efficient representations of grammars and other useful objects). Unfortunately, the use of infinite rational trees has problems. For instance, many of the built-in and library predicates are ill-defined for such trees and need to be supplemented by run-time checks whose cost may be significant. Moreover, some widely used program analysis and manipulation techniques are correct only for those parts of programs working over finite trees. It is thus important to obtain, automatically, a knowledge of the program variables (the finite variables) that, at the program points of interest, will always be bound to finite terms. For these reasons, we propose here a new data-flow analysis, based on abstract interpretation, that captures such information. We present a parametric domain where a simple component for recording finite variables is coupled, in the style of the open product construction of Cortesi et al., with a generic domain (the parameter of the construction) providing sharing information. The sharing domain is abstractly specified so as to guarantee the correctness of the combined domain and the generality of the approach. This finite-tree analysis domain is further enhanced by coupling it with a domain of Boolean functions, called finite-tree dependencies, that precisely captures how the finiteness of some variables influences the finiteness of other variables. We also summarize our experimental results showing how finite-tree analysis, enhanced with finite-tree dependencies, is a practical means of obtaining precise finiteness information.