|
@@ -730,7 +730,7 @@ specification of the language. For example, the Scheme language is
|
|
|
defined in the report by \cite{SPERBER:2009aa}. The Racket language is
|
|
|
defined in its reference manual~\citep{plt-tr}. In this book we use an
|
|
|
interpreter to define the meaning of each language that we consider,
|
|
|
-following Reynold's advice in this
|
|
|
+following Reynolds' advice in this
|
|
|
regard~\citep{reynolds72:_def_interp}. Here we warm up by writing an
|
|
|
interpreter for the $R_0$ language, which serves as a second example
|
|
|
of structural recursion. The \texttt{interp-R0} function is defined in
|
|
@@ -968,8 +968,8 @@ identifier. As in $R_0$, \key{read} is a nullary operator, \key{-} is
|
|
|
a unary operator, and \key{+} is a binary operator. Similar to $R_0$,
|
|
|
the $R_1$ language includes the \key{program} construct to mark the
|
|
|
top of the program, which is helpful in parts of the compiler. The
|
|
|
-$\itm{info}$ field of the \key{program} construct contain an
|
|
|
-association list that is used to communicating auxiliary data from one
|
|
|
+$\itm{info}$ field of the \key{program} construct contains an
|
|
|
+association list that is used to communicate auxiliary data from one
|
|
|
step of the compiler to the next.
|
|
|
|
|
|
The $R_1$ language is rich enough to exhibit several compilation
|