## Incremental Computation: A Semantics-Based Systematic Transformational Approach (1996)

Citations: | 11 - 3 self |

### BibTeX

@TECHREPORT{Liu96incrementalcomputation:,

author = {Annie Liu and Yanhong Annie Liu and Ph. D},

title = {Incremental Computation: A Semantics-Based Systematic Transformational Approach},

institution = {},

year = {1996}

}

### OpenURL

### Abstract

ion of a function f adds an extra cache parameter to f . Simplification simplifies the definition of f given the added cache parameter. However, as to how the cache parameter should be used in the simplification to provide incrementality, KIDS provides only the observation that distributive laws can often be applied. The Munich CIP project [BMPP89,Par90] has a strategy for finite differencing that captures similar ideas. It first "defines by a suitable embedding a function f 0 ", and then "derives a recursive version of f 0 using generalized unfold/fold strategy", but it provides no special techniques for discovering incrementality. We believe that both works provide only general strategies with no precise procedure to follow and therefore are less automatable than ours. Chapter 4 Caching intermediate results The value of f 0 (x \Phi y) may often be computed faster by using not only the return value of f 0 (x), as discussed in Chapter 3, but also the values of some subcomputation...

### Citations

2564 |
h~ Design and Analysis of Computer Algorithms
- Hopcroft, Ullman
- 1974
(Show Context)
Citation Context ... these ideas can be found in [Bir80], following which some uses of the word "tabulation" mainly refer to techniques in this class [Par90]. Typical examples of these techniques are dynamic pr=-=ogramming [AHU74]-=-, schemas of redundancies [Coh83], and tupling [Pet84,Pet87,Chi93,CK93]. Dynamic programming applies to problems that can be divided into subproblems and solved from small subproblems to larger ones b... |

605 | A transformation system for developing recursive programs
- Burstall, Darlington
- 1977
(Show Context)
Citation Context ...ates how the values of certain relevant computations can be retrieved from a cached result under certain conditions. Then, we obtain a definition of f 0 by the following three steps. First, we unfold =-=[BD77]-=- (also called expand [Weg76]) the application. Second, we incrementalize the unfolded application. Basically, we consider each subexpression e of the unfolded application in applicative order and (a) ... |

141 | Centaur: the system - Borras, Clement, et al. |

118 | Danvy “Automatic autoprojection of recursive equations with global variables and abstract data types - Bondorf, O - 1991 |

93 | Proving properties of programs by structural induction - Burstall - 1968 |

92 |
The promotion and accumulation strategies in transformational programming
- BIRD
- 1984
(Show Context)
Citation Context ... transformational approach is not only greatly desired for automating designs and guaranteeing correctness, but also also for helping reduce the cost. 5.4.2 Path sequence problem This example is from =-=[Bir84]-=-. Given a directed acyclic graph, and a string whose elements are vertices in the graph, the problem is to compute the length of the longest subsequence in the string that forms a path in the graph. W... |

86 | An interval-based approach to exhaustive and incremental interprocedural data-flow analysis - Burke - 1990 |

81 | Programming languages and their compilers: Preliminary notes - Cocke, Schwartz - 1970 |

75 |
An algorithm for reduction of operator strength
- Cocke, Kennedy
- 1977
(Show Context)
Citation Context ...ficiently as well. Some approaches to incremental computation have exploited specific kinds of auxiliary information, e.g., auxiliary arithmetic associated with some classical strengthreduction rules =-=[ACK81]-=-, dynamic mappings maintained by finite differencing rules for aggregate primitives in SETL [PK82] and INC [YS91], and auxiliary data structures for problems with certain properties like stable decomp... |

74 | Towards an Automated Tupling Strategy - Chin - 1993 |

69 |
Tabulation Techniques for Recursive Programs
- Bird
- 1980
(Show Context)
Citation Context ...re we compare our work with related work in program improvement using caching techniques. Caching has been the basis of many techniques for developing efficient programs and optimizing programs. Bird =-=[Bir80]-=- and Cohen [Coh83] provide nice overviews. Most of these techniques fall into one of the following three classes. Separate caching. In the first class, a global cache separate from a subject program i... |

63 | The PSG system: From formal language definition to interactive programming environments - Bahlke, Snelting - 1986 |

