The modular compilation of effects

Day, Laurence E. (2017) The modular compilation of effects. PhD thesis, University of Nottingham.

PDF (Thesis - as examined) - Requires a PDF viewer such as GSview, Xpdf or Adobe Acrobat Reader
Download (780kB) | Preview


The introduction of new features to a programming language often requires that its compiler goes to the effort of ensuring they are introduced in a manner that does not interfere with the existing code base. Engineers frequently find themselves changing code that has already been designed, implemented and (ideally) proved correct, which is bad practice from a software engineering point of view.

This thesis addresses the issue of constructing a compiler for a source language that is modular in the computational features that it supports. Utilising a minimal language that allows us to demonstrate the underlying techniques, we go on to introduce a significant range of effectful features in a modular manner, showing that their syntax can be compiled independently, and that source languages containing multiple features can be compiled by making use of a fold.

In the event that new features necessitate changes in the underlying representation of either the source language or that of the compiler, we show that our framework is capable of incorporating these changes with minimal disruption. Finally, we show how the framework we have developed can be used to define both modular evaluators and modular virtual machines.

Item Type: Thesis (University of Nottingham only) (PhD)
Supervisors: Hutton, Graham M.
Altenkirch, Thorsten
Keywords: compilation, functional programming, haskell, computer science, monads, catamorphisms, language construction
Subjects: Q Science > QA Mathematics > QA 75 Electronic computers. Computer science
Faculties/Schools: UK Campuses > Faculty of Science > School of Computer Science
Item ID: 43557
Depositing User: Day, Mr Laurence E.
Date Deposited: 18 Jul 2017 04:40
Last Modified: 08 May 2020 11:30

Actions (Archive Staff Only)

Edit View Edit View