|
@@ -5493,7 +5493,7 @@ in Figure~\ref{fig:Rif-syntax}. The \LangIf{} language includes all of
|
|
\code{\#f}, and the conditional \code{if} expression. We expand the
|
|
\code{\#f}, and the conditional \code{if} expression. We expand the
|
|
operators to include
|
|
operators to include
|
|
\begin{enumerate}
|
|
\begin{enumerate}
|
|
-\item subtraction on integers \ocaml{OCaml version already had thes},
|
|
|
|
|
|
+\item subtraction on integers \ocaml{(OCaml version already had this)},
|
|
\item the logical operators \key{and}, \key{or} and \key{not},
|
|
\item the logical operators \key{and}, \key{or} and \key{not},
|
|
\item the \key{eq?} operation for comparing two integers or two Booleans, and
|
|
\item the \key{eq?} operation for comparing two integers or two Booleans, and
|
|
\item the \key{<}, \key{<=}, \key{>}, and \key{>=} operations for
|
|
\item the \key{<}, \key{<=}, \key{>}, and \key{>=} operations for
|
|
@@ -6342,7 +6342,11 @@ labeled sequence of code, called a \emph{basic block}, and each edge
|
|
represents a jump to another block. The \key{CProgram} construct of
|
|
represents a jump to another block. The \key{CProgram} construct of
|
|
\LangCVar{} and \LangCIf{} contains a control flow graph represented
|
|
\LangCVar{} and \LangCIf{} contains a control flow graph represented
|
|
as an alist mapping labels to basic blocks. Each basic block is
|
|
as an alist mapping labels to basic blocks. Each basic block is
|
|
-represented by the $\Tail$ non-terminal.
|
|
|
|
|
|
+represented by the $\Tail$ non-terminal. \ocaml{It is
|
|
|
|
+ a little confusing to call this representation a CFG, since it
|
|
|
|
+ does not make the flow edges explicit (they have to be deduced by looking
|
|
|
|
+ inside the $\Tail$s). When we get to register assignment for \LangCIf{},
|
|
|
|
+ we will construct a more explicit CFG data structure.}
|
|
|
|
|
|
Figure~\ref{fig:explicate-control-s1-38} shows the output of the
|
|
Figure~\ref{fig:explicate-control-s1-38} shows the output of the
|
|
\code{remove-complex-opera*} pass and then the
|
|
\code{remove-complex-opera*} pass and then the
|