mirror of
https://github.com/dhil/phd-dissertation
synced 2026-03-13 11:08:25 +00:00
Fix typos in abstract
This commit is contained in:
58
thesis.tex
58
thesis.tex
@@ -158,18 +158,18 @@
|
|||||||
idioms as shareable libraries.
|
idioms as shareable libraries.
|
||||||
%
|
%
|
||||||
Effect handlers provide a particularly structured approach to
|
Effect handlers provide a particularly structured approach to
|
||||||
programming with first-class control by separating control reifying
|
programming with first-class control by naming control reifying
|
||||||
operations from their handling.
|
operations and separating from their handling.
|
||||||
|
|
||||||
This thesis is composed of three strands in which I develop
|
This thesis is composed of three strands of work in which I develop
|
||||||
operational foundations for programming and implementing effect
|
operational foundations for programming and implementing effect
|
||||||
handlers as well as exploring 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 with a \emph{structural}
|
||||||
notion of effects, as opposed to the \emph{nominal} notion of
|
notion of effect types, as opposed to the \emph{nominal} notion of
|
||||||
effects that dominants the literature.
|
effect types that dominates 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
|
||||||
@@ -196,37 +196,43 @@
|
|||||||
techniques that admit a unified basis for implementing deep,
|
techniques that admit a unified basis for implementing deep,
|
||||||
shallow, and parameterised effect handlers in the same environment.
|
shallow, and parameterised effect handlers in the same environment.
|
||||||
%
|
%
|
||||||
The CPS translation is obtained through a series refinements by
|
The CPS translation is obtained through a series of refinements of a
|
||||||
starting from a basic first-order CPS translation for a fine-grain
|
basic first-order CPS translation for a fine-grain call-by-value
|
||||||
call-by-value language into an untyped language. The initial
|
language into an untyped language.
|
||||||
refinement adds support for deep handlers by representing stacks of
|
|
||||||
continuations and handlers as a curried sequence of arguments.
|
|
||||||
%
|
%
|
||||||
The resulting translation is not \emph{properly tail-recursive},
|
Each refinement moves toward a more intensional representation of
|
||||||
meaning some function application terms do not appear in tail
|
continuations eventually arriving at the notion of \emph{generalised
|
||||||
position. To rectify this the CPS translation is refined once more
|
continuation}, which admit simultaneous support for deep, shallow,
|
||||||
to obtain an uncurried representation of stacks of continuations and
|
and parameterised handlers.
|
||||||
handlers. Each refinement moves toward a more intensional
|
%
|
||||||
representation of continuations eventually arriving at the notion of
|
The initial refinement adds support for deep handlers by
|
||||||
\emph{generalised continuation}, which admit simultaneous support
|
representing stacks of continuations and handlers as a curried
|
||||||
for deep, shallow, and parameterised handlers. Finally, the
|
sequence of arguments.
|
||||||
translation is made higher-order in order to contract administrative
|
%
|
||||||
redexes at translation time.
|
The image of the resulting translation is not \emph{properly
|
||||||
|
tail-recursive}, meaning some function application terms do not
|
||||||
|
appear in tail position. To rectify this the CPS translation is
|
||||||
|
refined once more to obtain an uncurried representation of stacks of
|
||||||
|
continuations and handlers. Finally, the translation is made
|
||||||
|
higher-order in order to contract administrative redexes at
|
||||||
|
translation time.
|
||||||
%
|
%
|
||||||
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 provide simultaneous support for deep,
|
||||||
|
shallow, and parameterised effect handlers. kinds of effect
|
||||||
|
handlers.
|
||||||
|
|
||||||
The third strand explores the expressiveness of effect
|
The third strand explores the expressiveness of effect
|
||||||
handlers. First, I show that deep, shallow, and parameterised
|
handlers. First, I show that deep, shallow, and parameterised
|
||||||
notions of handlers are interdefinable by way of \emph{typed
|
notions of handlers are interdefinable by way of \emph{typed
|
||||||
macro-expressiveness}, which provides a syntactic notion of
|
macro-expressiveness}, which provides a syntactic notion of
|
||||||
expressiveness that merely affirms existence of encodings between
|
expressiveness that affirms the existence of encodings between
|
||||||
handlers, but it provides no information about the computational
|
handlers, but it provides no information about the computational
|
||||||
content of the encodings. Second, using the semantic notion of
|
content of the encodings. Second, using the semantic notion of
|
||||||
\emph{type-respecting expressiveness} I show that for a class of
|
\emph{type-respecting expressiveness} I show that for a class of
|
||||||
programs a programming language with first-class (e.g. effect
|
programs a programming language with first-class control
|
||||||
handlers) admits asymptotically faster implementations than possible
|
(e.g. effect handlers) admits asymptotically faster implementations
|
||||||
in a language without first-class.
|
than possible in a language without first-class control.
|
||||||
%
|
%
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user