|
@@ -343,7 +343,8 @@ descriptions of \citet{Dybvig:2010aa}. In the mid 2000's a student of
|
|
|
Dybvig's named Abdulaziz Ghuloum observed that the front-to-back
|
|
|
organization of the course made it difficult for students to
|
|
|
understand the rationale for the compiler design. Ghuloum proposed the
|
|
|
-incremental approach~\citep{Ghuloum:2006bh}.
|
|
|
+incremental approach~\citep{Ghuloum:2006bh} that this book is based
|
|
|
+on.
|
|
|
|
|
|
We thank the many students who served as teaching assistants for the
|
|
|
compiler course at IU and made suggestions for improving the book
|
|
@@ -358,9 +359,9 @@ Near, Ryan Newton, Nate Nystrom, Andrew Tolmach, and Michael Wollowski
|
|
|
for teaching courses based on early drafts of this book and for their
|
|
|
invaluable feedback.
|
|
|
|
|
|
-We thank Ronald Garcia helping Jeremy survive Dybvig's compiler course
|
|
|
-in the early 2000's and especially for finding the bug that sent the
|
|
|
-garbage collector on a wild goose chase!
|
|
|
+We thank Ronald Garcia for helping Jeremy survive Dybvig's compiler
|
|
|
+course in the early 2000's and especially for finding the bug that
|
|
|
+sent the garbage collector on a wild goose chase!
|
|
|
|
|
|
\mbox{}\\
|
|
|
\noindent Jeremy G. Siek \\
|
|
@@ -1243,12 +1244,12 @@ $52$ then $10$, the following produces $42$ (not $-42$).
|
|
|
\subsection{Extensible Interpreters via Method Overriding}
|
|
|
\label{sec:extensible-interp}
|
|
|
|
|
|
-To prepare for discussing the interpreter for \LangVar{}, we need to
|
|
|
-explain why we choose to implement the interpreter using
|
|
|
+To prepare for discussing the interpreter for \LangVar{}, we
|
|
|
+explain why we to implement the interpreter using
|
|
|
object-oriented programming, that is, as a collection of methods
|
|
|
inside of a class. Throughout this book we define many interpreters,
|
|
|
one for each of the languages that we study. Because each language
|
|
|
-builds on the prior one, there is a lot of commonality between their
|
|
|
+builds on the prior one, there is a lot of commonality between these
|
|
|
interpreters. We want to write down those common parts just once
|
|
|
instead of many times. A naive approach would be to have, for example,
|
|
|
the interpreter for \LangIf{} handle all of the new features in that
|