Browse Source

References for OCaml, Scheme, and proper tail recursion.

master
Daniel Hillerström 5 years ago
parent
commit
e623e1ecd0
  1. 35
      thesis.bib
  2. 8
      thesis.tex

35
thesis.bib

@ -769,6 +769,28 @@
address = {Cambridge, MA, USA}, address = {Cambridge, MA, USA},
} }
# OCaml
@book{LeroyDFGRV20,
author = {Xavier Leroy and Damien Doligez and Alain Frisch and Jacques Garrigue and Didier Rémy and Jérôme Vouillon},
title = {The {OCaml} System Release 4.11: Documentation and user's manual},
year = 2020,
month = aug,
publisher = {Institut National de Recherche en Informatique et en Automatique}
}
# Scheme R6RS
@book{SperberDFSFM10,
author = {Michael Sperber and
R. Kent Dybvig and
Matthew Flatt and
Anton van Straaten and
Robert Bruce Findler and
Jacob Matthews},
title = {Revised6 Report on the Algorithmic Language Scheme},
publisher = {Cambridge University Press},
year = {2010}
}
# Timeless classics # Timeless classics
@article{Plotkin04a, @article{Plotkin04a,
author = {Gordon D. Plotkin}, author = {Gordon D. Plotkin},
@ -813,7 +835,7 @@
year = {1994} year = {1994}
} }
% Control operators
# Control operators
@article{Landin65, @article{Landin65,
author = {Peter J. Landin}, author = {Peter J. Landin},
title = {Correspondence between {ALGOL} 60 and Church's Lambda-notation: part title = {Correspondence between {ALGOL} 60 and Church's Lambda-notation: part
@ -846,7 +868,7 @@
year = {1998} year = {1998}
} }
% System F
# System F
@phdthesis{Girard72, @phdthesis{Girard72,
author = {J. Y. Girard}, author = {J. Y. Girard},
school = {Universit{\'e} Paris 7}, school = {Universit{\'e} Paris 7},
@ -875,3 +897,12 @@
year = {1989} year = {1989}
} }
# Tail calls
@inproceedings{Clinger98,
author = {William D. Clinger},
title = {Proper Tail Recursion and Space Efficiency},
booktitle = {{PLDI}},
pages = {174--185},
publisher = {{ACM}},
year = {1998}
}

8
thesis.tex

@ -881,6 +881,14 @@ bindings, pair deconstructing, and case splitting. In each of those
cases we subtract the relevant binder(s) from the set of free cases we subtract the relevant binder(s) from the set of free
variables. variables.
\paragraph{Proper tail-recursion}
Many industrial-strength functional programming languages such as
SML~\cite{MilnerTHM97}, OCaml~\cite{LeroyDFGRV20},
Scheme~\cite{SperberDFSFM10} rely heavily on being properly
tail-recursive\dots
\dhil{TODO define properly tail-recursive}
\subsection{Typing rules} \subsection{Typing rules}
\label{sec:base-language-type-rules} \label{sec:base-language-type-rules}
% %

Loading…
Cancel
Save