X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=Chapters%2FIntroduction.tex;h=f6e65f9f5a02a572b1ff4576ef46930f3ed6924b;hp=1b24aced17e7153e055e276fe6393e0ee839deb1;hb=efc1953cd015844a2d969a9c9b6e633569891033;hpb=ecb1b7d79982a225260129766fb3c97a62bd22e1 diff --git a/Chapters/Introduction.tex b/Chapters/Introduction.tex index 1b24ace..f6e65f9 100644 --- a/Chapters/Introduction.tex +++ b/Chapters/Introduction.tex @@ -7,10 +7,10 @@ connect these worlds and puts a step towards making hardware programming on the whole easier, more maintainable and generally more pleasant. This assignment has been performed in close cooperation with Christiaan -Baaij, whose Master's thesis \cite[baaij09] has been completed at the +Baaij, whose Master's thesis \cite[baaij09]\ has been completed at the same time as this thesis. Where this thesis focuses on the interpretation of the Haskell language and the compilation process, -\cite[baaij09] has a more thorough study of the field, explores more +\cite[baaij09]\ has a more thorough study of the field, explores more advanced types and provides a case study. % Use \subject to hide this section from the toc @@ -24,7 +24,7 @@ advanced types and provides a case study. As a motivating example, consider the simple functional program shown in \in{example}[ex:AndWord]\footnote[notfinalsyntax]{This example is not in the final Cλash syntax}. This is a very natural way to describe a lot of parallel not - ports, that perform a bitwise not on a bitvector. The example also shows an + ports, that perform a bit-wise not on a bit-vector. The example also shows an image of the architecture described. \startbuffer[AndWord] @@ -72,11 +72,11 @@ advanced types and provides a case study. \stopcombination Slightly more complicated is the incremental summation of - values show in \in{example}[ex:RecursiveSum]\note[notfinalsyntax]. + values shown in \in{example}[ex:RecursiveSum]\note[notfinalsyntax]. In this example we see a recursive function \hs{sum'} that recurses over a list and takes an accumulator argument that stores the sum so far. On each - step of the recusion, another number from the input vector is added to the + step of the recursion, another number from the input vector is added to the accumulator and each intermediate step returns its result. This is a nice description of a series of sequential adders that produce @@ -204,13 +204,13 @@ advanced types and provides a case study. \stopquotation \setupquotation[style=normal,spacebefore=] - We can further split this into subquestions from a hardware perspective: + We can further split this into sub-questions from a hardware perspective: \startitemize \item How can we describe a stateful design? \item How can we describe (hierarchical) structure in a design? \stopitemize - And subquestions from a functional perspective: + And sub-questions from a functional perspective: \startitemize \item How to interpret recursion in descriptions? \item How to interpret polymorphism? @@ -236,6 +236,8 @@ advanced types and provides a case study. Systems). The lambda in the name is of course a reference to the lambda abstraction, which is an essential element of most functional languages (and is also prominent in the Haskell logo). + + Cλash is pronounced like \quote{Clash}. \stopframedtext } @@ -262,7 +264,7 @@ hardware descriptions, Haskell. The possibilities and limits of this prototype are further explored. During the creation of the prototype, it became apparent that some structured -way of doing program transformations was required. Doing ad-hoc interpretation +way of doing program transformations was required. Doing ad hoc interpretation of the hardware description proved non-scalable. These transformations and their application are the subject of the fourth chapter.