mirror of
https://github.com/dhil/phd-dissertation
synced 2026-03-13 02:58:26 +00:00
WIP
This commit is contained in:
62
thesis.bib
62
thesis.bib
@@ -1413,6 +1413,13 @@
|
||||
year = {2010}
|
||||
}
|
||||
|
||||
@book{Dybvig03,
|
||||
author = {R. Kent Dybvig},
|
||||
title = {The {Scheme} Programming Language, Third Edition},
|
||||
publisher = {{MIT} Press},
|
||||
year = {2003}
|
||||
}
|
||||
|
||||
# Haskell
|
||||
@misc{JonesABBBFHHHHJJLMPRRW99,
|
||||
author = {Simon Peyton Jones
|
||||
@@ -3267,3 +3274,58 @@
|
||||
pages = {1--32},
|
||||
year = {2003}
|
||||
}
|
||||
|
||||
# Undelimited control is insufficient to express mutable state
|
||||
@techreport{FriedmanS00,
|
||||
author = {Daniel P. Friedman and Amr Sabry},
|
||||
title = {Recursion is a Computational Effect},
|
||||
institution = {Computer Science Department, Indiana University},
|
||||
address = {Bloomington, Indiana 47405, USA},
|
||||
type = {Technical report},
|
||||
number = {546},
|
||||
year = {200},
|
||||
}
|
||||
|
||||
# Fortran
|
||||
@inproceedings{BackusBBGHHNSSS57,
|
||||
author = {John W. Backus and
|
||||
Robert J. Beeber and
|
||||
Sheldon Best and
|
||||
Richard Goldberg and
|
||||
Lois M. Haibt and
|
||||
Harlan L. Herrick and
|
||||
Robert A. Nelson and
|
||||
David Sayre and
|
||||
Peter B. Sheridan and
|
||||
H. Stern and
|
||||
Irving Ziller and
|
||||
Robert A. Hughes and
|
||||
R. Nutt},
|
||||
title = {The {FORTRAN} automatic coding system},
|
||||
booktitle = {{IRE-AIEE-ACM} Computer Conference (Western)},
|
||||
pages = {188--198},
|
||||
publisher = {{ACM}},
|
||||
year = {1957}
|
||||
}
|
||||
|
||||
# Algol
|
||||
@article{BackusBGKMPRSVWWW60,
|
||||
author = {John W. Backus and
|
||||
Friedrich L. Bauer and
|
||||
Julien Green and
|
||||
C. Katz and
|
||||
John McCarthy and
|
||||
Alan J. Perlis and
|
||||
Heinz Rutishauser and
|
||||
Klaus Samelson and
|
||||
Bernard Vauquois and
|
||||
Joseph Henry Wegstein and
|
||||
Adriaan van Wijngaarden and
|
||||
Michael Woodger},
|
||||
title = {Report on the algorithmic language {ALGOL} 60},
|
||||
journal = {Commun. {ACM}},
|
||||
volume = {3},
|
||||
number = {5},
|
||||
pages = {299--314},
|
||||
year = {1960}
|
||||
}
|
||||
|
||||
39
thesis.tex
39
thesis.tex
@@ -435,14 +435,45 @@ effectful programming through the lens of a singular effect, namely,
|
||||
global mutable state.
|
||||
|
||||
\subsection{Early days of direct-style}
|
||||
%
|
||||
Programming in its infancy was effectful as the idea of first-class
|
||||
control was conceived already during the design of the programming
|
||||
language Algol~\cite{BackusBGKMPRSVWWW60} -- one of the early
|
||||
high-level programming languages along with
|
||||
Fortran~\cite{BackusBBGHHNSSS57} and Lisp~\cite{McCarthy60} -- when
|
||||
\citet{Landin98} sought to model unrestricted goto-style jumps using
|
||||
an extended $\lambda$-calculus. The nature of \citeauthor{Landin98}'s
|
||||
control facility is undelimited; its power was recognised early by
|
||||
\citet{Burstall69}, who used it to implement a thread scheduler.
|
||||
%
|
||||
\citeauthor{Landin98}'s control facility did not gain popularity as a
|
||||
practical programming abstraction~\cite{Felleisen87b}.
|
||||
|
||||
It is well-known that $\Callcc$ exhibits both time and space
|
||||
performance problems for various implementing various
|
||||
effects~\cite{Kiselyov12}.
|
||||
%
|
||||
% The power of \citeauthor{Landin98}'s control facility was recognised early The nature of the first-class control introduced by
|
||||
% \citeauthor{Landin98} was undelimited. However,
|
||||
|
||||
% The early high-level programming languages
|
||||
% Fortran~\cite{BackusBBGHHNSSS57}, Algol~\cite{BackusBGKMPRSVWWW60},
|
||||
% and Lisp~\cite{McCarthy60} all hard-wire a particular set of effects
|
||||
% into their semantics. The usage of effects in these languages is
|
||||
% completely untracked, although, the languages belonging to the Lisp
|
||||
% family have adopted a naming convention to suffix names of
|
||||
% side-effecting operations with exclamation points, e.g. the state
|
||||
% modification operation is named $\keyw{set!}$~\cite{Dybvig03}.
|
||||
|
||||
% The idea of undelimited first-class control was conceived during the
|
||||
% development of Algol~\cite{Landin65,Landin65a,Landin98}. The probably
|
||||
% most famous form of undelimited control, $\Callcc$, appeared
|
||||
% later~\cite{AbelsonHAKBOBPCRFRHSHW85}.
|
||||
|
||||
% It is well-known that $\Callcc$ exhibits both time and space
|
||||
% performance problems for various implementing various
|
||||
% effects~\cite{Kiselyov12}.
|
||||
%
|
||||
\subsubsection{Builtin mutable state}
|
||||
It is common to find mutable state builtin into the semantics of
|
||||
mainstream programming language. However, different languages vary in
|
||||
mainstream programming languages. However, different languages vary in
|
||||
their approach to mutable state. For instance, state mutation
|
||||
underpins the foundations of imperative programming languages
|
||||
belonging to the C family of languages. They do typically not
|
||||
|
||||
Reference in New Issue
Block a user