From: Matthijs Kooijman Date: Fri, 4 Dec 2009 12:52:30 +0000 (+0100) Subject: Improve conclusions. X-Git-Tag: final-thesis~107 X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=b2047c9f1622d62aecc6708dd19c38b14810f275;p=matthijs%2Fmaster-project%2Freport.git Improve conclusions. --- diff --git a/Chapters/Conclusions.tex b/Chapters/Conclusions.tex index 111d69c..0b37899 100644 --- a/Chapters/Conclusions.tex +++ b/Chapters/Conclusions.tex @@ -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