Generating language-based environments
Generating language-based environments
Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Maintenance of stratified databases viewed as a belief revision system
PODS '87 Proceedings of the sixth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
An Incremental Version of Iterative Data Flow Analysis
IEEE Transactions on Software Engineering
Maintaining views incrementally
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
Tabulated resolution for well founded semantics
ILPS '93 Proceedings of the 1993 international symposium on Logic programming
Efficient maintenance of materialized mediated views
SIGMOD '95 Proceedings of the 1995 ACM SIGMOD international conference on Management of data
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
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
An incremental flow- and context-sensitive pointer aliasing analysis
Proceedings of the 21st international conference on Software engineering
Incremental Context-Dependent Analysis for Language-Based Editors
ACM Transactions on Programming Languages and Systems (TOPLAS)
Adaptive functional programming
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Incremental methods for FSM traversal
ICCD '95 Proceedings of the 1995 International Conference on Computer Design: VLSI in Computers and Processors
OLD Resolution with Tabulation
Proceedings of the Third International Conference on Logic Programming
Proceedings of the 17th International Conference on Logic Programming
Resource-Constrained Model Checking of Recursive Programs
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
CC '02 Proceedings of the 11th International Conference on Compiler Construction
XMC: A Logic-Programming-Based Verification Toolset
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Incremental Model Checking in the Modal Mu-Calculus
CAV '94 Proceedings of the 6th International Conference on Computer Aided Verification
Incremental methods for formal verification and logic synthesis
Incremental methods for formal verification and logic synthesis
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
Justifications for logic programs under answer set semantics
Theory and Practice of Logic Programming
Incremental model transformation for the evolution of model-driven systems
MoDELS'06 Proceedings of the 9th international conference on Model Driven Engineering 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
Automatic incrementalization of prolog based static analyses
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
On improving the efficiency and robustness of table storage mechanisms for tabled evaluation
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Hi-index | 0.00 |
In an earlier paper, we described a data structure, called support graph, for efficient incremental evaluation of tabled logic programs. The support graph records the dependencies between answers in the tables, and is crucial for efficiently propagating the changes to the tables when facts are deleted. Incremental computation with support graphs are hundreds of times faster than from-scratch evaluation for small changes in the program. However, the graph typically grows faster than the tables themselves, making it impractical to maintain the full support graph for large applications. In this paper we present a data structure, called symbolic support graph, which represents support information compactly. For a variety of useful tabled logic programs, the size of the symbolic support graph grows no faster than the table size. We demonstrate its effectiveness using a large application: a logic-programming-based points-to analyzer for C programs. The incremental analyzer shows very good scalability in terms of space usage, and is hundreds of times faster than from-scratch analysis for small changes to the program.