Magic sets and other strange ways to implement logic programs (extended abstract)
PODS '86 Proceedings of the fifth ACM SIGACT-SIGMOD symposium on Principles of database systems
Decidable optimization problems for database logic programs
STOC '88 Proceedings of the twentieth annual ACM symposium on Theory of computing
Database programming in Machiavelli—a polymorphic language with static type inference
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Invited talk: automata theory for database theoreticians
PODS '89 Proceedings of the eighth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
A finite presentation theorem for approximating logic programs
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Containment and minimization of positive conjunctive queries in OODB's
PODS '92 Proceedings of the eleventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Finding nonrecursive envelopes for Datalog predicate
PODS '93 Proceedings of the twelfth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Equivalence of datalog queries is undecidable
Journal of Logic Programming
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
Denotational abstract interpretation of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
PODS '94 Proceedings of the thirteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Deciding containment for queries with complex objects (extended abstract)
PODS '97 Proceedings of the sixteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Types as abstract interpretations
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Practical virtual method call resolution for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A logical foundation for deductive object-oriented databases
ACM Transactions on Database Systems (TODS)
Types and programming languages
Types and programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Foundations of Databases: The Logical Level
Foundations of Databases: The Logical Level
Main Memory Orientated Optimization of OO Queries Using Typed Datalog with Foreign Predicates
IEEE Transactions on Knowledge and Data Engineering
The Implementation of a Deductive Query Language over an OODB
DOOD '95 Proceedings of the Fourth International Conference on Deductive and Object-Oriented Databases
Decidable Containment of Recursive Queries
ICDT '03 Proceedings of the 9th International Conference on Database Theory
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Selected Papers from the Internaltional Seminar on Partial Evaluation
IQL(2): A Model with Ubiquitous Objects
DBLP-5 Proceedings of the Fifth International Workshop on Database Programming Languages
Galois connections and fixed point calculus
Algebraic and coalgebraic methods in the mathematics of program construction
Complexity and Expressive Power of Logic Programming
CCC '97 Proceedings of the 12th Annual IEEE Conference on Computational Complexity
On the decidability of containment of recursive datalog queries - preliminary report
PODS '04 Proceedings of the twenty-third ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Searching for type-error messages
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Keynote Address: .QL for Source Code Analysis
SCAM '07 Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation
Techniques for scaling up analyses based on pre-interpretations
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Descriptive typing rules for xcerpt
PPSWR'05 Proceedings of the Third international conference on Principles and Practice of Semantic Web Reasoning
Inference of well-typings for logic programs with application to termination analysis
SAS'05 Proceedings of the 12th international conference on Static Analysis
Adding magic to an optimising datalog compiler
Proceedings of the 2008 ACM SIGMOD international conference on Management of data
Proceedings of the 10th ACM workshop on Web information and data management
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Proceedings of the VLDB Endowment
Type inference for datalog with complex type hierarchies
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantic query optimization in the presence of types
Proceedings of the twenty-ninth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Precise complexity analysis for efficient datalog queries
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Datalog and emerging applications: an interactive tutorial
Proceedings of the 2011 ACM SIGMOD International Conference on Management of data
Semantic query optimization in the presence of types
Journal of Computer and System Sciences
Hi-index | 0.00 |
Certain variants of object-oriented Datalog can be compiled to Datalog with negation. We seek to apply optimisations akin to virtual method resolution (a well-known technique in compiling Java and other OO languages) to improve efficiency of the resulting Datalog programs. The effectiveness of such optimisations strongly depends on the precision of the underlying type inference algorithm. Previous work on type inference for Datalog has focussed on Cartesian abstractions, where the type of each field is computed separately. Such Cartesian type inference is inherently imprecise in the presence of field equalities. We propose a type system where equalities are tracked, and present a type inference algorithm. The algorithm is proved sound. We also prove that it is optimal for Datalog without negation, in the sense that the inferred type is as tight as possible. Extensive experiments with our type-based optimisations, in a commercial implementation of object-oriented Datalog, confirm the benefits of this non-Cartesian type inference algorithm.