From: Mart Lubbers Date: Tue, 14 Jun 2016 07:46:53 +0000 (+0200) Subject: todo.txt X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=0bec07243843e8b7b6ab25538aead3695b06e104;p=cc1516.git todo.txt --- diff --git a/deliverables/report/Makefile b/deliverables/report/Makefile index 875fa2b..a97d801 100644 --- a/deliverables/report/Makefile +++ b/deliverables/report/Makefile @@ -6,7 +6,7 @@ DOCUMENT:=report all: $(DOCUMENT).pdf -%.pdf: %.tex ext.tex gen.tex pars.tex sem.tex intro.tex +%.pdf: %.tex ext.tex gen.tex pars.tex sem.tex intro.tex eval.tex $(LATEX) $(LATEXFLAGS) $< $(LATEX) $(LATEXFLAGS) $< diff --git a/deliverables/report/clean.sty b/deliverables/report/clean.sty index 046c239..cc17f09 100644 --- a/deliverables/report/clean.sty +++ b/deliverables/report/clean.sty @@ -38,7 +38,7 @@ {<-}{{$\leftarrow$}}1 {=}{{$=$}}1 {~}{{$\sim$}}1 - {\#}{{$\sharp$}}1 + {\#}{{$\sharp$}}1 {\{|}{{$\{\!|\!$}}1 {|\}}{{$\!|\!\}$}}1 {:=}{{$:=$}}2 diff --git a/deliverables/report/eval.tex b/deliverables/report/eval.tex new file mode 100644 index 0000000..cd3fc7f --- /dev/null +++ b/deliverables/report/eval.tex @@ -0,0 +1 @@ +\section{Evaluation} diff --git a/deliverables/report/gen.tex b/deliverables/report/gen.tex index 0edfd92..5881d16 100644 --- a/deliverables/report/gen.tex +++ b/deliverables/report/gen.tex @@ -1,23 +1,8 @@ \section{Code generation}\label{sec:gen} -%our full names and student numbers. -%{ -%The chapters from the previous exercise. -%{ -%A chapter describing the chosen semantics of -%SPL -%, like call-by-reference or -%call-by-value. -%5 -%{ -%The compilation schemes used in your compiler. A concise informal or semi- -%formal description suces. A complete formal description of the compilation -%scheme is welcome, but not required. Typical things to explain here are call- -%ing conventions, stack management, stack layout, heap layout, and heap -%management. -%{ -%A short description of the purpose of the example programs and the -%test -%results. -%{ -%A concise but precise description of how the work was divided amongst the -%members of the tea +\subsection{ABR} +%Heap en stack layout + +\subsection{Generation} +%gewoon hoe het werkt + +\subsection{Higher order functions} diff --git a/deliverables/report/intro.tex b/deliverables/report/intro.tex index 86e78d6..a1af621 100644 --- a/deliverables/report/intro.tex +++ b/deliverables/report/intro.tex @@ -10,7 +10,7 @@ illustrate all the command line interface options the output of \texttt{spl \begin{lstlisting}[ label={lst:splchelp}, - caption={\texttt{./spl -h}}] + caption={Output of \texttt{./spl -h}}] Usage: spl [OPTION] [FILE] Options: diff --git a/deliverables/report/pars.tex b/deliverables/report/pars.tex index c849e1c..4883e1a 100644 --- a/deliverables/report/pars.tex +++ b/deliverables/report/pars.tex @@ -26,9 +26,9 @@ eof :: Parser a Void The existing \SPL{} grammar was not suitable for parsing and lexing. The grammar listed in Listing~\ref{lst:grammar} shows the current and final grammar. We have added several clauses that are explained in -Section~\ref{sec:ext} such as string literals and higher order functions. The -transformation of the grammar include eliminating left recursion, fixing -operator priority and associativity. +Section~\ref{sec:ext} such as string literals and higher order functions. +Moreover we have applied transformation on the grammar including eliminating +left recursion, fixing operator priority and associativity. To make the parsing more easy we first lex the character input into tokens. In this way the parser can be simplified a lot and some more complex constructs @@ -74,13 +74,12 @@ parser that transforms a list of tokens to an Abstract Syntax Tree(\AST). The full abstract syntax tree is listed in Listing~\ref{lst:ast} which closely resembles the grammar. -The parser uses the standard \Yard{} combinators. For clarity and easy the -parser closely resembles the grammar. Due to the modularity of combinators it -was and is very easy to add functionality to the parser. The parser also -handles some syntactic sugar(Section~\ref{ssec:synsugar}). For example the -parser expands the literal lists and literal strings to the according list or -string representation. Moreover the parser transforms the let expressions to -real functions representing constant values. +The parser uses the standard \Yard{} combinators. Due to the modularity of +combinators it was and is very easy to add functionality to the parser. The +parser also handles some syntactic sugar(Section~\ref{ssec:synsugar}). For +example the parser expands the literal lists and literal strings to the +according list or string representation. Moreover the parser transforms the let +expressions to real functions representing constant values. As an example we show the parsing of a \CI{FunDecl} in Listing~\ref{lst:fundecl}. The \CI{FunDecl} is one of the most complex parsers diff --git a/deliverables/report/report.tex b/deliverables/report/report.tex index e8deb22..5c5a165 100644 --- a/deliverables/report/report.tex +++ b/deliverables/report/report.tex @@ -42,6 +42,8 @@ \input{ext.tex} +\input{eval.tex} + \newpage \section{Appendices} \subsection{Grammar} diff --git a/deliverables/report/todo.txt b/deliverables/report/todo.txt new file mode 100644 index 0000000..9aed6bb --- /dev/null +++ b/deliverables/report/todo.txt @@ -0,0 +1,8 @@ +mart parse: Uitleggen over tokens lexen dat dat eigenlijk ook whitespace is. +mart parse: tikfouten +pim parse: Uitleggen over YARD +pim sem: sem opschonen appendix, die pagina landscape(package: lscape, \begin{lscape}) +mart ext: plaats extensions in desbetreffende section en maak intro paragraaf +pim gen: abi en generation +mart gen: higher order functions +pim eval: doen