mirror of
https://github.com/dhil/phd-dissertation
synced 2026-03-13 11:08:25 +00:00
Compare commits
74 Commits
69a2c881b7
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c2d79e1d06 | ||
|
|
47410e4d14 | ||
| 81a4ecec0b | |||
| cafa8b1ba2 | |||
| 2e61275a5b | |||
| e90ba67a4b | |||
| 6aee80a71b | |||
| aea67c86b4 | |||
|
|
5ede30903f | ||
|
|
03b7c5b548 | ||
| 7535fe7ecc | |||
| 72b54ad278 | |||
| 01e707822f | |||
| 2cecb13d34 | |||
| ed634fcaa3 | |||
| c60dc80fde | |||
| e86597f4e4 | |||
| 2b7b1df8db | |||
| 20f44ad547 | |||
| 101ac96aa2 | |||
| e6182105de | |||
| 63fe9a738a | |||
| 3a9394baf8 | |||
| 6193214890 | |||
| ffe6ebd0b9 | |||
| 01a8a3d581 | |||
| 008e80ea67 | |||
| 3276537ab1 | |||
| 20551152b3 | |||
| 8679803146 | |||
| d7bd881a00 | |||
| f5685fe70d | |||
| 7f3503153f | |||
| 40c6505ae2 | |||
| b897751a38 | |||
| 3e1bbf3206 | |||
| 40948507e9 | |||
| 2a800f07e2 | |||
| d3921f24e3 | |||
| 7063acb4e7 | |||
| c9ff1d9af8 | |||
| fff15c9c83 | |||
| a24a33dcf8 | |||
| 6c128a1181 | |||
| 98784c59ab | |||
| 6492391ed4 | |||
| cea34c85e1 | |||
| 40b1144d9b | |||
| 3067bfb939 | |||
| 83b5f7db99 | |||
| 981b0d48f8 | |||
| ee8a4ab2dd | |||
| 3fda920eae | |||
| 0b198e7a25 | |||
| 740413ed1b | |||
| 7ed7a44d61 | |||
| 350d741204 | |||
| f8697be4c7 | |||
| f9b8234221 | |||
| 67598cee1e | |||
| 113b7c4620 | |||
| c52edb51f6 | |||
| a4b802e4e0 | |||
| 3b7dd13e3d | |||
| a42bfc25ab | |||
| 97a4a806e1 | |||
| 0e02128d03 | |||
| aa2b963d0e | |||
| 2f494aae67 | |||
| a36b1cf0d4 | |||
| 53b54056f8 | |||
| f80becc368 | |||
| 6c6d8e2aba | |||
| bc7d89ec5f |
7
Makefile
7
Makefile
@@ -3,8 +3,10 @@ CFLAGS=-interaction=nonstopmode -halt-on-error -file-line-error
|
||||
BIBC=bibtex
|
||||
PAPER=thesis
|
||||
BIBLIO=$(PAPER)
|
||||
LATEST_COMMIT=$(shell git log --format="%h" -n 1)
|
||||
|
||||
all: $(PAPER).pdf
|
||||
draft: $(PAPER).pdf-draft
|
||||
|
||||
$(PAPER).aux: $(PAPER).tex
|
||||
$(TEXC) $(CFLAGS) $(PAPER)
|
||||
@@ -16,6 +18,11 @@ $(PAPER).pdf: $(PAPER).aux $(BIBLIO).bbl
|
||||
$(TEXC) $(CFLAGS) $(PAPER)
|
||||
$(TEXC) $(CFLAGS) $(PAPER)
|
||||
|
||||
$(PAPER).pdf-draft: CFLAGS:=$(CFLAGS) "\def\DRAFT{$(LATEST_COMMIT)}\input{$(PAPER)}"
|
||||
$(PAPER).pdf-draft: all
|
||||
mv $(PAPER).pdf $(PAPER)-draft.pdf
|
||||
tar cf thesis-draft.tar.gz $(PAPER)-draft.pdf
|
||||
|
||||
clean:
|
||||
rm -f *.log *.aux *.toc *.out
|
||||
rm -f *.bbl *.blg *.fls *.xml
|
||||
|
||||
120
README.md
120
README.md
@@ -1,6 +1,120 @@
|
||||
# PhD dissertation on foundations for programming and implementing effect handlers
|
||||
# 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, λ<sub>b</sub>, 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 λ<sub>b</sub>, which are λ<sub>h</sub>
|
||||
that adds deep handlers, λ<sup>†</sup> that adds shallow handlers,
|
||||
and λ<sup>‡</sup> 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 λ<sub>b</sub>. 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 λ<sub>b</sub><sup>→</sup> (a
|
||||
simply typed variation of λ<sub>b</sub>) and its extension with
|
||||
effect handlers λ<sub>h</sub><sup>→</sup>. We show that
|
||||
λ<sub>h</sub><sup>→</sup> admits an asymptotically more efficient
|
||||
implementation of generic count than any λ<sub>b</sub><sup>→</sup>
|
||||
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).
|
||||
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.
|
||||
|
||||
Don't hold your breath... This thing isn't due for a while...
|
||||
```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.
|
||||
|
||||
1469
code/ehop2022.links
Normal file
1469
code/ehop2022.links
Normal file
File diff suppressed because it is too large
Load Diff
1352
code/unix-huawei2022.links
Normal file
1352
code/unix-huawei2022.links
Normal file
File diff suppressed because it is too large
Load Diff
1372
code/unix-msr2022.links
Normal file
1372
code/unix-msr2022.links
Normal file
File diff suppressed because it is too large
Load Diff
1352
code/unix-nuprl2022.links
Normal file
1352
code/unix-nuprl2022.links
Normal file
File diff suppressed because it is too large
Load Diff
1393
code/unix-tutorial.links
Normal file
1393
code/unix-tutorial.links
Normal file
File diff suppressed because it is too large
Load Diff
32
slides/Makefile
Normal file
32
slides/Makefile
Normal file
@@ -0,0 +1,32 @@
|
||||
TEXC=pdflatex
|
||||
CFLAGS=-interaction=nonstopmode -halt-on-error -file-line-error
|
||||
BIBC=bibtex
|
||||
PAPER=viva
|
||||
BIBLIO=$(PAPER)
|
||||
LATEST_COMMIT=$(shell git log --format="%h" -n 1)
|
||||
|
||||
all: $(PAPER).pdf
|
||||
draft: $(PAPER).pdf-draft
|
||||
|
||||
$(PAPER).aux: $(PAPER).tex
|
||||
$(TEXC) $(CFLAGS) $(PAPER)
|
||||
|
||||
$(BIBLIO).bbl: $(PAPER).aux $(BIBLIO).bib
|
||||
$(BIBC) $(PAPER)
|
||||
|
||||
$(PAPER).pdf: $(PAPER).aux $(BIBLIO).bbl
|
||||
$(TEXC) $(CFLAGS) $(PAPER)
|
||||
$(TEXC) $(CFLAGS) $(PAPER)
|
||||
|
||||
$(PAPER).pdf-draft: CFLAGS:=$(CFLAGS) "\def\DRAFT{$(LATEST_COMMIT)}\input{$(PAPER)}"
|
||||
$(PAPER).pdf-draft: all
|
||||
mv $(PAPER).pdf $(PAPER)-draft.pdf
|
||||
tar cf thesis-draft.tar.gz $(PAPER)-draft.pdf
|
||||
|
||||
clean:
|
||||
rm -f *.log *.aux *.toc *.out
|
||||
rm -f *.bbl *.blg *.fls *.xml
|
||||
rm -f *.nav *.snm
|
||||
rm -f *.fdb_latexmk *.vtc *.cut
|
||||
rm -f $(PAPER).pdf camera-ready.pdf submission.pdf
|
||||
rm -f *.o *.cmx *.cmo
|
||||
82
slides/viva.bib
Normal file
82
slides/viva.bib
Normal file
@@ -0,0 +1,82 @@
|
||||
@inproceedings{HillerstromL16,
|
||||
author = {Daniel Hillerstr{\"{o}}m and
|
||||
Sam Lindley},
|
||||
title = {Liberating effects with rows and handlers},
|
||||
booktitle = {TyDe@ICFP},
|
||||
pages = {15--27},
|
||||
publisher = {{ACM}},
|
||||
year = {2016}
|
||||
}
|
||||
|
||||
@inproceedings{HillerstromLAS17,
|
||||
author = {Daniel Hillerstr{\"{o}}m and
|
||||
Sam Lindley and
|
||||
Robert Atkey and
|
||||
{KC} Sivaramakrishnan},
|
||||
title = {Continuation Passing Style for Effect Handlers},
|
||||
booktitle = {{FSCD}},
|
||||
series = {LIPIcs},
|
||||
volume = {84},
|
||||
pages = {18:1--18:19},
|
||||
OPTpublisher = {Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik},
|
||||
year = {2017}
|
||||
}
|
||||
|
||||
@inproceedings{HillerstromL18,
|
||||
author = {Daniel Hillerstr{\"{o}}m and
|
||||
Sam Lindley},
|
||||
title = {Shallow Effect Handlers},
|
||||
booktitle = {{APLAS}},
|
||||
OPTseries = {Lecture Notes in Computer Science},
|
||||
series = {{LNCS}},
|
||||
volume = {11275},
|
||||
pages = {415--435},
|
||||
publisher = {Springer},
|
||||
year = {2018}
|
||||
}
|
||||
|
||||
@article{HillerstromLA20,
|
||||
author = {Daniel Hillerstr{\"{o}}m and
|
||||
Sam Lindley and
|
||||
Robert Atkey},
|
||||
title = {Effect handlers via generalised continuations},
|
||||
journal = {J. Funct. Program.},
|
||||
volume = {30},
|
||||
pages = {e5},
|
||||
year = {2020}
|
||||
}
|
||||
|
||||
@article{HillerstromLL20,
|
||||
author = {Daniel Hillerstr{\"{o}}m and
|
||||
Sam Lindley and
|
||||
John Longley},
|
||||
title = {Effects for Efficiency: Asymptotic Speedup with First-Class Control},
|
||||
journal = {Proc. {ACM} Program. Lang.},
|
||||
volume = {4},
|
||||
number = {{ICFP}},
|
||||
pages = {100:1--100:29},
|
||||
year = {2020}
|
||||
}
|
||||
|
||||
# Unix
|
||||
@article{RitchieT74,
|
||||
author = {Dennis Ritchie and
|
||||
Ken Thompson},
|
||||
title = {The {UNIX} Time-Sharing System},
|
||||
journal = {Commun. {ACM}},
|
||||
volume = {17},
|
||||
number = {7},
|
||||
pages = {365--375},
|
||||
year = {1974}
|
||||
}
|
||||
|
||||
# CEK & C
|
||||
@InProceedings{FelleisenF86,
|
||||
title={Control Operators, the {SECD}-machine, and the $\lambda$-Calculus},
|
||||
author={Felleisen, Matthias and Friedman, Daniel P.},
|
||||
year=1987,
|
||||
booktitle = {Formal Description of Programming Concepts III},
|
||||
OPTbooktitle = {The Proceedings of the Conference on Formal Description of Programming Concepts III, Ebberup, Denmark},
|
||||
pages = {193--217},
|
||||
OPTpublisher={North Holland}
|
||||
}
|
||||
201
slides/viva.tex
Normal file
201
slides/viva.tex
Normal file
@@ -0,0 +1,201 @@
|
||||
\documentclass[169,10pt,compress,dvipsnames]{beamer}
|
||||
%%
|
||||
%% Slides layout
|
||||
%%
|
||||
\beamertemplatenavigationsymbolsempty % hides navigation buttons
|
||||
\usetheme{Madrid} % standard Madrid theme
|
||||
\setbeamertemplate{footline}{} % renders the footer empty
|
||||
%
|
||||
\setbeamertemplate{bibliography item}{ % this is a hack to prevent Madrid theme + biblatex
|
||||
\hspace{-0.4cm}\lower3pt\hbox{ % from causing bibliography entries to run over
|
||||
\pgfuseimage{beamericonarticle} % the slide margins
|
||||
}}
|
||||
|
||||
%%
|
||||
%% Packages
|
||||
%%
|
||||
\usepackage[utf8]{inputenc} % enable UTF-8 compatible typing
|
||||
\usepackage{hyperref} % interactive PDF
|
||||
\usepackage[sort&compress,square,numbers]{natbib} % Bibliography
|
||||
\usepackage{bibentry} % Print bibliography entries inline.
|
||||
\makeatletter % Redefine bibentry to omit hyperrefs
|
||||
\renewcommand\bibentry[1]{\nocite{#1}{\frenchspacing
|
||||
\@nameuse{BR@r@#1\@extra@b@citeb}}}
|
||||
\makeatother
|
||||
\nobibliography* % use the bibliographic data from the standard BibTeX setup.
|
||||
\usepackage{amsmath,amssymb,mathtools} % maths typesetting
|
||||
\usepackage{../pkgs/mathpartir} % Inference rules
|
||||
\usepackage{../pkgs/mathwidth} % renders character sequences nicely in math mode
|
||||
\usepackage{stmaryrd} % semantic brackets
|
||||
\usepackage{xspace} % proper spacing for macros in text
|
||||
|
||||
\usepackage[T1]{fontenc} % 8-bit font encoding
|
||||
% native support for accented characters.
|
||||
\usepackage[scaled=0.85]{beramono} % smoother typewriter font
|
||||
\newcommand*{\Scale}[2][4]{\scalebox{#1}{\ensuremath{#2}}}%
|
||||
|
||||
\input{../macros.tex}
|
||||
|
||||
%%
|
||||
%% Meta information
|
||||
%%
|
||||
\author{Daniel Hillerström}
|
||||
\title{Foundations for Programming and Implementing Effect Handlers}
|
||||
\institute{The University of Edinburgh, Scotland UK}
|
||||
\subtitle{PhD viva}
|
||||
\date{August 13, 2021}
|
||||
|
||||
%%
|
||||
%% Slides
|
||||
%%
|
||||
\begin{document}
|
||||
|
||||
%
|
||||
% Title slide
|
||||
%
|
||||
\begin{frame}
|
||||
\maketitle
|
||||
\end{frame}
|
||||
|
||||
% Dissertation overview
|
||||
\begin{frame}
|
||||
\frametitle{My dissertation at glance}
|
||||
|
||||
Three main strands of work
|
||||
|
||||
\begin{description}
|
||||
\item[Programming] Language design and applications of effect handlers.
|
||||
\item[Implementation] Canonical implementation strategies for effect handlers.
|
||||
\item[Expressiveness] Exploration of the computational expressiveness of effect handlers.
|
||||
\end{description}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Calculi for deep, shallow, and parameterised handlers}
|
||||
|
||||
The calculi capture key aspects of the implementation of effect
|
||||
handlers in Links.
|
||||
|
||||
\begin{itemize}
|
||||
\item $\HCalc$ ordinary deep handlers (fold).
|
||||
\item $\SCalc$ shallow handlers (case-split).
|
||||
\item $\HPCalc$ parameterised deep handlers (fold+state).
|
||||
\end{itemize}
|
||||
|
||||
The actual implementation is the union of the three calculi.\\[2em]
|
||||
|
||||
\textbf{Relevant papers} TyDe'16~\cite{HillerstromL16},
|
||||
APLAS'18~\cite{HillerstromL18}, JFP'20~\cite{HillerstromLA20}.
|
||||
\end{frame}
|
||||
|
||||
% UNIX
|
||||
\begin{frame}
|
||||
\frametitle{Effect handlers as composable operating systems}
|
||||
|
||||
An interpretation of \citeauthor{RitchieT74}'s
|
||||
UNIX~\cite{RitchieT74} in terms of effect handlers.\\[2em]
|
||||
|
||||
\[
|
||||
\bl
|
||||
\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\textbf{Basic idea}
|
||||
\ba[m]{@{\qquad}r@{~}c@{~}l}
|
||||
\text{\emph{system call}} &\approx& \text{\emph{operation invocation}}\\
|
||||
\text{\emph{system call implementation}} &\approx& \text{\emph{operation interpretation}}
|
||||
\ea
|
||||
\el
|
||||
\]\hfill\\[2em]
|
||||
|
||||
\textbf{Key point} Legacy code is modularly retrofitted with functionality.
|
||||
\end{frame}
|
||||
|
||||
% CPS translation
|
||||
\begin{frame}
|
||||
\frametitle{CPS transforms for effect handlers}
|
||||
|
||||
A higher-order CPS transform for effect handlers with generalised
|
||||
continuations.\\[1em]
|
||||
|
||||
\textbf{Generalised continuation} Structured representation of
|
||||
delimited continuations.\\[0.5em]
|
||||
|
||||
\[
|
||||
\Scale[1.8]{\kappa = \overline{(\sigma, (\hret,\hops))}}
|
||||
\]\\[1em]
|
||||
|
||||
\textbf{Key point} Separate the \emph{doing} layer ($\sigma$) from the \emph{being} layer ($H$).\\[2em]
|
||||
|
||||
\textbf{Relevant papers} FSCD'17~\cite{HillerstromLAS17},
|
||||
APLAS'18~\cite{HillerstromL18}, JFP'20~\cite{HillerstromLA20}.
|
||||
\end{frame}
|
||||
|
||||
% Abstract machine
|
||||
\begin{frame}
|
||||
\frametitle{Abstract machine semantics for effect handlers}
|
||||
|
||||
Plugging generalised continuations into \citeauthor{FelleisenF86}'s
|
||||
CEK machine~\cite{FelleisenF86} yields a runtime for effect
|
||||
handlers.\\[2em]
|
||||
|
||||
\[
|
||||
\Scale[2]{\cek{C \mid E \mid K = \overline{(\sigma, (H,E))}}}
|
||||
\]\\[2em]
|
||||
|
||||
\textbf{Relevant papers} TyDe'16~\cite{HillerstromL16},
|
||||
JFP'20~\cite{HillerstromLA20}.
|
||||
|
||||
\end{frame}
|
||||
|
||||
% Interdefinability of handlers
|
||||
\begin{frame}
|
||||
\frametitle{Interdefinability of effect handlers}
|
||||
|
||||
Deep, shallow, and parameterised handlers are interdefinable
|
||||
w.r.t. to typability-preserving macro-expressiveness.
|
||||
|
||||
\begin{itemize}
|
||||
\item Deep as shallow, $\mathcal{D}\llbracket - \rrbracket$, image is computationally lightweight.
|
||||
\item Shallow as deep, $\mathcal{S}\llbracket - \rrbracket$, image is computationally expensive.
|
||||
\item Parameterised as deep, $\mathcal{P}\llbracket - \rrbracket$,
|
||||
image uses explicit state-passing.
|
||||
\end{itemize}
|
||||
~\\[1em]
|
||||
\textbf{Relevant papers} APLAS'18~\cite{HillerstromL18},
|
||||
JFP'20~\cite{HillerstromLA20}.
|
||||
|
||||
\end{frame}
|
||||
|
||||
% Asymptotic speed up with first-class control
|
||||
\begin{frame}
|
||||
\frametitle{Asymptotic speed up with effect handlers}
|
||||
|
||||
Effect handlers can make some programs faster!
|
||||
|
||||
\[
|
||||
\Count_n : ((\Nat_n \to \Bool) \to \Bool) \to \Nat
|
||||
\]\\[1em]
|
||||
%
|
||||
Using type-respecting expressiveness
|
||||
\begin{itemize}
|
||||
\item There \textbf{exists} an implementation of $\Count_n \in \HPCF$ with
|
||||
effect handlers such that the runtime for every $n$-standard predicate $P$ is
|
||||
$\Count_n~P = \BigO(2^n)$.
|
||||
\item \textbf{Forall} implementations of $\Count_n \in \BPCF$ the runtime for every $n$-standard predicate $P$ is $\Count_n~P = \Omega(n2^n)$
|
||||
\end{itemize}
|
||||
~\\[1em]
|
||||
\textbf{Relevant paper} ICFP'20~\cite{HillerstromLL20}.
|
||||
\end{frame}
|
||||
|
||||
% Background
|
||||
% \begin{frame}
|
||||
% \frametitle{Continuations literature review}
|
||||
% \end{frame}
|
||||
|
||||
%
|
||||
% References
|
||||
%
|
||||
\begin{frame}%[allowframebreaks]
|
||||
\frametitle{References}
|
||||
\bibliographystyle{plainnat}
|
||||
\bibliography{\jobname}
|
||||
\end{frame}
|
||||
\end{document}
|
||||
30
thesis.bib
30
thesis.bib
@@ -19,6 +19,15 @@
|
||||
type = {{MSc(R)} thesis}
|
||||
}
|
||||
|
||||
# UNIX with effect handlers abstract
|
||||
@misc{Hillerstrom21,
|
||||
author = {Daniel Hillerström},
|
||||
title = {Composing {UNIX} with {Effect} {Handlers}: {A} {Case} {Study} in {Effect} {Handler} {Oriented} {Programming} (Extended Abstract)},
|
||||
year = {2021},
|
||||
optmonth = sep,
|
||||
howpublished = {{ML Workshop}}
|
||||
}
|
||||
|
||||
# OCaml handlers
|
||||
@article{SivaramakrishnanDWKJM21,
|
||||
author = {{KC} Sivaramakrishnan and
|
||||
@@ -1249,7 +1258,7 @@
|
||||
|
||||
@techreport{Remy93,
|
||||
title = {{Syntactic theories and the algebra of record terms}},
|
||||
author = {Didier Remy},
|
||||
author = {Didier R\'{e}my},
|
||||
number = {RR-1869},
|
||||
institution = {{INRIA}},
|
||||
year = {1993},
|
||||
@@ -2392,7 +2401,8 @@
|
||||
author = {Nikolaos S. Papspyrou},
|
||||
title = {A resumption monad transformer and its applications in the semantics of concurrency},
|
||||
booktitle = {Proceedings of the 3rd Panhellenic Logic Symposium},
|
||||
address = {Anogia, Greece}
|
||||
address = {Anogia, Greece},
|
||||
year = 2001,
|
||||
}
|
||||
|
||||
@inproceedings{Harrison06,
|
||||
@@ -3775,3 +3785,19 @@
|
||||
pages = {1--22},
|
||||
year = {1977}
|
||||
}
|
||||
|
||||
# Dagstuhl seminar report
|
||||
@article{AhmanALR21,
|
||||
author = {Danel Ahman and
|
||||
Amal Ahmed and
|
||||
Sam Lindley and
|
||||
Andreas Rossberg},
|
||||
title = {{Scalable} {Handling} of {Effects} ({Dagstuhl} {Seminar} 21292)},
|
||||
journal = {Dagstuhl Reports},
|
||||
volume = {11},
|
||||
number = {6},
|
||||
pages = {54--81},
|
||||
year = {2021}
|
||||
}
|
||||
|
||||
|
||||
|
||||
14735
thesis.tex
14735
thesis.tex
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user