Add initial sketch for conclusions.
authorMatthijs Kooijman <matthijs@stdin.nl>
Thu, 3 Dec 2009 13:23:35 +0000 (14:23 +0100)
committerMatthijs Kooijman <matthijs@stdin.nl>
Thu, 3 Dec 2009 13:23:35 +0000 (14:23 +0100)
Chapters/Conclusions.tex [new file with mode: 0644]
Outline
Report.tex

diff --git a/Chapters/Conclusions.tex b/Chapters/Conclusions.tex
new file mode 100644 (file)
index 0000000..c12e99d
--- /dev/null
@@ -0,0 +1,38 @@
+\chapter[chap:conclusions]{Conclusions}
+At the end of this research, we have created a system called Cλash, which
+allows us to translate hardware descriptions written in Haskell to be
+translated to \VHDL, and be programmed into an FPGA.
+
+In this research, we have seen that a functional language is well suited
+for hardware descriptions. Function applications provide elegant notation for
+component instantiation and the various choice mechanisms (pattern matching,
+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 are also well-suited for translation to
+hardware.
+
+Using Haskell enabled a rapid prototype supporting complex features like
+polymorphism and higher order values. Mostly typechecker would have been
+complicated otherwise.
+
+Haskell is not the perfect language. Some of the expressiveness it offers is
+not appropriate for hardware description, but also some extra syntax sugar
+could be useful. Lack of type-safe recursion is a big downside (but also a
+hard problem!), perhaps improvements to Haskell will fix this.
+
+Explicit state descriptions...
+
+Transformation based system is suitable, allows for reasoning about the
+system. Easy to specify transformation in the prototype. Implmentation is stil
+lacking, especially when combined with pattern matching.
+
+General design (frontend + desugaring into small language, transformation
+system, simple backend) works well and should be preserved.
+
+Usefulness of Cλash is not completely clear yet. Advanced features work
+nicely, as well as choice, but no extensive testing (actual design projects)
+have been done yet. Use in education possible due to prototype.
+
+Limited to structural, single clock domain synchronous, etc.
diff --git a/Outline b/Outline
index 3afd469ece2c23a7a701ed8238960308f0198960..3ea03b2cf3ce4c63cad9b486aa6d2fd7506251ac 100644 (file)
--- a/Outline
+++ b/Outline
@@ -63,3 +63,4 @@ TODO: Make interaction links not bold
 TODO: Say something about implementation differences with transformation specs
 TODO: Say something about the builtin functions somewhere (ref: christiaan)
 TODO: Reorder future work.
+TODO: Future work: Use Cλash
index c7a4e9df9319d605476d15ebaef3aa4751edf774..cd0aab2a7c349fc0755f86833f609b5ca8fd86cc 100644 (file)
@@ -37,6 +37,7 @@ Matthijs Kooijman
 \input Chapters/Prototype
 \input Chapters/Normalization
 \input Chapters/Future
+\input Chapters/Conclusions
 \stoptext
 
 % vim: set sw=2 sts=2 expandtab: