Incremental data-flow analysis algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
Conditions for incremental iteration: examples and counterexamples
Science of Computer Programming
Static inference of modes and data dependencies in logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Incremental data flow analysis via dominator and attribute update
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An Incremental Version of Iterative Data Flow Analysis
IEEE Transactions on Software Engineering
An interval-based approach to exhaustive and incremental interprocedural data-flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
An efficient hybrid algorithm for incremental data flow analysis
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A practical framework for the abstract interpretation of logic programs
Journal of Logic Programming
Multiple specialization using minimal-function graph semantics
Journal of Logic Programming
Compile-time derivation of variable dependency using abstract interpretation
Journal of Logic Programming
Global flow analysis as a practical compilation tool
Journal of Logic Programming
Compositional analysis of modular logic programs
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A categorized bibliography on incremental computation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software—Practice & Experience
Experimental evaluation of a generic abstract interpretation algorithm for PROLOG
ACM Transactions on Programming Languages and Systems (TOPLAS)
Denotational abstract interpretation of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A compositional semantics for logic programs
FGCS'921 Selected papers of the conference on Fifth generation computer systems
An abstract interpretation framework which accurately handles prolog search-rule and the cut
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
Effectiveness of global analysis in strict independence-based automatic parallelization
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
Implementation of multiple specialization in logic programs
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A practical object-oriented analysis engine for CLP
Software—Practice & Experience
Optimizing compilation of CLP( R )
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program analysis, debugging, and optimization using the ciao system preprocessor
Proceedings of the 1999 international conference on Logic programming
Efficient computation of flow insensitive interprocedural summary information
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Linear cost is sometimes quadratic
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Global Analysis of Standard Prolog Programs
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
A Generic Processor for Program Validation and Debugging
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
WSA '93 Proceedings of the Third International Workshop on Static Analysis
Optimized Algorithms for Incremental Analysis of Logic Programs
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Parallel interpretation of logic programs
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
Positive Boolean Functions as Multiheaded Clauses
Proceedings of the 17th International Conference on Logic Programming
A Model for Inter-module Analysis and Optimizing Compilation
LOPSTR '00 Selected Papers form the 10th International Workshop on Logic Based Program Synthesis and Transformation
Abstract specialization and its applications
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Efficient groundness analysis in Prolog
Theory and Practice of Logic Programming
Abstraction carrying code and resource-awareness
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
An Efficient, Parametric Fixpoint Algorithm for Analysis of Java Bytecode
Electronic Notes in Theoretical Computer Science (ENTCS)
Improving the Decompilation of Java Bytecode to Prolog by Partial Evaluation
Electronic Notes in Theoretical Computer Science (ENTCS)
A practical type analysis for verification of modular prolog programs
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A Flexible, (C)LP-Based Approach to the Analysis of Object-Oriented Programs
Logic-Based Program Synthesis and Transformation
Non-strict independence-based program parallelization using sharing and freeness information
Theoretical Computer Science
An Abstract Interpretation-based Approach to Mobile Code Safety
Electronic Notes in Theoretical Computer Science (ENTCS)
Program development using abstract interpretation (and the ciao system preprocessor)
SAS'03 Proceedings of the 10th international conference on Static analysis
Automatic binding-related error diagnosis in logic programs
ICLP'07 Proceedings of the 23rd international conference on Logic programming
ICALP'10 Proceedings of the 37th international colloquium conference on Automata, languages and programming: Part II
A generic framework for the analysis and specialization of logic programs
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Abstract interpretation with specialized definitions
SAS'06 Proceedings of the 13th international conference on Static Analysis
An incremental approach to abstraction-carrying code
LPAR'06 Proceedings of the 13th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Efficient top-down set-sharing analysis using cliques
PADL'06 Proceedings of the 8th international conference on Practical Aspects of Declarative Languages
Incremental evaluation of tabled prolog: beyond pure logic programs
PADL'06 Proceedings of the 8th international conference on Practical Aspects of Declarative Languages
Incremental resource usage analysis
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
A local algorithm for incremental evaluation of tabled logic programs
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Reduced certificates for abstraction-carrying code
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
A general implementation framework for tabled CLP
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Conflict, consistency and truth-dependencies in graph representations of answer set logic programs
GKR'11 Proceedings of the Second international conference on Graph Structures for Knowledge Representation and Reasoning
Hi-index | 0.00 |
Global analyzers traditionally read and analyze the entire program at once, in a nonincremental way. However, there are many situations which are not well suited to this simple model and which instead require reanalysis of certain parts of a program which has already been analyzed. In these cases, it appears inefficient to perform the analysis of the program again from scratch, as needs to be done with current systems. We describe how the fixed-point algorithms used in current generic analysis engines for (constraint) logic programming languages can be extended to support incremental analysis. The possible changes to a program are classified into three types: addition, deletion, and arbitrary change. For each one of these, we provide one or more algorithms for identifying the parts of the analysis that must be recomputed and for performing the actual recomputation. The potential benefits and drawbacks of these algorithms are discussed. Finally, we present some experimental results obtained with an implementation of the algorithms in the PLAI generic abstract interpretation framework. The results show significant benefits when using the proposed incremental analysis algorithms.