X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=Chapters%2FContext.tex;h=f07f1d9cd8a13da4052001a9232315fd8f4830d4;hp=1b0268922932952500644424fb3916268881fef6;hb=124f838008d9e63d36d6626ebeb453d9f83129dc;hpb=35591e39c83f658310c07ad580d19b2a53910a72 diff --git a/Chapters/Context.tex b/Chapters/Context.tex index 1b02689..f07f1d9 100644 --- a/Chapters/Context.tex +++ b/Chapters/Context.tex @@ -1,6 +1,6 @@ \chapter[chap:context]{Context} An obvious question that arises when starting any research is \quote{Has - this not been done before?} Using a functional language for describing hardware + 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. \todo{Reference about early FHDLs} However, @@ -17,7 +17,7 @@ code after compilation, or using Template Haskell to inspect parts of the code you have written). This allows the full power of Haskell for generating a circuit. However it also creates severe limitations in the use of the - language (you can't use case statements in Lava, since they would be + language (you can't use case expressions in Lava, since they would be executed only once during circuit generation) and extra notational overhead. We will now have a look at the existing hardware description languages, @@ -86,10 +86,10 @@ variables (\eg, using the same variable twice while only calculating it once) and cycles in circuits are non-trivial to properly and safely translate (though there is some work to fix this, but that has not been - possible in a completely reliable way yet. \cite[gill09] + possible in a completely reliable way yet \cite[gill09]). \item Some things are verbose to express. Especially ForSyDe suffers from a lot of notational overhead due to the Template Haskell approach - used. Since conditional statements are not supported, a lot of Haskell's + used. Since conditional expressions are not supported, a lot of Haskell's syntax sugar (if expressions, pattern matching, guards) cannot be used either, leading to more verbose notation as well. \item Polymorphism and higher order values are not supported within the @@ -99,10 +99,10 @@ programmers), but the described circuits do not have any polymorphism or higher order functions, which can be limiting. \todo{How true or appropriate is this point?} - \todo[left]{Function structure gets lost (in Lava)} + \todo{Function structure gets lost (in Lava)} \stopitemize - \todo[text]{Complete translation in TH is complex: Works with Haskell AST + \todo{Complete translation in TH is complex: Works with Haskell AST instead of Core} % vim: set sw=2 sts=2 expandtab: