Efficiency three ways: tested, verified, and formalised

Handley, Martin AT (2020) Efficiency three ways: tested, verified, and formalised. PhD thesis, University of Nottingham.

[img] PDF (Thesis - as examined) - Repository staff only - Requires a PDF viewer such as GSview, Xpdf or Adobe Acrobat Reader
Download (3MB)


Two fundamental goals in programming are correctness and efficiency: we want our programs to produce the right results, and to do so using as few resources as possible.

One of the key benefits of the functional programming paradigm is the ability to reason about programs as if they are pure mathematical functions. In particular, programs can often be proved correct with respect to a specification by exploiting simple algebraic properties akin to secondary school mathematics. On the other hand, program efficiency is not immediately amenable to such algebraic methods used to explore program correctness.

This insight manifests as a reasoning gap between program correctness and efficiency, and is a foundational problem in computer science. Furthermore, it is especially pronounced in lazy functional programming languages such as Haskell, where the on-demand nature of evaluation makes reasoning about efficiency even more challenging.

To aid Haskell programmers in their reasoning about program efficiency, the work in this thesis seeks to partially bridge the reasoning gap using three different approaches: automated testing, semi-formal verification, and formal verification.

Item Type: Thesis (University of Nottingham only) (PhD)
Supervisors: Hutton, Graham
Keywords: Efficiency, Correctness, Program verification, Program analysis, Formal reasoning, Static analysis, Functional programming.
Subjects: Q Science > QA Mathematics > QA 75 Electronic computers. Computer science
Faculties/Schools: UK Campuses > Faculty of Science > School of Computer Science
Item ID: 63578
Depositing User: Handley, Martin
Date Deposited: 07 Jan 2021 14:54
Last Modified: 03 Feb 2022 09:17
URI: https://eprints.nottingham.ac.uk/id/eprint/63578

Actions (Archive Staff Only)

Edit View Edit View