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...
| Main Author: | |
|---|---|
| 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/ |