Improve conclusions.
authorMatthijs Kooijman <matthijs@stdin.nl>
Fri, 4 Dec 2009 12:52:30 +0000 (13:52 +0100)
committerMatthijs Kooijman <matthijs@stdin.nl>
Fri, 4 Dec 2009 12:52:30 +0000 (13:52 +0100)
Chapters/Conclusions.tex

index 111d69c..0b37899 100644 (file)
@@ -10,16 +10,18 @@ case expressions, if expressions) are well suited to describe conditional
 assigment in the hardware.
 
 Useful features from the functional perspective, like polymorphism and higher
 assigment in the hardware.
 
 Useful features from the functional perspective, like polymorphism and higher
-order functions and expressions also prove suited to describe hardware
+order functions and expressions also prove suitable to describe hardware
 and our implementation shows that they can be translated to \VHDL as
 well.
 
 and our implementation shows that they can be translated to \VHDL as
 well.
 
-Using Haskell as as source language in this research has proven
-fruitful. It has enabled creating a prototype rapidly, to experiment
-with various language features in Cλash. Even supporting more complex
-features like polymorphism and higher order values has been possible. If
-a new language and compiler would have been designed from scratch, that
-language would not have been nearly as advanced as current Cλash.
+A prototype compiler was created in this research. For this prototype the
+Haskell language was chosen as the input language, instead of creating a new
+language from scratch. This has enabled creating the prototype rapidly,
+allowing for experimenting with various functional language features and
+interpretations in Cλash. Even supporting more complex features like
+polymorphism and higher order values has been possible. If a new language and
+compiler would have been designed from scratch, that new language would not
+have been nearly as advanced as current Cλash.
 
 However, Haskell might not have been the best choice for describing
 hardware. Some of the expressiveness it offers is not appropriate for
 
 However, Haskell might not have been the best choice for describing
 hardware. Some of the expressiveness it offers is not appropriate for
@@ -43,9 +45,9 @@ state, which allows for very clear descriptions. This also allows for
 easy modification of the description in our normalization program, since
 state can be handled just like other arguments and results. 
 
 easy modification of the description in our normalization program, since
 state can be handled just like other arguments and results. 
 
-On the other hand, the explictness of the states and in particular
+On the other hand, the explicitness of the states and in particular
 substates, mean that more complex descriptions can become cumbersome
 substates, mean that more complex descriptions can become cumbersome
-very quick One finds that dealing with unpacking, passing, receiving
+very quickly. One finds that dealing with unpacking, passing, receiving
 and repacking becomes tedious and even errorprone. Removing some of this
 boilerplate would make the language even easier to use.
 
 and repacking becomes tedious and even errorprone. Removing some of this
 boilerplate would make the language even easier to use.
 
@@ -61,18 +63,19 @@ It is expected that Cλash will be used as a tool in education at the
 University of Twente soon, hopefully this will provide a better insight
 in how the system performs.
 
 University of Twente soon, hopefully this will provide a better insight
 in how the system performs.
 
-The general design of the prototype (A frontend that desugares into a
-small, but functional and typed language, a transformation
-system that works on this small language, and a simple backend) has
-worked well and should probably be preserved. Especially the
-transformation based normalization system is suitable. It is easy to
-program a transformation in the prototype, though it is not trivial to
-maintain enough overview to guarantee that the system is correct and
-complete. In fact, the current set of transformations is probably not
-complete yet, in particular when stateful descriptions are involved.
-However, the system can be (and has been) described in a mathematical
-sense, allowing us to reason about it and probably also prove various
-correctness properties in the future.
+The prototype compiler has a clear design. Its frontend is taken from the \GHC
+compiler and desugares Haskell into a small, but functional and typed
+language, called \emph{Core}. Cλash adds a transformation system that reduces
+this small language to a normal form and a simple backend that performs a
+direct translation to \VHDL. This approach has worked well and should probably
+be preserved. Especially the transformation based normalization system is
+suitable. It is easy to implement a transformation in the prototype, though it
+is not trivial to maintain enough overview to guarantee that the system is
+correct and complete. In fact, the current set of transformations is probably
+not complete yet, in particular when stateful descriptions are involved.
+However, the system can be (and has been) described in a mathematical sense,
+allowing us to reason about it and probably also prove various correctness
+properties in the future.
 
 The scope of this research has been limited to structural descriptions
 that are synchronous in a single clock domain using cycle accurate
 
 The scope of this research has been limited to structural descriptions
 that are synchronous in a single clock domain using cycle accurate