Add image of the compiler pipeline and fix some spelling errors
authorChristiaan Baaij <baaijcpr@wlan228123.mobiel.utwente.nl>
Fri, 26 Feb 2010 09:17:24 +0000 (10:17 +0100)
committerChristiaan Baaij <baaijcpr@wlan228123.mobiel.utwente.nl>
Fri, 26 Feb 2010 09:17:24 +0000 (10:17 +0100)
cλash.lhs

index 6f158b5edc0b4e04357e51977bfb7a6ca8ab9e3f..b43aca82384bfb88c678106dc94b2f1ca7ee3bef 100644 (file)
@@ -810,8 +810,8 @@ by an (optimizing) \VHDL\ synthesis tool.
         % value.
       \item[\bf{Multiple constructors with fields}]
         Algebraic datatypes with multiple constructors, where at least
         % value.
       \item[\bf{Multiple constructors with fields}]
         Algebraic datatypes with multiple constructors, where at least
-        one of these constructors has one or more fields are not
-        currently supported.
+        one of these constructors has one or more fields are currently not 
+        supported.
     \end{xlist}
 
   \subsection{Polymorphism}
     \end{xlist}
 
   \subsection{Polymorphism}
@@ -1013,18 +1013,23 @@ by an (optimizing) \VHDL\ synthesis tool.
     
 \section{\CLaSH\ prototype}
 
     
 \section{\CLaSH\ prototype}
 
-The \CLaSH language as presented above can be translated to \VHDL using
-the prototype \CLaSH compiler. This compiler allows experimentation with
-the \CLaSH language and allows for running \CLaSH designs on actual FPGA
+The \CLaSH\ language as presented above can be translated to \VHDL\ using
+the prototype \CLaSH\ compiler. This compiler allows experimentation with
+the \CLaSH\ language and allows for running \CLaSH\ designs on actual FPGA
 hardware.
 
 hardware.
 
-\comment{Add clash pipeline image}
-The prototype heavily uses \GHC, the Glasgow Haskell Compiler. Figure
-TODO shows the \CLaSH compiler pipeline. As you can see, the frontend
-is completely reused from \GHC, which allows the \CLaSH prototype to
-support most of the Haskell Language. The \GHC frontend produces the
-program in the \emph{Core} format, which is a very small, functional,
-typed language which is relatively easy to process.
+\begin{figure}
+\centerline{\includegraphics{compilerpipeline.svg}}
+\caption{\CLaSH\ compiler pipeline}
+\label{img:compilerpipeline}
+\end{figure}
+
+The prototype heavily uses \GHC, the Glasgow Haskell Compiler. 
+\Cref{img:compilerpipeline} shows the \CLaSH\ compiler pipeline. As you can 
+see, the front-end is completely reused from \GHC, which allows the \CLaSH\ 
+prototype to support most of the Haskell Language. The \GHC\ front-end 
+produces the program in the \emph{Core} format, which is a very small, 
+functional, typed language which is relatively easy to process.
 
 The second step in the compilation process is \emph{normalization}. This
 step runs a number of \emph{meaning preserving} transformations on the
 
 The second step in the compilation process is \emph{normalization}. This
 step runs a number of \emph{meaning preserving} transformations on the
@@ -1146,7 +1151,7 @@ synchronous and untimed models of computation. Using so-called domain
 interfaces a designer can simulate electronic systems which have both analog 
 as digital parts. ForSyDe has several simulation and  synthesis backends, 
 though synthesis is restricted to the synchronous subset of the ForSyDe 
 interfaces a designer can simulate electronic systems which have both analog 
 as digital parts. ForSyDe has several simulation and  synthesis backends, 
 though synthesis is restricted to the synchronous subset of the ForSyDe 
-language. Unlike \CLaSH\ there is no support for the automated synthesis of description that contain polymorphism or higher-order functions.
+language. Unlike \CLaSH\ there is no support for the automated synthesis of descriptions that contain polymorphism or higher-order functions.
 
 Lava~\cite{Lava} is a hardware description language that focuses on the 
 structural representation of hardware. Besides support for simulation and 
 
 Lava~\cite{Lava} is a hardware description language that focuses on the 
 structural representation of hardware. Besides support for simulation and