Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Principles of database and knowledge-base systems, Vol. I
Principles of database and knowledge-base systems, Vol. I
Table compression for tree automata
ACM Transactions on Programming Languages and Systems (TOPLAS)
Analysing logic programs using “prop”-ositional logic programs and a magic wand
ILPS '93 Proceedings of the 1993 international symposium on Logic programming
Practical program analysis using general purpose logic programming systems—a case study
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Bottom-Up Evaluation of Logic Programs Using Binary Decision Diagrams
ICDE '95 Proceedings of the Eleventh International Conference on Data Engineering
Positive Boolean Functions as Multiheaded Clauses
Proceedings of the 17th International Conference on Logic Programming
A Method for Automatic Cryptographic Protocol Verification
IPDPS '00 Proceedings of the 15 IPDPS 2000 Workshops on Parallel and Distributed Processing
Reachability Analysis of Term Rewriting Systems with Timbuk
LPAR '01 Proceedings of the Artificial Intelligence on Logic for Programming
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Set-Based Analysis of Reactive Infinite-State Systems
TACAS '98 Proceedings of the 4th International Conference on Tools and Algorithms for Construction and Analysis of Systems
PLILP '93 Proceedings of the 5th International Symposium on Programming Language Implementation and Logic Programming
Abstracting s-semantincs Using A Model-Theoretic Approach
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
A Systematic Construction of Abstract Domains
SAS '94 Proceedings of the First International Static Analysis Symposium on Static Analysis
Abstracting cryptographic protocols with tree automata
Science of Computer Programming - Special issue on static analysis (SAS'99)
Cloning-based context-sensitive pointer alias analysis using binary decision diagrams
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Fully automatic binding-time analysis for prolog
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Type inference for datalog and its application to query optimisation
Proceedings of the twenty-seventh ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Approximating Term Rewriting Systems: A Horn Clause Specification and Its Implementation
LPAR '08 Proceedings of the 15th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
Analysis of Linear Hybrid Systems in CLP
Logic-Based Program Synthesis and Transformation
Type inference for datalog with complex type hierarchies
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Polytool: Polynomial interpretations as a basis for termination analysis of logic programs
Theory and Practice of Logic Programming
Converting one type-based abstract domain to another
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Widening ROBDDs with prime implicants
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Analysis of logic programs using regular tree languages
LOPSTR'11 Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation
Hi-index | 0.00 |
Any finite tree automaton (or regular type) can be used to construct an abstract interpretation of a logic program, by first determinising and completing the automaton to get a pre-interpretation of the language of the program. This has been shown to be a flexible and practical approach to building a variety of analyses, both generic (such as mode analysis) and program-specific (with respect to a type describing some particular property of interest). Previous work demonstrated the approach using pre-interpretations over small domains. In this paper we present techniques that allow the method to be applied to more complex pre-interpretations and larger programs. There are two main techniques presented: the first is a novel algorithm for determinising finite tree automata, yielding a compact “product” form of the transitions of the result automaton, that is often orders of magnitude smaller than an explicit representation of the automaton. Secondly, it is shown how this form (which is a representation of a pre-interpretation) can then be input directly to a BDD-based analyser of Datalog programs. We demonstrate through experiments that much more complex analyses become feasible.