X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=Chapters%2FContext.tex;h=1b0268922932952500644424fb3916268881fef6;hp=3c09d95316e5c9aacd4479be0af9cbc9a77a01c8;hb=35591e39c83f658310c07ad580d19b2a53910a72;hpb=4e3d6f5da20566d5061be47e803b68a72d3c7ae4 diff --git a/Chapters/Context.tex b/Chapters/Context.tex index 3c09d95..1b02689 100644 --- a/Chapters/Context.tex +++ b/Chapters/Context.tex @@ -34,7 +34,6 @@ and ability to abstract away common patterns. This is largely enabled by features like an advanced type system with polymorphism and higher order functions. - \todo{Does this apply to FHDLs equally?} \item Type-safer. Functional programs typically have a highly expressive type system, which makes it harder to write incorrect code. \item Easy to process. Functional languages have nice properties like @@ -51,7 +50,7 @@ \stopalignment \blank[medium] - \startcitedquotation[hudak96] + \startcitedquotation[deursen00] A domain-specific language (\small{DSL}) is a program- ming language or executable specification language that offers, through appropriate notations and ab- @@ -59,8 +58,6 @@ ally restricted to, a particular problem domain. \stopcitedquotation - \todo{ref: http://portal.acm.org/citation.cfm?id=352035\&dl=} - An embedded \small{DSL} is a \small{DSL} that is embedded in another language. Haskell is commonly used to embed \small{DSL}s in, which typically means a number of Haskell functions and types @@ -72,7 +69,7 @@ applicative, subset of Haskell where the library functions are the primitives. Sometimes advanced haskell features such as polymorphism, higher order values or type classes can be used in - the embedded language. + the embedded language. \cite[hudak96] \stopframedtext } @@ -89,8 +86,7 @@ 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. \todo{ref - http://www.ittc.ku.edu/~andygill/paper.php?label=DSLExtract09} + 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