Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Incremental graph evaluation (attribute grammar)
Incremental graph evaluation (attribute grammar)
TREAT: a new and efficient match algorithm for AI production systems
TREAT: a new and efficient match algorithm for AI production systems
Finite Differencing of Computable Expressions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Incremental Context-Dependent Analysis for Language-Based Editors
ACM Transactions on Programming Languages and Systems (TOPLAS)
Data Structures and Algorithms
Data Structures and Algorithms
Chunking in Soar: The Anatomy of a General Learning Mechanism
Machine Learning
Explanation-Based Generalization: A Unifying View
Machine Learning
On the efficient implementation of production systems.
On the efficient implementation of production systems.
Incremental computation and the incremental evaluation of functional programs
Incremental computation and the incremental evaluation of functional programs
Learning effective search control knowledge: an explanation-based approach
Learning effective search control knowledge: an explanation-based approach
Language As a Cognitive Process: Syntax
Language As a Cognitive Process: Syntax
Hi-index | 0.00 |
There are computer programs that use the same flow of control when run on different inputs. This redundancy in their program execution traces can be exploited by preserving suitably abstracted call-graphs for subsequent reuse. We introduce a new programming transformation Call-Graph Caching (CGC) which partially evaluates the control flow of sets of such programs into a network formed from their call-graphs. CGC can automatically generate efficient state-saving structure-sharing incremental algorithms from simple program specifications. As an example, we show how a straightforward, inefficient LISP program for conjunctive match is automatically transformed into the RETE network algorithm. Simple and understandable changes to elegant functional (and other) programs are automatically translated by CGC into new efficient incremental network algorithms; this abstraction mechanism is shown for a class of conjunctive matching algorithms. We establish criteria for the appropriate application of CGC to other AI methods, such as planning, chart parsing, consistency maintenance, and analogical reasoning.