report dingetejes
[cc1516.git] / deliverables / report / eval.tex
index cd3fc7f..ec111a6 100644 (file)
@@ -1 +1,44 @@
 \section{Evaluation}
+All in all we are quite happy with \SPLC{}. Our added syntactic sugar and the
+higher order functions make our implementation of \SPL{} quite comfortable to
+program in. Due to the UNIX style interface it is quite easy to combine 
+usage of the compiler with \SSM{}.
+
+There are however of course a lot of things to can be improved. We discuss
+a few of
+the most interesting and most pressing issues. First of all error handling in
+\SPLC{} can be greatly improved. Currently a lot of error happen at position 
+(0,0), most notably all type errors happen at this position. It would be a great
+improvement in usability if errors would always be reported at the correct 
+position. A second issue is that in \SPLC{} it is not possible to spread a 
+program over multiple modules, when developing larger programs this would an
+absolute requirement. Thirdly \SPLC{} currently does not allow for multiple 
+recursion, and all functions need to be declared before they are called. It 
+would be nice to have multiple recursion and to not be forced to structure your
+program in the order in which functions are called.
+
+\subsection{Work division}
+\begin{description}
+       \item [Lexing \& parsing] : \\  
+               \begin{description}
+               \item [Yard] Pim
+               \item [Lexing] Mart \& Pim
+               \item [Parsing] Mostly Mart, some Pim
+               \item [Sugar] literal string: Mart, literal lists: Pim, Variable 
+                       arguments printing: Mart, Let-expansion: Pim, Lambdas: Pim
+               \end{description}
+       \item [Semantical analysis] : \\  
+               \begin{description}
+               \item [Sanity checks] Mart
+               \item [Type inference] Mostly Pim, some Mart
+               \item [Lambda lifting] Pim
+               \end{description}
+       \item [Code generation] : \\  
+               \begin{description}
+               \item [RWST monad] Mart
+               \item [Basic Generation] Mart \& Pim
+               \item [Higher order functions] Mart
+               \end{description}
+\end{description}
+%thoughts about compiler
+%division
\ No newline at end of file