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 111d69ce424e3ba12449a6cc36f70f25fdfc5ae1..0b378996293bedeafed9d3d2f982b6f175bbef34 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
-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.
 
-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
@@ -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. 
 
-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
-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.
 
@@ -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.
 
-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