Browse Source

Abstract

master
Daniel Hillerström 5 years ago
parent
commit
7917c2ca0b
  1. 27
      thesis.tex

27
thesis.tex

@ -168,13 +168,13 @@
This thesis is composed of three strands in which I develop This thesis is composed of three strands in which I develop
operational foundations for programming and implementing effect operational foundations for programming and implementing effect
handlers as well as investigating the expressive power of effect
handlers as well as exploring the expressive power of effect
handlers. handlers.
The first strand develops a fine-grain call-by-value core calculus The first strand develops a fine-grain call-by-value core calculus
of a statically typed programming language a \emph{structural} of a statically typed programming language a \emph{structural}
notion of effects, as opposed to the dominant \emph{nominal} notion
of effects in the literature.
notion of effects, as opposed to the \emph{nominal} notion of
effects that dominants the literature.
% %
With the structural approach, effects need not be declared before With the structural approach, effects need not be declared before
use. The usual safety properties of statically typed programming are use. The usual safety properties of statically typed programming are
@ -192,9 +192,9 @@
trees. trees.
% %
To demonstrate the usefulness of effects and handlers as a practical To demonstrate the usefulness of effects and handlers as a practical
programming abstraction I implement a small \UNIX{}-style operating
system complete with multi-user environment, time-sharing, and file
I/O.
programming abstraction I implement the essence of a small
\UNIX{}-style operating system complete with multi-user environment,
time-sharing, and file I/O.
The second strand studies \emph{continuation passing style} (CPS) The second strand studies \emph{continuation passing style} (CPS)
and \emph{abstract machine semantics}, which are foundational and \emph{abstract machine semantics}, which are foundational
@ -212,7 +212,7 @@
position. To rectify this the CPS translation is refined once more position. To rectify this the CPS translation is refined once more
to obtain an uncurried representation of stacks of continuations and to obtain an uncurried representation of stacks of continuations and
handlers. Each refinement moves toward a more intensional handlers. Each refinement moves toward a more intensional
representation of continuations eventually leading to the notion of
representation of continuations eventually arriving at the notion of
\emph{generalised continuation}, which admit simultaneous support \emph{generalised continuation}, which admit simultaneous support
for deep, shallow, and parameterised handlers. Finally, the for deep, shallow, and parameterised handlers. Finally, the
translation is made higher-order in order to contract administrative translation is made higher-order in order to contract administrative
@ -221,8 +221,17 @@
The generalised continuation representation is used to construct an The generalised continuation representation is used to construct an
abstract machine that supports the three kinds of handlers. abstract machine that supports the three kinds of handlers.
The third strand investigates the expressive power of effect
handlers.
The third strand explores the expressiveness of effect
handlers. First, I show that deep, shallow, and parameterised
notions of handlers are interdefinable by way of \emph{typed
macro-expressiveness}, which provides a syntactic notion of
expressiveness that merely affirms existence of encodings between
handlers, but it provides no information about the computational
content of the encodings. Second, using the semantic notion of
\emph{type-respecting expressiveness} I show that for a class of
programs a programming language with first-class (e.g. effect
handlers) admits asymptotically faster implementations than possible
in a language without first-class.
% %
} }

Loading…
Cancel
Save