Browse Source

Chapter 8

master
Daniel Hillerström 4 years ago
parent
commit
f5685fe70d
  1. 41
      thesis.tex

41
thesis.tex

@ -16522,6 +16522,24 @@ asymptotic improvement in runtime performance for some class of
programs. programs.
\section{Programming with effect handlers} \section{Programming with effect handlers}
Chapter~\ref{ch:ehop} presents a case study of effect handler oriented
programming, which reproduces the essence of the \UNIX{} operating
system by making crucial use of effect handlers. The case study
demonstrates how effect handlers provide a high-degree of modularity
and flexibility that enable substantial behavioural changes to be
retrofitted onto programs without altering the existing the code. Thus
effect handlers provide a mechanism for building small task-oriented
programs that later can be scaled to interact with other programs in a
larger context.
%
The case study also demonstrates how one might ascribe a handler
semantics to a \UNIX{}-like operating system. The resulting operating
system \OSname{} captures the essential features of a true operating
system including support for managing multiple concurrent user
environments simultaneously, process parallelism, file I/O. The case
study also shows how each feature can be implemented in terms of some
standard effect.
Chapter~\ref{ch:handler-calculi} presents the design of a core Chapter~\ref{ch:handler-calculi} presents the design of a core
calculus that forms the basis for Links, which is a practical calculus that forms the basis for Links, which is a practical
programming language with deep, shallow, and parameterised effect programming language with deep, shallow, and parameterised effect
@ -16546,9 +16564,9 @@ two functions may introduce arbitrary effects that need to be handled
accordingly. Alternatively, a composition of any two functions may accordingly. Alternatively, a composition of any two functions may
inadvertently eliminate arbitrary effects, and as such, programming inadvertently eliminate arbitrary effects, and as such, programming
with effect handlers without an effect system is prone to error. The with effect handlers without an effect system is prone to error. The
\UNIX{} case study in Chapter~\ref{ch:ehop} demonstrates how
the effect system assists to ensure that effectful function
compositions are meaningful.
\UNIX{} case study in Chapter~\ref{ch:ehop} demonstrates how the
effect system assists to ensure that effectful function compositions
are meaningful.
The particular effect system that I have used throughout this The particular effect system that I have used throughout this
dissertation is based on \citeauthor{Remy93}-style row polymorphism dissertation is based on \citeauthor{Remy93}-style row polymorphism
@ -16581,23 +16599,10 @@ $\dec{map}$ do not duplicate information. Rather than back-patching
the effect system in hindsight, a possibly better approach is to the effect system in hindsight, a possibly better approach is to
design the effect system for practical programming from the ground up design the effect system for practical programming from the ground up
as \citet{LindleyMM17} did for the Frank programming language. as \citet{LindleyMM17} did for the Frank programming language.
%
Nevertheless, the \UNIX{} case study is indicative of the syntactic Nevertheless, the \UNIX{} case study is indicative of the syntactic
sugar being adequate in practice to build larger effect-oriented sugar being adequate in practice to build larger effect-oriented
applications. The case study demonstrates how effect handlers provide
a high-degree of modularity and flexibility that enable substantial
behavioural changes to be retrofitted onto programs without altering
the existing the code. Thus effect handlers provide a mechanism for
building small task-oriented programs that later can be scaled to
interact with other programs in a larger context.
%
The case study also demonstrates how one might ascribe a handler
semantics to a \UNIX{}-like operating system. The resulting operating
system \OSname{} captures the essential features of a true operating
system including support for managing multiple concurrent user
environments simultaneously, process parallelism, file I/O. The case
study also shows how each feature can be implemented in terms of some
standard effect.
applications.
\subsection{Future work} \subsection{Future work}

Loading…
Cancel
Save