Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dhil/phd-dissertation

A summary of my activities during the past four years
https://github.com/dhil/phd-dissertation

abstract-machines algebraic-effects computational-effects continuation-passing-style continuations control-effects effect-handler-oriented-programming effect-handlers expressiveness expressivity functional-programming phd-dissertation phd-thesis research unix

Last synced: 11 days ago
JSON representation

A summary of my activities during the past four years

Awesome Lists containing this project

README

        

# Foundations for programming and implementing effect handlers

A copy of my dissertation can be [downloaded via my
website](https://dhil.net/research/papers/thesis.pdf).

----

Submitted on May 30, 2021. Examined on August 13, 2021.

The board of examiners were

* [Andrew Kennedy](https://github.com/andrewjkennedy) (Facebook London)
* [Edwin Brady](https://www.type-driven.org.uk/edwinb/) (University of St Andrews)
* [Ohad Kammar](http://denotational.co.uk/) (The University of Edinburgh)
* [Stephen Gilmore](https://homepages.inf.ed.ac.uk/stg/) (The University of Edinburgh)

## Thesis structure

The dissertation is structured as follows.

### Introduction

* Chapter 1 puts forth an argument for why effect handlers
matter. Following this argument it provides a basic introduction to
several different approaches to effectful programming through the
lens of the state effect. In addition, it also declares the scope
and contributions of the dissertation, and discusses some related
work.

### Programming

* Chapter 2 illustrates effect handler oriented programming by
example by implementing a small operating system dubbed Tiny UNIX,
which captures some essential traits of Ritchie and Thompson's
UNIX. The implementation starts with a basic notion of file i/o,
and then, it evolves into a feature-rich operating system with full
file i/o, multiple user environments, multi-tasking, and more, by
composing ever more effect handlers.

* Chapter 3 introduces a polymorphic fine-grain call-by-value core
calculus, λb, which makes key use of Rémy-style row
polymorphism to implement polymorphic variants, structural records,
and a structural effect system. The calculus distils the essence of
the core of the Links programming language. The chapter also
presents three extensions of λb, which are λh
that adds deep handlers, λ that adds shallow handlers,
and λ that adds parameterised handlers.

### Implementation

* Chapter 4 develops a higher-order continuation passing style
translation for effect handlers through a series of step-wise
refinements of an initial standard continuation passing style
translation for λb. Each refinement slightly modifies
the notion of continuation employed by the translation. The
development ultimately leads to the key invention of generalised
continuation, which is used to give a continuation passing style
semantics to deep, shallow, and parameterised handlers.

* Chapter 5 demonstrates an application of generalised continuations
to abstract machine as we plug generalised continuations into
Felleisen and Friedman's CEK machine to obtain an adequate abstract
runtime with simultaneous support for deep, shallow, and
parameterised handlers.

### Expressiveness

* Chapter 6 shows that deep, shallow, and parameterised notions of
handlers can simulate one another up to specific notions of
administrative reduction.

* Chapter 7 studies the fundamental efficiency of effect handlers. In
this chapter, we show that effect handlers enable an asymptotic
improvement in runtime complexity for a certain class of
functions. Specifically, we consider the *generic count* problem
using a pure PCF-like base language λb (a
simply typed variation of λb) and its extension with
effect handlers λh. We show that
λh admits an asymptotically more efficient
implementation of generic count than any λb
implementation.

### Conclusions
* Chapter 8 concludes and discusses future work.

### Appendices

* Appendix A contains a literature survey of continuations and
first-class control. I classify continuations according to their
operational behaviour and provide an overview of the various
first-class sequential control operators that appear in the
literature. The application spectrum of continuations is discussed
as well as implementation strategies for first-class control.
* Appendix B contains a proof that shows the `Get-get` equation for
state is redundant.
* Appendix C contains the proof details and gadgetry for the
complexity of the effectful generic count program.
* Appendix D provides a sample implementation of the Berger count
program and discusses it in more detail.

## Building

To build the dissertation you need the [Informatics thesis LaTeX
class](https://github.com/dhil/inf-thesis-latex-cls) with the
University of Edinburgh crests. Invoking `make` on the command line
ought to produce a PDF copy of the dissertation named `thesis.pdf`,
e.g.

```shell
$ make
```

## Timeline

I submitted my thesis on May 30, 2021. It was examined on August 13,
2021, where I received pass with minor corrections. The revised thesis
was submitted on December 22, 2021. It was approved on March
14, 2022. The final revision was submitted on March 23, 2022. I
received my PhD award letter on March 24, 2022. My graduation
ceremony took place in McEwan Hall on July 11, 2022.