The modular compilation of effects

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, implement...

Full description

Bibliographic Details
Main Author: Day, Laurence E.
Format: Thesis (University of Nottingham only)
Language:English
Published: 2017
Subjects:
Online Access:https://eprints.nottingham.ac.uk/43557/
_version_ 1848796713317302272
author Day, Laurence E.
author_facet Day, Laurence E.
author_sort Day, Laurence E.
building Nottingham Research Data Repository
collection Online Access
description 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.
first_indexed 2025-11-14T19:52:21Z
format Thesis (University of Nottingham only)
id nottingham-43557
institution University of Nottingham Malaysia Campus
institution_category Local University
language English
last_indexed 2025-11-14T19:52:21Z
publishDate 2017
recordtype eprints
repository_type Digital Repository
spelling nottingham-435572025-02-28T11:57:38Z https://eprints.nottingham.ac.uk/43557/ The modular compilation of effects Day, Laurence E. 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. 2017-07-18 Thesis (University of Nottingham only) NonPeerReviewed application/pdf en arr https://eprints.nottingham.ac.uk/43557/1/led_phd_thesis.pdf Day, Laurence E. (2017) The modular compilation of effects. PhD thesis, University of Nottingham. compilation functional programming haskell computer science monads catamorphisms language construction
spellingShingle compilation
functional programming
haskell
computer science
monads
catamorphisms
language construction
Day, Laurence E.
The modular compilation of effects
title The modular compilation of effects
title_full The modular compilation of effects
title_fullStr The modular compilation of effects
title_full_unstemmed The modular compilation of effects
title_short The modular compilation of effects
title_sort modular compilation of effects
topic compilation
functional programming
haskell
computer science
monads
catamorphisms
language construction
url https://eprints.nottingham.ac.uk/43557/