Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
OLD resolution with tabulation
Proceedings on Third international conference on logic programming
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
The Alexander method-a technique for the processing of recursive axioms in deductive databases
New Generation Computing
PODS '87 Proceedings of the sixth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Static inference of modes and data dependencies in logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Improving the execution speed of compiled prolog with modes, clause selection, and determinism
II and Colloquium on Functional and Logic Programming and Specifications (CFLP) on TAPSOFT '87: Advanced Seminar on Foundations of Innovative Software Development
A practical framework for the abstract interpretation of logic programs
Journal of Logic Programming
Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
Symbolic Boolean manipulation with ordered binary-decision diagrams
ACM Computing Surveys (CSUR)
Abstract interpretation and application to logic programs
Journal of Logic Programming
Compile-time derivation of variable dependency using abstract interpretation
Journal of Logic Programming
Query evaluation under the well-founded semantics
PODS '93 Proceedings of the twelfth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Benchmarking implementations of lazy functional languages
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Set based program analysis
Experimental evaluation of a generic abstract interpretation algorithm for PROLOG
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
XSB as an efficient deductive database engine
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Shape analysis as a generalized path problem
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A symbolic constraint solving framework for analysis of logic programs
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Fast strictness analysis based on demand propagation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Solving shape-analysis problems in languages with destructive updating
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
PLILP '93 Proceedings of the 5th International Symposium on Programming Language Implementation and Logic Programming
EQUALS – a fast parallel implementation of a lazy language
Journal of Functional Programming
Memory management for Prolog with tabling
Proceedings of the 1st international symposium on Memory management
An abstract machine for tabled execution of fixed-order stratified logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Graph rewrite systems for program optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Transforming the .NET intermediate language using path logic programming
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Tabling for non-monotonic programming
Annals of Mathematics and Artificial Intelligence
Implementing Groundness Analysis with Definite Boolean Functions
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Proceedings of the 17th International Conference on Logic Programming
LPAR '99 Proceedings of the 6th International Conference on Logic Programming and Automated Reasoning
Imperative Program Transformation by Rewriting
CC '01 Proceedings of the 10th International Conference on Compiler Construction
Quotienting Share for Dependency Analysis
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Meta-circular abstract interpretation in prolog
The essence of computation
Cloning-based context-sensitive pointer alias analysis using binary decision diagrams
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Incremental and demand-driven points-to analysis using logic programming
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Semantics of static pointcuts in aspectJ
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Interactive, scalable, declarative program analysis: from prototype to implementation
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Linear tabling strategies and optimizations
Theory and Practice of Logic Programming
.QL: Object-Oriented Queries Made Easy
Generative and Transformational Techniques in Software Engineering II
Towards a Complete Scheme for Tabled Execution Based on Program Transformation
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Program transformations using temporal logic side conditions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamic reordering of alternatives for definite logic programs
Computer Languages, Systems and Structures
Exception analysis and points-to analysis: better together
Proceedings of the eighteenth international symposium on Software testing and analysis
A Tabling Implementation Based on Variables with Multiple Bindings
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
Strictly declarative specification of sophisticated points-to analyses
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
An improved continuation call-based implementation of tabling
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
Swapping evaluation: A memory-scalable solution for answer-on-demand tabling*
Theory and Practice of Logic Programming
Symbolic support graph: a space efficient data structure for incremental tabled evaluation
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Techniques for scaling up analyses based on pre-interpretations
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Using datalog with binary decision diagrams for program analysis
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Incremental evaluation of tabled prolog: beyond pure logic programs
PADL'06 Proceedings of the 8th international conference on Practical Aspects of Declarative Languages
A local algorithm for incremental evaluation of tabled logic programs
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Xsb: Extending prolog with tabled logic programming
Theory and Practice of Logic Programming - Prolog Systems
CodeQuest: scalable source code queries with datalog
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
FATES'06/RV'06 Proceedings of the First combined international conference on Formal Approaches to Software Testing and Runtime Verification
Automatic incrementalization of prolog based static analyses
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Compiling constraint handling rules for efficient tabled evaluation
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Applying answer set programming to points-to analysis of object-oriented language
ICIC'11 Proceedings of the 7th international conference on Advanced Intelligent Computing
Proceedings of the 14th symposium on Principles and practice of declarative programming
Hi-index | 0.00 |
Many analysis problems can be cast in the form of evaluating minimal models of a logic program. Although such formulations are appealing due to their simplicity and declarativeness, they have not been widely used in practice because, either existing logic programming systems do not guarantee completeness, or those that do have been viewed as too inefficient for integration into a compiler. The objective of this paper is to re-examine this issue in the context of recent advances in implementation technologies of logic programming systems.We find that such declarative formulations can indeed be used in practical systems, when combined with the appropriate tool for evaluation. We use existing formulations of analysis problems --- groundness analysis of logic programs, and strictness analysis of functional programs --- in this case study, and the XSB system, a table-based logic programming system, as the evaluation tool of choice. We give experimental evidence that the resultant groundness and strictness analysis systems are practical in terms of both time and space. In terms of implementation effort, the analyzers took less than 2 man-weeks (in total), to develop, optimize and evaluate. The analyzer itself consists of about 100 lines of tabled Prolog code and the entire system, including the components to read and preprocess input programs and to collect the analysis results, consists of about 500 lines of code.