|
@@ -131,6 +131,8 @@ Need to give thanks to
|
|
|
%``This is a quote and I don't know who said this.''
|
|
|
%\end{chapquote}
|
|
|
|
|
|
+\section{The $S_0$ Language}
|
|
|
+
|
|
|
The $S_0$ language includes integers, operations on integers,
|
|
|
(arithmetic and input), and variable definitions. The syntax of the
|
|
|
$S_0$ language is defined by the grammar in
|
|
@@ -148,7 +150,7 @@ a few small helper functions that together span 256 lines of code.
|
|
|
\[
|
|
|
\begin{array}{lcl}
|
|
|
\Op &::=& \key{+} \mid \key{-} \mid \key{*} \mid \key{read} \\
|
|
|
- \Exp &::=& \Int \mid (\Op \; \Exp^{+}) \mid \Var \mid \LET{\Var}{\Exp}{\Exp}
|
|
|
+ \Exp &::=& \Int \mid (\Op \; \Exp^{*}) \mid \Var \mid \LET{\Var}{\Exp}{\Exp}
|
|
|
\end{array}
|
|
|
\]
|
|
|
\end{minipage}
|
|
@@ -526,6 +528,42 @@ when it gets to a variable reference, so we add another paramter to
|
|
|
\label{ch:register-allocation}
|
|
|
|
|
|
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+\chapter{Booleans, Conditions, and Type Checking}
|
|
|
+\label{ch:bool-types}
|
|
|
+
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+\chapter{Tuples and Heap Allocation}
|
|
|
+\label{ch:tuples}
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+\chapter{Functions}
|
|
|
+\label{ch:functions}
|
|
|
+
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+\chapter{Lexically Scoped Functions}
|
|
|
+\label{ch:lambdas}
|
|
|
+
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+\chapter{The Dynamic Type}
|
|
|
+\label{ch:type-dynamic}
|
|
|
+
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+\chapter{Mutable Lists}
|
|
|
+\label{ch:mutable-lists}
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+\chapter{Parametric Polymorphism}
|
|
|
+\label{ch:parametric-polymorphism}
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+\chapter{High-level Optimization}
|
|
|
+\label{ch:high-level-optimization}
|
|
|
+
|
|
|
|
|
|
\bibliographystyle{plainnat}
|
|
|
\bibliography{all}
|