Catamorphism-based program transformations for non-strict functional languages

Németh, László (2000) Catamorphism-based program transformations for non-strict functional languages. PhD thesis, University of Glasgow.

Full text available as:
[img]
Preview
PDF
Download (7MB) | Preview

Abstract

In functional languages intermediate data structures are often used as glue to connect separate parts of a program together. These intermediate data structures are useful because they allow modularity, but they are also a cause of inefficiency: each element need to be allocated, to be examined, and to be deallocated. Warm fusion is a program transformation technique which aims to eliminate intermediate data structures. Functions in a program are first transformed into the so called build-cata form, then fused via a one-step rewrite rule, the cata-build rule. In the process of the transformation to build-cata form we attempt to replace explicit recursion with a fixed pattern of recursion (catamorphism). We analyse in detail the problem of removing - possibly mutually recursive sets of - polynomial datatypes. Wehave implemented the warm fusion method in the Glasgow Haskell Compiler, which has allowed practical feedback. One important conclusion is that catamorphisms and fusion in general deserve a more prominent role in the compilation process. We give a detailed measurement of our implementation on a suite of real application programs.

Item Type: Thesis (PhD)
Qualification Level: Doctoral
Subjects: Q Science > QA Mathematics > QA75 Electronic computers. Computer science
Colleges/Schools: College of Science and Engineering > School of Computing Science
Funder's Name: UNSPECIFIED
Supervisor's Name: Peyton-Jones, Prof. S.
Date of Award: 2000
Depositing User: Mrs Marie Cairney
Unique ID: glathesis:2000-4612
Copyright: Copyright of this thesis is held by the author.
Date Deposited: 03 Oct 2013 11:03
Last Modified: 03 Oct 2013 11:59
URI: http://theses.gla.ac.uk/id/eprint/4612

Actions (login required)

View Item View Item

Downloads

Downloads per month over past year