|
@@ -1328,7 +1328,7 @@ two examples at the bottom of the figure, the first is in
|
|
[(Program '() e) (is_exp e)]
|
|
[(Program '() e) (is_exp e)]
|
|
[else #f]))
|
|
[else #f]))
|
|
|
|
|
|
-(is_Lint (Program '() ast1_1)
|
|
|
|
|
|
+(is_Lint (Program '() ast1_1))
|
|
(is_Lint (Program '()
|
|
(is_Lint (Program '()
|
|
(Prim '* (list (Prim 'read '())
|
|
(Prim '* (list (Prim 'read '())
|
|
(Prim '+ (list (Int 8)))))))
|
|
(Prim '+ (list (Int 8)))))))
|
|
@@ -1769,7 +1769,7 @@ def pe_stmt(s):
|
|
case Expr(value):
|
|
case Expr(value):
|
|
return Expr(pe_exp(value))
|
|
return Expr(pe_exp(value))
|
|
|
|
|
|
-def pe_P_int(p):
|
|
|
|
|
|
+def pe_Lint(p):
|
|
match p:
|
|
match p:
|
|
case Module(body):
|
|
case Module(body):
|
|
new_body = [pe_stmt(s) for s in body]
|
|
new_body = [pe_stmt(s) for s in body]
|
|
@@ -2016,7 +2016,7 @@ study. Because each language builds on the prior one, there is a lot
|
|
of commonality between these interpreters. We want to write down the
|
|
of commonality between these interpreters. We want to write down the
|
|
common parts just once instead of many times. A naive interpreter for
|
|
common parts just once instead of many times. A naive interpreter for
|
|
\LangVar{} would handle the \racket{cases for variables and
|
|
\LangVar{} would handle the \racket{cases for variables and
|
|
- \code{let}} \python{case for variables} but dispatch to an
|
|
|
|
|
|
+ \code{let}}\python{case for variables} but dispatch to an
|
|
interpreter for \LangInt{} in the rest of the cases. The following
|
|
interpreter for \LangInt{} in the rest of the cases. The following
|
|
code sketches this idea. (We explain the \code{env} parameter in
|
|
code sketches this idea. (We explain the \code{env} parameter in
|
|
section~\ref{sec:interp-Lvar}.)
|
|
section~\ref{sec:interp-Lvar}.)
|
|
@@ -14846,7 +14846,7 @@ significant runtime overhead because the call to \code{collect} takes
|
|
time proportional to all the live data. One way to reduce this
|
|
time proportional to all the live data. One way to reduce this
|
|
overhead is to reduce how much data is inspected in each call to
|
|
overhead is to reduce how much data is inspected in each call to
|
|
\code{collect}. In particular, researchers have observed that recently
|
|
\code{collect}. In particular, researchers have observed that recently
|
|
-allocated data is more likely to become garbage then data that has
|
|
|
|
|
|
+allocated data is more likely to become garbage than data that has
|
|
survived one or more previous calls to \code{collect}. This insight
|
|
survived one or more previous calls to \code{collect}. This insight
|
|
motivated the creation of \emph{generational garbage collectors}
|
|
motivated the creation of \emph{generational garbage collectors}
|
|
\index{subject}{generational garbage collector} that
|
|
\index{subject}{generational garbage collector} that
|