mirror of
https://github.com/dhil/phd-dissertation
synced 2026-03-13 11:08:25 +00:00
Compare commits
2 Commits
8ecfadb94e
...
d0061e18c2
| Author | SHA1 | Date | |
|---|---|---|---|
| d0061e18c2 | |||
| c28aef1c9e |
37
thesis.tex
37
thesis.tex
@@ -394,20 +394,43 @@ In this dissertation I am concerned only with
|
|||||||
parameterised handlers which are a slight variation of deep handlers.
|
parameterised handlers which are a slight variation of deep handlers.
|
||||||
|
|
||||||
\section{Why first-class control matters}
|
\section{Why first-class control matters}
|
||||||
|
From the perspective of programmers first-class control is a valuable
|
||||||
|
programming feature because it enables them to implement their own
|
||||||
|
control idioms as if they were native to the programming
|
||||||
|
language. More important with first-class control programmer-defined
|
||||||
|
control idioms are local phenomena which can be encapsulated in a
|
||||||
|
library such that the rest of the program does not need to be made
|
||||||
|
aware of their existence. Conversely, without first-class control some
|
||||||
|
control idioms can only be implemented using global program
|
||||||
|
restructuring techniques such as continuation passing style.
|
||||||
|
|
||||||
\subsection{Flavours of control}
|
From the perspective of compiler engineers first-class control is
|
||||||
\paragraph{Undelimited control}
|
valuable because it unifies several control-related constructs under
|
||||||
\paragraph{Delimited control}
|
one single construct. First-class control can be beneficial for
|
||||||
\paragraph{Composable control}
|
implementing programming languages which have no notion of first-class
|
||||||
|
control in source language. A runtime with support for first-class
|
||||||
|
control can considerably simplify and ease maintainability of an
|
||||||
|
implementation of a programming language with various distinct
|
||||||
|
second-class control idioms such as async/await, coroutines, etc,
|
||||||
|
because compiler engineers need only implement and maintain a single
|
||||||
|
control mechanism rather than having to implement and maintain
|
||||||
|
individual runtime support for each control idiom of the source
|
||||||
|
language.
|
||||||
|
|
||||||
|
% \subsection{Flavours of control}
|
||||||
|
% \paragraph{Undelimited control}
|
||||||
|
% \paragraph{Delimited control}
|
||||||
|
% \paragraph{Composable control}
|
||||||
|
|
||||||
\subsection{Why effect handlers matter}
|
\subsection{Why effect handlers matter}
|
||||||
|
|
||||||
\section{State of effectful programming}
|
\section{State of effectful programming}
|
||||||
|
|
||||||
The evolution of effectful programming has gone through several
|
The evolution of effectful programming has gone through several
|
||||||
characteristic phases. In this section I will provide a brief overview
|
characteristic time periods. In this section I will provide a brief
|
||||||
of how effectful programming has evolved as well as providing a brief
|
programming perspective on how effectful programming has evolved as
|
||||||
introduction to the core concepts concerned with each phase.
|
well as providing an informal introduction to the core concepts
|
||||||
|
concerned with each time period.
|
||||||
|
|
||||||
\subsection{Early days of direct-style}
|
\subsection{Early days of direct-style}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user