diff --git a/xml/chapter2/section3/subsection4.xml b/xml/chapter2/section3/subsection4.xml
index ebfffc325..bf176a3ab 100644
--- a/xml/chapter2/section3/subsection4.xml
+++ b/xml/chapter2/section3/subsection4.xml
@@ -235,12 +235,7 @@ BACADAEAFABBAAAGAH
there is only one node left, which is the root of the entire tree.
Here is how the Huffman tree of figure was
generated:
-
-
-
-
-
-
-
-
+
The algorithm does not always specify a unique tree, because there may
not be unique smallest-weight nodes at each step. Also, the choice of
the order in which the two nodes are merged (i.e., which will be the
@@ -1052,12 +1045,7 @@ equal(sample_tree,
rock songs, 1950s
rock songs. (Note that the symbols of an
alphabet need not be individual letters.)
-
-
-
-
-
-
+
A
@@ -1128,9 +1116,7 @@ equal(sample_tree,
1
-
-
-
+
Use
generate-huffman-tree
diff --git a/xml/chapter3/section1/subsection3.xml b/xml/chapter3/section1/subsection3.xml
index 101b341e2..f4a44a220 100644
--- a/xml/chapter3/section1/subsection3.xml
+++ b/xml/chapter3/section1/subsection3.xml
@@ -1045,6 +1045,7 @@ paul_acc("withdraw", "rosebud")(50); // Withdraws 50, should return 40
+
When we defined the evaluation model in
section, we said that the
order of evaluationJavaScriptin JavaScript
diff --git a/xml/chapter3/section2/section2.xml b/xml/chapter3/section2/section2.xml
index b69abbc1d..cb83d85d0 100644
--- a/xml/chapter3/section2/section2.xml
+++ b/xml/chapter3/section2/section2.xml
@@ -303,4 +303,7 @@
&subsection3.2.4;
+
+ &subsection3.2.5;
+
diff --git a/xml/chapter3/section2/subsection5.xml b/xml/chapter3/section2/subsection5.xml
new file mode 100644
index 000000000..8e66d0500
--- /dev/null
+++ b/xml/chapter3/section2/subsection5.xml
@@ -0,0 +1,52 @@
+
+
+ CSE Machine
+
+
+
+ CSE machine
+
+
+
+
+ The environment model as presented so far focuses on how functions can refer
+ to their parameters, locally declared names, and names that are declared
+ outside the function. We achieve this by evaluating statements and expressions
+ with respect to a current environment. It does not specify how
+ we keep track of environments as computation proceeds. For example, when we
+ evaluate an expression f(x) + y, we
+ need to evaluate x in the current
+ environment, establish as the new current environment the environment of
+ f extended by a binding of its
+ parameter to the value of x, and
+ evaluate the body of f in this
+ extended environment. But what environment should we use for evaluating
+ y after
+ f returns?
+ In this section, we extend the
+
+
+ Evaluating arithmetic expressions
+
+
+ Exercise shows that the presence of
+ assignments makes the result of a program depend on the order in which
+ the operands of an operator combination are evaluated. To remove
+ ambiguities that arise from this, the JavaScript standard specifies
+ left-to-right evaluation of operands.
+
+ As an example, consider the evaluation of the arithmetic expression statement
+
+
+1 + (2 * 3);
+
+
+ The expression is decomposed into its operands
+ 1 and
+ 2 * 3, followed by the
+ instruction to add their results.
+
+ CSE machine
+
+
+
diff --git a/xml/chapter3/section5/subsection2.xml b/xml/chapter3/section5/subsection2.xml
index 26eb77fde..505fa44b0 100644
--- a/xml/chapter3/section5/subsection2.xml
+++ b/xml/chapter3/section5/subsection2.xml
@@ -578,7 +578,15 @@ const fibs = pair(0,
by adding fibs to itself shifted by one place:
-
+
+\[
+\begin{array}{ccccccccccccl}
+ & & 1 & 1 & 2 & 3 & 5 & 8 & 13 & 21 & \ldots & = & \texttt{(stream-cdr fibs)} \\
+ & & 0 & 1 & 1 & 2 & 3 & 5 & 8 & 13 & \ldots & = & \texttt{fibs} \\ \hline
+0 & 1 & 1 & 2 & 3 & 5 & 8 & 13 & 21 & 34 & \ldots & = & \texttt{fibs}
+\end{array}
+\]
+
diff --git a/xml/chapter5/section5/subsection1.xml b/xml/chapter5/section5/subsection1.xml
index 643606844..161b5da75 100644
--- a/xml/chapter5/section5/subsection1.xml
+++ b/xml/chapter5/section5/subsection1.xml
@@ -514,7 +514,16 @@ go_to(reg("continue"))
-
+ \[
+ \begin{array}{l|l|l|l}
+ \textit{seq}_1 & \texttt{(save}\ \textit{reg}_1\texttt{)} & \texttt{(save}\ \textit{reg}_2\texttt{)} & \texttt{(save}\ \textit{reg}_2\texttt{)} \\
+ \textit{seq}_2 & \textit{seq}_1 & \textit{seq}_1 & \texttt{(save}\ \textit{reg}_1\texttt{)} \\
+ & \texttt{(restore}\ \textit{reg}_1\texttt{)} & \texttt{(restore}\ \textit{reg}_2\texttt{)} & \textit{seq}_1 \\
+ & \textit{seq}_2 & \textit{seq}_2 & \texttt{(restore}\ \textit{reg}_1\texttt{)} \\
+ & & & \texttt{(restore}\ \textit{reg}_2\texttt{)} \\
+ & & & \textit{seq}_2
+ \end{array}
+ \]
@@ -525,7 +534,7 @@ go_to(reg("continue"))
& \texttt{restore(}\textit{reg}_1\texttt{),} & \texttt{restore(}\textit{reg}_2\texttt{),} & \textit{seq}_1 \\
& \textit{seq}_2 & \textit{seq}_2 & \texttt{restore(}\textit{reg}_1\texttt{),} \\
& & & \texttt{restore(}\textit{reg}_2\texttt{),} \\
- & & & \textit{seq}_2
+ & & & \textit{seq}_2
\end{array}
\]