Functional programming and graph algorithms

King, David Jonathan (1996) Functional programming and graph algorithms. PhD thesis, University of Glasgow.

Full text available as:
[thumbnail of 1996kingphd.pdf] PDF
Download (8MB)
Printed Thesis Information: https://eleanor.lib.gla.ac.uk/record=b1570669

Abstract

This thesis is an investigation of graph algorithms in the non-strict purely functional language Haskell. Emphasis is placed on the importance of achieving an asymptotic complexity as good as with conventional languages. This is achieved by using the monadic model for including actions on the state. Work on the monadic model was carried out at Glasgow University by Wadler, Peyton Jones, and Launchbury in the early nineties and has opened up many diverse application areas. One area is the ability to express data structures that require sharing. Although graphs are not presented in this style, data structures that graph algorithms use are expressed in this style. Several examples of stateful algorithms are given including union/find for disjoint sets, and the linear time sort binsort.

The graph algorithms presented are not new, but are traditional algorithms recast in a functional setting. Examples include strongly connected components, biconnected components, Kruskal's minimum cost spanning tree, and Dijkstra's shortest paths. The presentation is lucid giving more insight than usual. The functional setting allows for complete calculational style correctness proofs - which is demonstrated with many examples.

The benefits of using a functional language for expressing graph algorithms are quantified by looking at the issues of execution times, asymptotic complexity, correctness, and clarity, in comparison with traditional approaches. The intention is to be as objective as possible, pointing out both the weaknesses and the strengths of using a functional language.

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
Supervisor's Name: Launchbury, John
Date of Award: 1996
Depositing User: Elaine Ballantyne
Unique ID: glathesis:1996-1629
Copyright: Copyright of this thesis is held by the author.
Date Deposited: 05 Mar 2010
Last Modified: 10 Dec 2012 13:44
URI: https://theses.gla.ac.uk/id/eprint/1629

Actions (login required)

View Item View Item

Downloads

Downloads per month over past year