|
@@ -29,6 +29,10 @@
|
|
% Computer Modern is already the default. -Jeremy
|
|
% Computer Modern is already the default. -Jeremy
|
|
%\renewcommand{\ttdefault}{cmtt}
|
|
%\renewcommand{\ttdefault}{cmtt}
|
|
|
|
|
|
|
|
+% Peanut gallery comments:
|
|
|
|
+\definecolor{comment-red}{rgb}{0.8,0,0}
|
|
|
|
+\newcommand{\rn}[1]{{\color{comment-red}{(RRN: #1)}}}
|
|
|
|
+
|
|
\lstset{%
|
|
\lstset{%
|
|
language=Lisp,
|
|
language=Lisp,
|
|
basicstyle=\ttfamily\small,
|
|
basicstyle=\ttfamily\small,
|
|
@@ -141,6 +145,9 @@ passes~\citep{Sarkar:2004fk,Keep:2012aa}. I took this compiler course
|
|
in the early 2000's, as part of my Ph.D. studies at Indiana
|
|
in the early 2000's, as part of my Ph.D. studies at Indiana
|
|
University. Needless to say, I enjoyed the course immensely.
|
|
University. Needless to say, I enjoyed the course immensely.
|
|
|
|
|
|
|
|
+\rn{I think that 1999 when I took it was the first micropass semester, and that
|
|
|
|
+ that approach preceded the infrastructure work by Dipa.}
|
|
|
|
+
|
|
One of my classmates, Abdulaziz Ghuloum, observed that the
|
|
One of my classmates, Abdulaziz Ghuloum, observed that the
|
|
front-to-back organization of the course made it difficult for
|
|
front-to-back organization of the course made it difficult for
|
|
students to understand the rationale for the compiler
|
|
students to understand the rationale for the compiler
|
|
@@ -742,6 +749,9 @@ evaluator on several examples and tests the output program. The
|
|
(test-pe `(- (+ (read) (- 5))))
|
|
(test-pe `(- (+ (read) (- 5))))
|
|
\end{lstlisting}
|
|
\end{lstlisting}
|
|
|
|
|
|
|
|
+\rn{Do we like the explicit whitespace? I've never been fond of it, in part
|
|
|
|
+ because it breaks copy/pasting. But, then again, so do most of the quotes.}
|
|
|
|
+
|
|
\begin{exercise}
|
|
\begin{exercise}
|
|
\normalfont % I don't like the italics for exercises. -Jeremy
|
|
\normalfont % I don't like the italics for exercises. -Jeremy
|
|
We challenge the reader to improve on the simple partial evaluator in
|
|
We challenge the reader to improve on the simple partial evaluator in
|
|
@@ -773,7 +783,7 @@ following grammar.
|
|
|
|
|
|
This chapter concerns the challenge of compiling a subset of Racket,
|
|
This chapter concerns the challenge of compiling a subset of Racket,
|
|
which we name $R_1$, to x86-64 assembly code~\citep{Intel:2015aa}.
|
|
which we name $R_1$, to x86-64 assembly code~\citep{Intel:2015aa}.
|
|
-(Hence force we shall refer to x86-64 simply as x86). The chapter
|
|
|
|
|
|
+(Henceforth we shall refer to x86-64 simply as x86). The chapter
|
|
begins with a description of the $R_1$ language (Section~\ref{sec:s0})
|
|
begins with a description of the $R_1$ language (Section~\ref{sec:s0})
|
|
and then a description of x86 (Section~\ref{sec:x86}). The
|
|
and then a description of x86 (Section~\ref{sec:x86}). The
|
|
x86 assembly language is quite large, so we only discuss what is
|
|
x86 assembly language is quite large, so we only discuss what is
|