+++ /dev/null
-%************************************************************************
-%* *
-\subsection{The back end of the compiler}
-\label{sec:back-end}
-%* *
-%************************************************************************
-
-The back end of the compiler begins once the typechecker's
-output has been desugared into the so-called Core syntax. Core syntax
-is discussed in Section~\ref{sec:core-syntax}.
-
-We intend the back end to be a sequence of highly effective
-CoreSyntax-to-CoreSyntax and STGsyntax-to-STGsyntax transformation
-passes, making it possible for the
-CoreSyntax$\Rightarrow$StgSyntax$\Rightarrow$Abstract~C (and on to
-machine code) denouement to produce really good code.
-
-{\em It is with these transformation passes that we are hoping for
-your enthusiastic help!} There are also some examples in the
-GHC distribution, written by people other than the original compiler
-authors---so it can be done...
-
-We already have a pretty good {\em simplifier}\srcloc{simplCore/} to
-do local transformations, written mainly by Andr\'e Santos. Among
-other things, it unfolds basic arithmetic operations and constants,
-exposing the underlying unboxed values. Those interested in the
-merits of these transformations should consult Peyton Jones and
-Launchbury's paper, ``Unboxed values as first class citizens in a
-non-strict functional language'' \cite{peyton-jones91b}.
-
-The reader interested in the final code-generation parts of the
-compiler, from Core syntax to STG syntax\srcloc{stgSyn/CoreToStg.lhs}
-to Abstract~C\srcloc{codeGen/}, should consult Peyton Jones's recent
-paper, ``Implementing lazy functional languages on stock hardware: the
-Spineless Tagless G-machine'' \cite{peyton-jones92a}.
-
-Further note: We have found that the STG
-syntax\srcloc{stgSyn/StgSyn.lhs} is the better medium for a few
-transformations\srcloc{stgSyn/SimplStg.lhs}. This is fine---STG syntax
-is a just-as-manipulable functional language as Core syntax, even if
-it's a bit messier.