## The Derivation of a Hierarchy of Algorithms for Pattern Matching on Arrays (1992)

Venue: | Proceedings ATABLE-92, Second international workshop on array structures |

Citations: | 4 - 2 self |

### BibTeX

@INPROCEEDINGS{Jeuring92thederivation,

author = {Johan Jeuring},

title = {The Derivation of a Hierarchy of Algorithms for Pattern Matching on Arrays},

booktitle = {Proceedings ATABLE-92, Second international workshop on array structures},

year = {1992},

pages = {199--213}

}

### OpenURL

### Abstract

This paper derives a hierarchy of algorithms for pattern matching on arrays in the Bird-Meertens calculus for program transformation. In this calculus, both specifications and algorithms are functions, and a few high-level theorems are used as transformation rules. An algorithm is derived from its specification by means of a calculation which typically consists of a sequence of equalities, each an instantiation of a high-level theorem or a definition. Aspects of the Bird-Meertens calculus can be found in [4], [5], [9], [14], [15], and [13]. The laws we use in the derivation are derived from the definition of the data type

### Citations

1308 | Monads for functional programming
- Wadler
- 1995
(Show Context)
Citation Context ... means of a calculation which typically consists of a sequence of equalities, each an instantiation of a high-level theorem or a definition. Aspects of the Bird-Meertens calculus can be found in [4], =-=[5]-=-, [9], [14], [15], and [13]. The laws we use in the derivation are derived from the definition of the data type array. The data type array can be defined in various ways. For a specific problem a suit... |

624 |
Fast Pattern Matching in Strings
- Knuth, Moris, et al.
- 1977
(Show Context)
Citation Context ... by the Dutch organisation for scientific research under project-nr. NF 62.518. Pattern matching algorithms on arrays have been described before. The algorithms for pattern matching from Knuth et al. =-=[12]-=- and Aho and Corasick [1] can be used in an algorithm for two-dimensional pattern matching. This algorithm is described by Bird [3] and Baker [2]. Baker also notices the existence of (but does not giv... |

531 |
Efficient String Matching: An Aid to Bibliographic Search
- Aho, Corasick
- 1975
(Show Context)
Citation Context ... for scientific research under project-nr. NF 62.518. Pattern matching algorithms on arrays have been described before. The algorithms for pattern matching from Knuth et al. [12] and Aho and Corasick =-=[1]-=- can be used in an algorithm for two-dimensional pattern matching. This algorithm is described by Bird [3] and Baker [2]. Baker also notices the existence of (but does not give) a hierarchy of algorit... |

215 |
An introduction to the theory of lists
- Bird
- 1987
(Show Context)
Citation Context ...on by means of a calculation which typically consists of a sequence of equalities, each an instantiation of a high-level theorem or a definition. Aspects of the Bird-Meertens calculus can be found in =-=[4]-=-, [5], [9], [14], [15], and [13]. The laws we use in the derivation are derived from the definition of the data type array. The data type array can be defined in various ways. For a specific problem a... |

105 |
Data structures and program transformation
- Malcolm
- 1990
(Show Context)
Citation Context ...ich typically consists of a sequence of equalities, each an instantiation of a high-level theorem or a definition. Aspects of the Bird-Meertens calculus can be found in [4], [5], [9], [14], [15], and =-=[13]-=-. The laws we use in the derivation are derived from the definition of the data type array. The data type array can be defined in various ways. For a specific problem a suitable definition has to be c... |

70 |
A.L.: Rapid identification of repeated patterns in strings, trees and arrays
- Karp, Miller, et al.
- 1972
(Show Context)
Citation Context ...ng. This algorithm is described by Bird [3] and Baker [2]. Baker also notices the existence of (but does not give) a hierarchy of algorithms for pattern matching on arrays. Karp, Miller and Rosenberg =-=[11]-=- give an algorithm for finding repeated occurrences of square subarrays. This algorithm can be adjusted to deal with pattern matching. Although this algorithm is well suited for parallel implementatio... |

44 |
Two-dimensional pattern matching
- Bird
- 1977
(Show Context)
Citation Context ...ribed before. The algorithms for pattern matching from Knuth et al. [12] and Aho and Corasick [1] can be used in an algorithm for two-dimensional pattern matching. This algorithm is described by Bird =-=[3]-=- and Baker [2]. Baker also notices the existence of (but does not give) a hierarchy of algorithms for pattern matching on arrays. Karp, Miller and Rosenberg [11] give an algorithm for finding repeated... |

37 | Theories for Algorithm Calculation
- Jeuring
- 1993
(Show Context)
Citation Context ...barrays and Section 4 sketches the derivation of a hierarchy of efficient algorithms for pattern matching on arrays. For reasons of space, most of the proofs are omitted; these proofs can be found in =-=[10]-=-. 2 The data type array This section defines the data type array. The data type array is an example of a hierarchical data type: data types of which the nth component (n ? 1) is expressed in terms of ... |

33 |
A technique for extending rapid exact-match string matching to arrays of more than one dimension
- Baker
- 1978
(Show Context)
Citation Context ...type A? if A is not a data type of the form B? for some B , and in this case we extend its definition by defining it to be the identity function on snoc-list. Consider the following example. Let P = [=-=[2; 3]; [5; 4]] -=-be a two-dimensional array pattern. Then the family of functions pm n consists of three components: pm 2 = " # 2 = \Delta (2 [2; [[2; 3]]; [[2; 3]; [5; 4]]])/ \Delta suba 2 pm 1 = " # 1 = \D... |

21 |
Formal derivation of a pattern matching algorithm
- Bird, Gibbons, et al.
- 1989
(Show Context)
Citation Context ... a, or, equivalently, �� (a; b) = a. Operator zip, denoted by \Upsilon : (A? \Theta A?) ! (A \Theta A)?, takes two equal-length lists, and `zips' these lists together. For example, [1; 2; 3] \Upsi=-=lon [4; 5; 6]-=- = [(1; 4); (2; 5); (3; 6)]. A theorem that is often used in the derivation of algorithms is the so-called Fusion on snoc-list Theorem. This theorem describes the condition for `fusing' the compositio... |

16 |
A mathematics of arrays
- MULLIN
- 1988
(Show Context)
Citation Context ...array (a subarray of an array is the extension of the notion of substring or segment on lists to arrays), are shorter. Other definitions of the data type array have been given by Bird [5], and Mullin =-=[16]-=-. This research has been supported by the Dutch organisation for scientific research under project-nr. NF 62.518. Pattern matching algorithms on arrays have been described before. The algorithms for p... |

14 |
Algorithmics--towards programming as a mathematical activity
- Meertens
- 1986
(Show Context)
Citation Context ...a calculation which typically consists of a sequence of equalities, each an instantiation of a high-level theorem or a definition. Aspects of the Bird-Meertens calculus can be found in [4], [5], [9], =-=[14]-=-, [15], and [13]. The laws we use in the derivation are derived from the definition of the data type array. The data type array can be defined in various ways. For a specific problem a suitable defini... |

7 | The derivation of on-line algorithms, with an application to finding palindromes - Jeuring - 1994 |

4 |
The derivation of hierarchies of algorithms on matrices
- Jeuring
- 1991
(Show Context)
Citation Context ...a type array. The data type array can be defined in various ways. For a specific problem a suitable definition has to be chosen, and this choice may differ for different problems. Here, as in Jeuring =-=[8]-=-, we define arrays as nested lists. The definition of the data type array given in [8] is slightly modified and as a result the definition of several functions given in [8], such as the function that ... |

2 |
Parallel computations on strings and arrays
- Crochemore, Rytter
- 1990
(Show Context)
Citation Context ...g repeated occurrences of square subarrays. This algorithm can be adjusted to deal with pattern matching. Although this algorithm is well suited for parallel implementation, see Crochemore and Rytter =-=[7]-=-, it is inefficient compared with the aforementioned sequential algorithms. This paper is organised as follows. Section 2 defines the data type array, and gives some laws. Section 3 specifies the patt... |