Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Abstract interpretation and application to logic programs
Journal of Logic Programming
Static analysis of logic programs for independent and parallelism
Journal of Logic Programming
Global flow analysis as a practical compilation tool
Journal of Logic Programming
Freeness analysis for logic programs—and correctness?
ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
Precise and efficient groundness analysis for logic programs
ACM Letters on Programming Languages and Systems (LOPLAS)
Proceedings of the eleventh international conference on Logic programming
Observable behaviors and equivalences of logic programs
Information and Computation
A unifying view of abstract domain design
ACM Computing Surveys (CSUR)
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
The reduced relative power operation on abstract domains
Theoretical Computer Science
Non pair-sharing and freeness analysis through linear refinement
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
An Efficient Unification Algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
Set-sharing is redundant for pair-sharing
Theoretical Computer Science
Logical optimality of groundness analysis
Theoretical Computer Science
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
An Application of Abstract Interpretation of Logic Programs: Occur Check Reduction
ESOP '86 Proceedings of the European Symposium on Programming
A Synergistic Analysis for Sharing and Groundness with Traces Linearity
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
Refining and Compressing Abstract Domains
ICALP '97 Proceedings of the 24th International Colloquium on Automata, Languages and Programming
An Experiment in Domain Refinement: Type Domains and Type Representations for Logic Programs
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
Freeness, Sharing, Linearity and Correctness - All at Once
WSA '93 Proceedings of the Third International Workshop on Static Analysis
A Freeness and Sharing Analysis of Logic Programs Based on a Pre-interpretation
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Fixpoint Semantics for Partial Computed Answer Substitutions and Call Patterns
Proceedings of the Third International Conference on Algebraic and Logic Programming
Advanced techniques for approximating variable aliasing in logic programs
Advanced techniques for approximating variable aliasing in logic programs
Optimality in goal-dependent analysis of sharing
Theory and Practice of Logic Programming
Static analysis, abstract interpretation and verification in (constraint logic) programming
A 25-year perspective on logic programming
Hi-index | 0.00 |
Linear refinement is a technique for systematically constructing more precise abstract domains for program analysis starting from the basic domain which represents just the property of interest. We use here linear refinement to construct a domain for pair-independence and freeness analysis of logic programs which is strictly more precise than Jacobs and Langen's domain for sharing analysis endowed with freeness information. Moreover, it can be used for abstract compilation, while Jacobs and Langen's domain can only be used for abstract interpretation. We provide an approximate representation of our domain and algorithms for the abstract operations. We describe an implementation of an analyser which uses abstract compilation over our domain and its evaluation over a set of benchmarks. This shows that its precision is comparable to that of a traditional sharing and freeness analysis performed through abstract interpretation. To the best of our knowledge, this is the first implementation of a sharing analysis based on abstract compilation, as well as the first implementation of a static analysis based on a new domain developed through linear refinement.