Algebras for tree algorithms

<p>This thesis presents an investigation into the properties of various algebras of trees. In particular, we study the influence that the structure of a tree algebra has on the solution of algorithmic problems about trees in that algebra. The investigation is conducted within the framework pro...

Full description

Bibliographic Details
Main Author: Gibbons, J
Other Authors: Bird, R
Format: Thesis
Language:English
Published: 1991
Subjects:
_version_ 1817933136393142272
author Gibbons, J
author2 Bird, R
author_facet Bird, R
Gibbons, J
author_sort Gibbons, J
collection OXFORD
description <p>This thesis presents an investigation into the properties of various algebras of trees. In particular, we study the influence that the structure of a tree algebra has on the solution of algorithmic problems about trees in that algebra. The investigation is conducted within the framework provided by the Bird-Meertens formalism, a calculus for the construction of programs by equational reasoning from their specifications.</p><p>We present three different tree algebras: two kinds of binary tree and a kind of general tree. One of the binary tree algebras, called "hip trees", is new. Instead of being built with a single ternary operator, hip trees are built with two binary operators which respectively add left and right children to trees which do not already have them; these operators enjoy a kind of associativity property.</p><p>Each of these algebras brings with it with a class of "structure-respecting" functions called catamorphisms; the definition of a catamorphism and a number of its properties come for free from the definition of the algebra, because the algebra is chosen to be initial in a class of algebras induced by a (cocontinuous) functor. Each algebra also brings with it, but not for free, classes of "structure-preserving" functions called accumulations. An accumulation is a function that preserves the shape of a structured object such as a tree, but replaces each element of that object with some catamorphism applied to some of the other elements. The two classes of accumulation that we study are the "upwards" and "downwards" accumulations, which pass information from the leaves of a tree towards the root and from the root towards the leaves, respectively.</p><p> Upwards and downwards accumulations turn out to be the key to the solution of many problems about trees. We derive accumulation-based algorithms for a number of problems; these include the parallel prefix algorithm for the prefix sums problem, algorithms for bracket matching and for drawing binary and general trees, and evaluators for decorating parse trees according to an attribute grammar.</p>
first_indexed 2024-03-06T22:08:21Z
format Thesis
id oxford-uuid:50ed112d-411d-486f-8631-6064138f4bf7
institution University of Oxford
language English
last_indexed 2024-12-09T03:49:01Z
publishDate 1991
record_format dspace
spelling oxford-uuid:50ed112d-411d-486f-8631-6064138f4bf72024-12-08T12:11:44ZAlgebras for tree algorithmsThesishttp://purl.org/coar/resource_type/c_db06uuid:50ed112d-411d-486f-8631-6064138f4bf7ComputingEnglishOxford University Research Archive - Valet1991Gibbons, JBird, R<p>This thesis presents an investigation into the properties of various algebras of trees. In particular, we study the influence that the structure of a tree algebra has on the solution of algorithmic problems about trees in that algebra. The investigation is conducted within the framework provided by the Bird-Meertens formalism, a calculus for the construction of programs by equational reasoning from their specifications.</p><p>We present three different tree algebras: two kinds of binary tree and a kind of general tree. One of the binary tree algebras, called "hip trees", is new. Instead of being built with a single ternary operator, hip trees are built with two binary operators which respectively add left and right children to trees which do not already have them; these operators enjoy a kind of associativity property.</p><p>Each of these algebras brings with it with a class of "structure-respecting" functions called catamorphisms; the definition of a catamorphism and a number of its properties come for free from the definition of the algebra, because the algebra is chosen to be initial in a class of algebras induced by a (cocontinuous) functor. Each algebra also brings with it, but not for free, classes of "structure-preserving" functions called accumulations. An accumulation is a function that preserves the shape of a structured object such as a tree, but replaces each element of that object with some catamorphism applied to some of the other elements. The two classes of accumulation that we study are the "upwards" and "downwards" accumulations, which pass information from the leaves of a tree towards the root and from the root towards the leaves, respectively.</p><p> Upwards and downwards accumulations turn out to be the key to the solution of many problems about trees. We derive accumulation-based algorithms for a number of problems; these include the parallel prefix algorithm for the prefix sums problem, algorithms for bracket matching and for drawing binary and general trees, and evaluators for decorating parse trees according to an attribute grammar.</p>
spellingShingle Computing
Gibbons, J
Algebras for tree algorithms
title Algebras for tree algorithms
title_full Algebras for tree algorithms
title_fullStr Algebras for tree algorithms
title_full_unstemmed Algebras for tree algorithms
title_short Algebras for tree algorithms
title_sort algebras for tree algorithms
topic Computing
work_keys_str_mv AT gibbonsj algebrasfortreealgorithms