## Computing Downwards Accumulations on Trees Quickly (1996)

### Cached

### Download Links

- [www.cs.auckland.ac.nz]
- [www.cs.auckland.ac.nz]
- [web.comlab.ox.ac.uk]
- DBLP

### Other Repositories/Bibliography

Venue: | Theoretical Computer Science |

Citations: | 9 - 3 self |

### BibTeX

@INPROCEEDINGS{Gibbons96computingdownwards,

author = {Jeremy Gibbons},

title = {Computing Downwards Accumulations on Trees Quickly},

booktitle = {Theoretical Computer Science},

year = {1996},

pages = {685--691}

}

### OpenURL

### Abstract

Downwards accumulations on binary trees are essentially functions which pass information down a tree, from the root towards the leaves. Under certain conditions, a downwards accumulation is both `efficient' (computable in a functional style in parallel time proportional to the depth of the tree) and `manipulable' (enjoying a number of distributivity properties useful in program construction). In this paper, we show that these conditions do in fact yield a stronger conclusion: the accumulation can be computed in parallel time proportional to the logarithm of the depth of the tree, on a Crew Pram machine.

### Citations

1309 | Monads for Functional Programming - Wadler - 1995 |

447 |
Semantics of Context-Free Languages
- Knuth
- 1968
(Show Context)
Citation Context ...asis of many tree algorithms. For example: ffl the parallel prefix algorithm (Ladner and Fischer, 1980) is simply an upwards accumulation followed by a downwards accumulation; ffl attribute grammars (=-=Knuth, 1968-=-) can be completely evaluated in two passes by performing an upwards followed by a downwards accumulation using `continuations ' (Gibbons, 1991); Copyright c fl1995 Jeremy Gibbons. Author's address: D... |

272 | Parallel prefix computation
- Ladner, Fischer
- 1980
(Show Context)
Citation Context ...t element's ancestors. Downwards accumulations, together with their natural counterpart, upwards accumulations, form the basis of many tree algorithms. For example: ffl the parallel prefix algorithm (=-=Ladner and Fischer, 1980-=-) is simply an upwards accumulation followed by a downwards accumulation; ffl attribute grammars (Knuth, 1968) can be completely evaluated in two passes by performing an upwards followed by a downward... |

232 |
Data parallel algorithms
- Hillis, Steele
- 1986
(Show Context)
Citation Context ..., which relies on the algebraic properties of data structures to provide a body of program transformation rules. This emphasis on the properties of data leads to a `data parallel ' programming style (=-=Hillis and Steele, 1986-=-), which appears to be a promising vehicle for architecture-independent parallel computation (Skillicorn, 1990, 1994). This paper is concerned with one particular data-parallel operation on one partic... |

215 |
An introduction to the theory of lists
- Bird
- 1987
(Show Context)
Citation Context ...parallel programming than it is for sequential programming, on account of the greater complexity of parallel computations. One such programming calculus is the BirdMeertens formalism (Meertens, 1986; =-=Bird, 1987-=-, 1988; Backhouse, 1989), which relies on the algebraic properties of data structures to provide a body of program transformation rules. This emphasis on the properties of data leads to a `data parall... |

120 |
Parallel tree contraction and its applications
- Miller, Reif
- 1985
(Show Context)
Citation Context ...e time taken by the individual operations, by a process of `pointer doubling'. Gibbons et al. (1994) describe an entirely different algorithm for the same problem, based on parallel tree contraction (=-=Miller and Reif, 1985-=-) rather than on pointer Computing downwards accumulations on trees quickly 13 doubling. Their algorithm takes time proportional to the logarithm of the size of the tree, as opposed to its depth, and ... |

96 |
Algorithmics: Towards programming as a mathematical activity
- Meertens
- 1986
(Show Context)
Citation Context ...ven greater for parallel programming than it is for sequential programming, on account of the greater complexity of parallel computations. One such programming calculus is the BirdMeertens formalism (=-=Meertens, 1986-=-; Bird, 1987, 1988; Backhouse, 1989), which relies on the algebraic properties of data structures to provide a body of program transformation rules. This emphasis on the properties of data leads to a ... |

