## Incremental Algorithms on Lists (1991)

Venue: | Proceedings SION Computing Science in the Netherlands |

Citations: | 4 - 4 self |

### BibTeX

@INPROCEEDINGS{Jeuring91incrementalalgorithms,

author = {Johan Jeuring},

title = {Incremental Algorithms on Lists},

booktitle = {Proceedings SION Computing Science in the Netherlands},

year = {1991},

pages = {315--335}

}

### OpenURL

### Abstract

Incremental computations can improve the performance of interactive programs such as spreadsheet programs, program development environments, text editors, etc. Incremental algorithms describe how to compute a required value depending on the input, after the input has been edited. By considering the possible different edit actions on the data type lists, the basic data type used in spreadsheet programs and text editors, we define incremental algorithms on lists. Some theory for the construction of incremental algorithms is developed, and we give an incremental algorithm for a more involved example: formatting a text. CR categories and descriptors: D11 [Software]: Programming Techniques --- Applicative Programming, D43 [Software]: Programming Languages --- Language constructs, I22 [Artificial Intelligence]: Automatic Programming --- Program transformation. General terms: algorithm, design, theory. Additional keywords and phrases: Bird-Meertens calculus for program construction, incremen...

### Citations

1309 | Monads for Functional Programming
- Wadler
- 1995
(Show Context)
Citation Context ...tions. Specifications are transformed into efficient functional algorithms using laws for functions defined on some initial data type. Aspects of the Bird-Meertens calculus can be found in [14], [3], =-=[4]-=-, [10], [13], and [15]. Besides lots of articles on incremental algorithms for specific problems, like for example the algorithm for incrementally computing the minimum spanning tree of Frederickson [... |

215 |
An introduction to the theory of lists
- Bird
- 1987
(Show Context)
Citation Context ...ing sentence from `Pride and Prejudice' by Jane Austen It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife. is represented by the list =-=[2; 2; 1; 5; 11; 13; 4; 1; 6; 3; 2; 10; 2; 1; 4; 8; 4; 2; 2; 4; 2; 1; 5]-=- : If C = 25, one of the many formattings is the following. It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife. (49) We specify the pr... |

150 |
Data structures for on-line updating of minimum spanning trees, with applications
- Frederickson
- 1985
(Show Context)
Citation Context ...], [10], [13], and [15]. Besides lots of articles on incremental algorithms for specific problems, like for example the algorithm for incrementally computing the minimum spanning tree of Frederickson =-=[7]-=-, the algorithm for incremental Huffman coding of Knuth [11], and the algorithm for pattern matching with a dynamically changing set of patterns of Meyer [16], several proposals for the derivation and... |

105 |
Data structures and program transformation
- Malcolm
- 1990
(Show Context)
Citation Context ...ifications are transformed into efficient functional algorithms using laws for functions defined on some initial data type. Aspects of the Bird-Meertens calculus can be found in [14], [3], [4], [10], =-=[13]-=-, and [15]. Besides lots of articles on incremental algorithms for specific problems, like for example the algorithm for incrementally computing the minimum spanning tree of Frederickson [7], the algo... |

99 |
An overview of miranda
- Turner
- 1986
(Show Context)
Citation Context ... of algorithms one often encounters generators, such as segs (returning all consecutive substrings of a string), and parts (returning all partitions of a string). Using list comprehension, see Turner =-=[24]-=-, we define segs x = [v j 9u; w : x = u ++ v ++ w ] (23) tails x = [v j 9w : x = w ++ v ] (24) inits x = [v j 9w : x = v ++ w ] : (25) Following Bird [2], we characterise segs recursively by means of ... |

96 |
Dynamic Huffman coding
- Knuth
- 1985
(Show Context)
Citation Context ...ental algorithms for specific problems, like for example the algorithm for incrementally computing the minimum spanning tree of Frederickson [7], the algorithm for incremental Huffman coding of Knuth =-=[11]-=-, and the algorithm for pattern matching with a dynamically changing set of patterns of Meyer [16], several proposals for the derivation and description of incremental algorithms have been given in th... |

81 | Incremental context-dependent analysis for language-based editors
- Reps, Teitelbaum, et al.
- 1983
(Show Context)
Citation Context ...nts are changed. The approach is generic, and does not distinguish incrementality on different types. The approach sketched in this paper can be compared with the work of Reps, Teitelbaum, and Demers =-=[20]-=- on incremental attribute evaluators. They give an incremental algorithm in an interactive program development environment (a tree editor) for the evaluation of the attributes of a tree. A natural ext... |

63 |
Linear algorithm for data compression via string matching
- Rodeh, Pratt, et al.
- 1981
(Show Context)
Citation Context ...oblem of coding a text with respect to a dictionary. This algorithm can be used in algorithms for data compression. On-line algorithms for this problem are well known, see e.g. Rodeh, Pratt, and Even =-=[21]-=-. The specification of this problem is similar to the specification of the paragraph problem; it is specified by ## = \Delta (all (2 D))/ \Delta parts ; (64) where D is a dictionary. The derivation of... |

52 |
Breaking paragraphs into lines
- Knuth, Plass
- 1998
(Show Context)
Citation Context ... f is recomputed. As an example, consider the task of breaking a paragraph into lines such that the result looks nice (text-formatting). Algorithms for this problem have been given by Knuth and Plass =-=[12]-=-, and Bird [2]. We will derive an incremental algorithm for this problem with which it is possible two combine two formatted paragraphs in constant time. Furthermore, deleting or inserting a piece of ... |

32 |
Programming with invariants
- Paige
- 1986
(Show Context)
Citation Context ... will be derived. Furthermore, the only data types INC can handle are bag and tuple, which is rather restrictive. Another approach to incrementality, called finite differencing, is described by Paige =-=[18]-=-. So-called invariants, equalities of the form E = f (x 1 ; : : : ; x n ), are maintained by means of code which describes how to find the value of E if one or more of the arguments are changed. The a... |

28 |
INC: A Language for Incremental Computations
- Yellin, Strom
- 1991
(Show Context)
Citation Context ...hanging set of patterns of Meyer [16], several proposals for the derivation and description of incremental algorithms have been given in the literature. The language INC, designed by Yellin and Strom =-=[25]-=-, automatically transforms algorithms in an FP-like syntax to incremental algorithms. For each construct in FP an incremental version is given, and since every algorithm consists of a series of FP con... |

24 |
Applications of a strategy for designing divide-and-conquer algorithms
- Smith
- 1987
(Show Context)
Citation Context ...Delta segs : (48) A slight generalisation of this problem (tuple with the maximum sum among the tails , the maximum sum among the inits, and the sum of the argument list) is a catamorphism, see Smith =-=[22]-=-. Hence Theorem 47 gives an efficient incremental algorithm for finding the maximum segment sum of a list. 3.2 Formatting a text incrementally The problem considered here is the derivation in the Bird... |

18 | Interactive functional programs: a method and a formal semantics
- Thompson
- 1987
(Show Context)
Citation Context ... A ! B . Suppose that we want to find the f -value of a list, and that we are interactively editing this list. A description of interactive programs in a functional setting has been given by Thompson =-=[23]-=-. When editing a piece of data, a text, a program, or a list of numbers from a spreadsheet program, a cursor is moved through the data. Suppose the data is represented as a list. The cursor is always ... |

14 |
Algorithmics--towards programming as a mathematical activity
- Meertens
- 1986
(Show Context)
Citation Context ... transformations. Specifications are transformed into efficient functional algorithms using laws for functions defined on some initial data type. Aspects of the Bird-Meertens calculus can be found in =-=[14]-=-, [3], [4], [10], [13], and [15]. Besides lots of articles on incremental algorithms for specific problems, like for example the algorithm for incrementally computing the minimum spanning tree of Fred... |

11 |
Transformational programming and the paragraph problem
- Bird
- 1986
(Show Context)
Citation Context ...d. As an example, consider the task of breaking a paragraph into lines such that the result looks nice (text-formatting). Algorithms for this problem have been given by Knuth and Plass [12], and Bird =-=[2]-=-. We will derive an incremental algorithm for this problem with which it is possible two combine two formatted paragraphs in constant time. Furthermore, deleting or inserting a piece of text and break... |

11 | Algorithms from theorems
- Jeuring
- 1990
(Show Context)
Citation Context .... Specifications are transformed into efficient functional algorithms using laws for functions defined on some initial data type. Aspects of the Bird-Meertens calculus can be found in [14], [3], [4], =-=[10]-=-, [13], and [15]. Besides lots of articles on incremental algorithms for specific problems, like for example the algorithm for incrementally computing the minimum spanning tree of Frederickson [7], th... |

8 |
Views: An Open-Architecture User-Interface System
- Pemberton
- 1990
(Show Context)
Citation Context ...Teitelbaum, and Demers give. The model obtained thus is more suitable for calculating with algorithms. Some of the incremental algorithms given in this paper have been implemented in the Views System =-=[19]-=-. This paper is organised as follows. Section 2 introduces the data types in the Boomhierarchy, such as list, and several functions defined on these data types, such as map, filter, and catamorphism. ... |

7 |
0 . "On the line breaking problem in text formatting
- Achugbue
- 1981
(Show Context)
Citation Context ...oss is used frequently in calculations. Cross takes two lists, and pairs each element of the first list with each element of the second list. The result of cross is a bag of these pairs. For example, =-=[1; 2]-=- =n [3; 4; 5] = b(1; 3); (1; 4); (1; 5); (2; 3); (2; 4); (2; 5)c. The operator cross has been introduced by Bird [4]. The following definition is taken from Jeuring [9]. x =n y = ]= (` x ) y a ` x = (... |

6 |
Deriving algorithms on binary labelled trees
- Jeuring
- 1989
(Show Context)
Citation Context ...of these pairs. For example, [1; 2] =n [3; 4; 5] = b(1; 3); (1; 4); (1; 5); (2; 3); (2; 4); (2; 5)c. The operator cross has been introduced by Bird [4]. The following definition is taken from Jeuring =-=[9]-=-. x =n y = ]= (` x ) y a ` x = (;a) x b ; a = (b; a) : (11) Operator cross can be subscripted with a binary operator, by which we mean the following. =n \Phi = \Phi \Delta =n : (12) Note that \Phi is ... |

5 | Incremental string matching
- Meyer
- 1985
(Show Context)
Citation Context ... the minimum spanning tree of Frederickson [7], the algorithm for incremental Huffman coding of Knuth [11], and the algorithm for pattern matching with a dynamically changing set of patterns of Meyer =-=[16]-=-, several proposals for the derivation and description of incremental algorithms have been given in the literature. The language INC, designed by Yellin and Strom [25], automatically transforms algori... |

2 |
Memories of ADJ
- Goguen
- 1989
(Show Context)
Citation Context ...of induction in the development of algorithms. Inductive arguments tend to be tedious and are less elegant than proofs using promotion. As early as 1975 this was one of the main motivations of Goguen =-=[8]-=- to use initiality in proofs. Before we give the theorem, we first define promotability. (6) Definition ((\Phi;\Omega )--promotability) A function f : A ! B is (\Phi;\Omega )--promotable for associati... |

1 |
specification exercises
- Small
- 1990
(Show Context)
Citation Context ...operator fi and a function r such that f = fi= \Delta rs: Since f is defined by #w = \Delta (all fit )/ \Delta parts, we could try to apply the theory developed for function parts by for example Bird =-=[5]-=-. However, none of this theory is applicable. Intuitively, this can be seen as follows. If f (x ++ y) has to be expressed in terms of f x and f y, the information obtained from f y is useless. Instead... |

1 | Using underspecification in the derivation of some optimal partition algorithms
- Fokkinga
- 1990
(Show Context)
Citation Context ...ing sentence from `Pride and Prejudice' by Jane Austen It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife. is represented by the list =-=[2; 2; 1; 5; 11; 13; 4; 1; 6; 3; 2; 10; 2; 1; 4; 8; 4; 2; 2; 4; 2; 1; 5]-=- : If C = 25, one of the many formattings is the following. It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife. (49) We specify the pr... |

1 |
Categories, relations and dynamic programming. submitted for publication
- Moor
- 1991
(Show Context)
Citation Context ... However, we have chosen to stay within the functional framework. A derivation of one of the on-line algorithms for breaking a paragraph into lines in a relational framework is carried out by De Moor =-=[17]-=-. Here, the nondeterminism is resolved in an ad-hoc fashion by defining #w on objects with equal w - value as follows. Again, it is not clear to me whether incremental algorithms can be derived for ot... |