X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fdocs%2Fadd_to_compiler%2Fback-end.verb;fp=ghc%2Fdocs%2Fadd_to_compiler%2Fback-end.verb;h=0000000000000000000000000000000000000000;hb=5eb1c77c795f92ed0f4c8023847e9d4be1a4fd0d;hp=4af96e6acdef30a480fe4af99c891539c51bd74a;hpb=f7ecf7234c224489be8a5e63fced903b655d92ee;p=ghc-hetmet.git diff --git a/ghc/docs/add_to_compiler/back-end.verb b/ghc/docs/add_to_compiler/back-end.verb deleted file mode 100644 index 4af96e6..0000000 --- a/ghc/docs/add_to_compiler/back-end.verb +++ /dev/null @@ -1,41 +0,0 @@ -%************************************************************************ -%* * -\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.