Replace a starttyping with starthaskell.
[matthijs/master-project/report.git] / Chapters / Context.tex
index 45c16864d17abc38cb0f0a114abce1a5c1527c60..7c256da703a056ddad87c6901c7ad34b070c1fe7 100644 (file)
   this not been done before?}. Using a functional language for describing hardware
   is not a new idea at all. In fact, there has been research into functional
   hardware description even before the conventional hardware description
-  languages were created. Examples of these are µFP \cite[sheeran83] and
+  languages were created. Examples of these are µFP \cite[sheeran83]\ and
   Ruby \cite[jones90]. Functional languages were not nearly as advanced
   as they are now, and functional hardware description never really got
   off. 
 
   Recently, there have been some renewed efforts, especially using the
-  Haskell functional language. Examples are Lava \cite[claessen00] (an
-  \small{EDSL}) and ForSyde \cite[sander04] (an \small{EDSL} using
-  Template Haskell). \cite[baaij09] has a more complete overview of the
+  Haskell functional language. Examples are Lava \cite[claessen00]\ (an
+  \small{EDSL}) and ForSyde \cite[sander04]\ (an \small{EDSL} using
+  Template Haskell). \cite[baaij09]\ has a more complete overview of the
   current field.
 
   We will now have a look at the existing hardware description languages,
@@ -80,7 +80,7 @@
     embedded functional hardware description languages (in particular
     those using Haskell) are limited. Below a number of downsides are
     sketched of the recent attempts using the Haskell language.
-    \cite[baaij09] has a more complete overview of these and other
+    \cite[baaij09]\ has a more complete overview of these and other
     languages.
     
     This list uses Lava and ForSyDe as examples, but tries to generalize
@@ -95,7 +95,7 @@
       \stopalignment
       \blank[medium]
       
-      Template Haskell is an extension to the \GHC compiler that allows
+      Template Haskell is an extension to the \GHC\ compiler that allows
       a program to mark some parts to be evaluated \emph{at compile
       time}. These \emph{templates} can then access the abstract syntax
       tree (\small{AST}) of the program that is being compiled and
       with an \small{EDSL} approach, it can get confusing when to use
       \small{TH} and when not to.
       \item Function hierarchies cannot be observed in an \small{EDSL}.
-      For example, Lava generates a single flat \VHDL architecture,
+      For example, Lava generates a single flat \VHDL\ architecture,
       which has no structure whatsoever. Even though this is strictly
       correct, it offers no support to the synthesis software about
       which parts of the system can best be placed together and makes