The promotion and accumulation strategies in transformational programming
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Eliminating Redundant Recursive Calls.
ACM Transactions on Programming Languages and Systems (TOPLAS)
The analysis of algorithms
Data structures and network algorithms
Data structures and network algorithms
Proc. of a conference on Functional programming languages and computer architecture
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Efficient Synthesis of Gaussian Filters by Cascaded Uniform Filters
IEEE Transactions on Pattern Analysis and Machine Intelligence
Three partition refinement algorithms
SIAM Journal on Computing
Incremental data-flow analysis algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
Formal Program Construction by Transformations-Computer-Aided, Intuition-Guided Programming
IEEE Transactions on Software Engineering
A data structure for dynamic trees
Journal of Computer and System Sciences
The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Incremental computation via function caching
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An incremental constraint solver
Communications of the ACM
Specification and transformation of programs: a formal approach to software development
Specification and transformation of programs: a formal approach to software development
Introduction to algorithms
Incremental reduction in the lambda calculus
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Symbolic finite differencing, part I (invited lecture)
Proceedings of the third European symposium on programming on ESOP '90
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
A theory of incremental computation and its application
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
KIDS: A Semiautomatic Program Development System
IEEE Transactions on Software Engineering
INC: a language for incremental computations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Systems and programming issues in the design and use of a SIMD linear array for image processing
Systems and programming issues in the design and use of a SIMD linear array for image processing
A practical algorithm for exact array dependence analysis
Communications of the ACM
Alphonse: incremental computation as a programming abstraction
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
A categorized bibliography on incremental computation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The deductive foundations of computer programming: a one-volume version of “the logical basis for computer programming”
Improved data structures for fully dynamic biconnectivity
STOC '94 Proceedings of the twenty-sixth annual ACM symposium on Theory of computing
Total correctness by local improvement in program transformation
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimization of functional programs by grammar thinning
ACM Transactions on Programming Languages and Systems (TOPLAS)
Systematic derivation of incremental programs
Science of Computer Programming
Science of Computer Programming
Analysis and caching of dependencies
Proceedings of the first ACM SIGPLAN international conference on Functional programming
An incremental algorithm for a generalization of the shortest-path problem
Journal of Algorithms
Discovering auxiliary information for incremental computation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Incremental computation: a semantics-based systematic transformational approach
Incremental computation: a semantics-based systematic transformational approach
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
Automating derivation of incremental programs
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Static caching for incremental computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Maintenance of a minimum spanning forest in a dynamic planar graph
SODA '90 Proceedings of the first annual ACM-SIAM symposium on Discrete algorithms
Incremental evaluation of computational circuits
SODA '90 Proceedings of the first annual ACM-SIAM symposium on Discrete algorithms
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Tabulation Techniques for Recursive Programs
ACM Computing Surveys (CSUR)
A Deductive Approach to Program Synthesis
ACM Transactions on Programming Languages and Systems (TOPLAS)
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)
An algorithm for reduction of operator strength
Communications of the ACM
Communications of the ACM
Generalized common subexpressions in very high level languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Expression continuity and the formal differentiation of algorithms
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Science of Programming
The Evolution of Programs
The Craft of Programming
A Discipline of Programming
Inductively computable constructs in very high level languages
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Compiler Construction for Digital Computers
Compiler Construction for Digital Computers
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Non-Restoring Integer Square Root: A Case Study in Design by Principled Optimization
TPCD '94 Proceedings of the Second International Conference on Theorem Provers in Circuit Design - Theory, Practice and Experience
Automatic Accurate Time-Bound Analysis for High-Level Languages
LCTES '98 Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems
Viewing A Program Transformation System At Work
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
KBSE '95 Proceedings of The 10th Knowledge-Based Software Engineering Conference
A powerful strategy for deriving efficient programs by transformation
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Induction variables in very high level languages
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
Dependence Analysis for Recursive Data
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Loop optimization for aggregate array computations
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Individuating unknown objects by combining motion and stereo
Individuating unknown objects by combining motion and stereo
A language-theoretic approach to algorithms
A language-theoretic approach to algorithms
Program optimization using indexed and recursive data structures
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
An incremental XSLT transformation processor for XML document manipulation
Proceedings of the 11th international conference on World Wide Web
Automatic Accurate Cost-Bound Analysis for High-Level Languages
IEEE Transactions on Computers
Solving Regular Tree Grammar Based Constraints
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
Optimizing Ackermann's function by incrementalization
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Automated Software Engineering Using Concurrent Class Machines
Proceedings of the 16th IEEE international conference on Automated software engineering
From datalog rules to efficient programs with time and space guarantees
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Optimizing aggregate array computations in loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
Derivation of Efficient Logic Programs by Specialization and Reduction of Nondeterminism
Higher-Order and Symbolic Computation
Termination analysis and specialization-point insertion in offline partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
From datalog rules to efficient programs with time and space guarantees
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pull-ups, push-downs, and passing it around
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
Hi-index | 0.01 |
Incremental computation takes advantage of repeated computations on inputs that differ slightly from one another, computing each output efficiently by exploiting the previous output. This paper gives an overview of a general and systematic approach to incrementalization: given a program f and an operation ⊕, the approach yields an incremental program that computes f(x ⊕ y) efficiently by using the result of f(x), the intermediate results of f(x), and auxiliary information of f(x) that can be inexpensively maintained.Since every non-trivial computation proceeds by iteration or recursion, the approach can be used for achieving efficient computation by computing each iteration incrementally using an appropriate incremental program. This approach has applications in interactive systems, optimizing compilers, transformational programming, and many other areas, where problems were previously solved in less general and systematic ways. This paper also describes the design and implementation of CACHET, a prototype system for incrementalization.