Rename example function app2 to twice.
[matthijs/master-project/report.git] / Outline
diff --git a/Outline b/Outline
index 074f6a6..7a18303 100644 (file)
--- a/Outline
+++ b/Outline
@@ -8,45 +8,56 @@ Introduction
 
 Haskell as hardware
 *       Simple function -> component interpretation (Model: Structure)
+*       Choice / Case
+*       Types
 *       Partial application
 *       Model: State
 *         Explicit vs implicit passing of state (e.g, delay)
 *         Explicit vs implicit marking
 *       Interpret: Polymorphism
 *       Interpret: Higher order
-       Need: Dependent types
 *       Recursion
-       Impossible things: Infinite recursion, higher order expressions,
-                           recursive types, ...
 
 Prototype
 *       Choice of Haskell
-        VHDL / Verilog / EDIF etc. Why VHDL?
+*       VHDL / Verilog / EDIF etc. Why VHDL?
 *      Stages (-> Core, Normalization, -> VHDL)
-.       Core - description of the language (appendix?)
+.       Core - description of the language
+*         Expressions
+          Typing
         Implementation issues -- Which?
         State annotations
 
-        Haskell language coverage / constraints
-                Recursion
-                Builtin types
-                Custom types (Sum types, product types)
-                Function types / higher order expressions
-                State type -> Anything representable
-
 Normalization
 *      Normal form
 *      Rules used
 .      Properties / Proofs (termination, soundness, completeness, determinism)
-       Casts / Strictness / Casebinders not fully supported
 
 Future work
-.      Boilerplate reduction (State distribution & pipelining)
+*      Boilerplate reduction (State distribution & pipelining)
 *      Recursion
 *       Multiple time domains (Events) -- Also, clock line optimization /
                                        -- write enable
 *      Multiple cycle descriptions
 *       Higher order state
 *       New language
+        Don't care
 
 TODO: Define user / developer
+TODO: Comiler vs translator
+TODO: Hardware description / model vs program
+TODO: State & pattern matches
+TODO: Separate compilation / Prelude
+TODO: Add case binder removal transformation
+TODO: Remove all "statement"s
+TODO: User-defined type classes (future work?)
+TODO: Entity / Architecture / Component vs Function?
+TODO: Expand on "representable"
+TODO: Register
+TODO: Variable vs binder
+TODO: simplification -> Normalisation?
+TODO: Use saturated (application) instead of complete (application)?
+TODO: core => Core
+TODO: \defref{beta-reduction} -> \defref{β-reduction}
+TODO: Make interaction links not bold
+TODO: Say something about implementation differences with transformation specs