84 |
Algebraic Data Types and Program Transformation
- Malcolm
- 1990
(Show Context)
Citation Context ...ree with f , and every occurrence of Br with g . Homomorphisms are well-behaved, in the sense that they obey a number of `promotion ' or distributivity laws useful for proving properties of programs (=-=Malcolm, 1990-=-). They can also be computed in parallel time proportional to the product of the `depth' of the structure and the time taken by the individual operations. One example of a tree homomorphism is the fun... |

69 | Foundations of Parallel Programming - Skillicorn - 1994 |

66 |
Backwards analysis of functional programs
- Hughes
- 1988
(Show Context)
Citation Context ... February 1993, and is also available as Computer Science Report No.64 from the above address. 2 Jeremy Gibbons ffl the backwards analysis of a functional program to determine strictness information (=-=Hughes, 1990-=-) is just a downwards accumulation on the parse tree of that program. Downwards accumulations can be implemented `efficiently' in a functional programming language---that is, they can be computed in p... |

32 | An exploration of the Bird-Meertens formalism
- Backhouse
- 1989
(Show Context)
Citation Context ...ng than it is for sequential programming, on account of the greater complexity of parallel computations. One such programming calculus is the BirdMeertens formalism (Meertens, 1986; Bird, 1987, 1988; =-=Backhouse, 1989-=-), which relies on the algebraic properties of data structures to provide a body of program transformation rules. This emphasis on the properties of data leads to a `data parallel ' programming style ... |

27 | Upwards and downwards accumulations on trees - Gibbons - 1993 |

24 |
Algebras for Tree Algorithms. D
- Gibbons
- 1991
(Show Context)
Citation Context ...ent parallel computation (Skillicorn, 1990, 1994). This paper is concerned with one particular data-parallel operation on one particular data structure, namely downwards accumulation on binary trees (=-=Gibbons, 1991-=-, 1993). Downwards accumulations are essentially functions which `pass information down a tree', from the root towards the leaves. A downwards accumulation replaces every element of a tree with some f... |

18 | Efficient parallel algorithms for tree accumulations - Gibbons, Cai, et al. - 1994 |

14 |
Deriving associative operators for language recognition
- Barnard, Schmeiser, et al.
- 1991
(Show Context)
Citation Context ... language that is recognisable by both right-to-left and left-to-right sequential algorithms is also recognisable by a `homomorphic' algorithm, which is much better suited to parallel implementation (=-=Barnard et al., 1991-=-). We show here that a similar theorem holds for paths. Fact (13) For every computable total function h with enumerable domain, there is a computable (but possibly partial) function g such that h ffi ... |

4 |
Architecture Independent parallel computation
- Skillicorn
- 1990
(Show Context)
Citation Context ... emphasis on the properties of data leads to a `data parallel ' programming style (Hillis and Steele, 1986), which appears to be a promising vehicle for architecture-independent parallel computation (=-=Skillicorn, 1990-=-, 1994). This paper is concerned with one particular data-parallel operation on one particular data structure, namely downwards accumulation on binary trees (Gibbons, 1991, 1993). Downwards accumulati... |

3 | Also available as - project - 1988 |

3 | Backhouse �1989�. An exploration of the Bird-Meertens formalism - Roland |

3 | Meertens �1986�. Algorithmics: Towards programming as a mathematical activity - Lambert |

2 | 122--138. Springer-Verlag. A revised version appears - Bird, P - 1992 |

2 | 1994�. E�cient parallel algorithms for tree accumulations - Gibbons, Cai, et al. |

2 | 1993�. Upwards and downwards accumulations on trees. InR.S - Gibbons |

2 | Fischer �1980�. Parallel pre�x computation - Ladner, Michael |

2 | Skillicorn �1994�. Foundations of Parallel Programming - David |

1 | Skillicorn �1991�. Deriving associative operators for language recognition - Barnard, Schmeiser, et al. |

1 | Steele �1986�. Data parallel algorithms - Hillis, Guy |

1 | Cockett �1994�. Shapely types and shape polymorphism - Jay, B |

1 | Knuth �1968�. Semantics of context-free languages - Donald |

1 | Reif �1985�. Parallel tree contraction and its application - Miller, John |

1 | Skillicorn �1990�. Architecture independent parallel computation - David |