62 | Program derivation by fixed point computation
- Cai, Paige
- 1988
(Show Context)
Citation Context .... Examples are high-level iterators [Ear76], 8 finite differencing of set expressions in SETL [PK82], optimizing relational database operations [Pai84,HT86], fixed-point computation and recomputation =-=[CP89]-=-, differentiation of functional programs in KIDS [Smi90,Smi91], etc. The pioneering work on finite differencing by Paige [PS77,Pai81,PK82,CP89] has been one of the most successful contributions in thi... |

61 | Programming environments based on structured editors: The MENTOR experience - Donzeau-Gouge, Huet, et al. - 1984 |

44 | De Vanter. The Pan language-based editing system - Ballance, Graham, et al. - 1992 |

44 | Formal program construction by transformations—Computer-aided, intuition-guided programming - BAUER, MÖLLER, et al. - 1989 |

34 | From regular expressions to DFAs using compressed NFAs - Chang, Paige - 1992 |

27 | Program optimization - Allen - 1969 |

27 |
Modular attribute grammars
- Dueck, Cormack
- 1990
(Show Context)
Citation Context ...y functionalities. A few frameworks have been proposed for specifying attribution rules grouped around functionalities and, in particular, attribute grammars can be generated from such specifications =-=[DC90]-=-. Mechanisms that can also compose functions from attribution rules would be very helpful. Chapter 7 Conclusion Widespread applications of incremental computation have demonstrated the importance of t... |

25 |
Eliminating redundant recursive calls
- Cohen
- 1983
(Show Context)
Citation Context ...work with related work in program improvement using caching techniques. Caching has been the basis of many techniques for developing efficient programs and optimizing programs. Bird [Bir80] and Cohen =-=[Coh83]-=- provide nice overviews. Most of these techniques fall into one of the following three classes. Separate caching. In the first class, a global cache separate from a subject program is employed to reco... |

22 | More efficient bottom-up multi-pattern matching in trees’. Theoretical Computer Science 106(1), 21–60. ur_path_queries.tex; 28/10/2002; 9:34; p.22 Universal Regular Path Queries 23 - Cai, Paige, et al. - 1992 |

20 |
Composing tree attributions
- Boyland, Graham
- 1994
(Show Context)
Citation Context ...ncluding phase-based transformation. Approaches include attribute coupled grammars [GG84], higher-order attribute grammars [VSK89], composable attribute grammars [FMY92], and simple tree attributions =-=[BG94]-=-. Incremental attribute evaluation algorithms for these frameworks could be used for incremental code generation. However, these frameworks do not address external input. We need to extend them and st... |

16 | Tupling functions with multiple recursion parameters - Chin, Khoo - 1993 |

14 | Practical polymorphism - Nikhil - 1985 |

12 | Proving relative lower bounds for incremental algorithms - Berman, Paull, et al. - 1990 |

12 | Algebraic Methods for Program Construction: the Project CIP,” in Program Transformation and Programming Environments Report on a Workshop directed by - Broy - 1984 |

9 | Computing ready simulations efficiently - Bloom, Paige - 1992 |

8 | Achieving incremental consistency among autonomous replicated databases - Ceri, Houtsma, et al. - 1993 |

6 | Recursive programs as definitions in first order logic
- Cartwright
- 1984
(Show Context)
Citation Context ...evant to the program analyses and transformations used for caching and pruning. First, the transformation Ext is similar to the construction of call-by-value complete recursive programs by Cartwright =-=[Car84]-=-. However, a call-by-value computation sequence returned by such a program is a flat list of all intermediate results, while our extended function returns a computation tree, a structure that mirrors ... |

6 |
The Evolution of Programs, volume 5
- Dershowitz
- 1983
(Show Context)
Citation Context ...] on maintaining and strengthening loop invariants, by Boyle, Moore, Manna, and Waldinger on induction, generalization, and deductive synthesis [BM79,MW80,MW93], by Dershowitz on extension techniques =-=[Der83]-=-, by Bird on promotion and accumulation [Bir84,Bir85], by Broy, Bauer, Partsch, etc. on transforming recursive functional programs in CIP [Bro84,BMPP89, Par90], by Smith on finite differencing of func... |

3 | and upper bounds for incremental algorithms - Lower - 1992 |

1 | A reconstruction of context-dependent document processing in SGML - Blair - 1992 |