restructure appendices
[msc-thesis1617.git] / thesis.tex
1 %&thesis
2 \usepackage[nonumberlist,acronyms]{glossaries}
3 \makeglossaries%
4
5 \newacronym{GADT}{GADT}{Generalized Algebraic Datatype}
6 \newacronym{GPIO}{GPIO}{General-Purpose Input/Output}
7 \newacronym{ADT}{ADT}{Algebraic Datatype}
8 \newacronym{SDS}{SDS}{Shared Data Source}
9 \newacronym{IoT}{IoT}{Internet of Things}
10 \newacronym{TOP}{TOP}{Task Oriented Programming}
11 \newacronym{EDSL}{(E)DSL}{(Embedded) Design Specific Language}
12 \newacronym{RISC}{RISC}{Reduced Instruction Set Computer}
13 \newacronym{ARM}{ARM}{Acorn \acrshort{RISC} Machine}
14 \newacronym{LTN}{LTN}{Low Throughput Network}
15 \newacronym{IDE}{IDE}{Integrated Development Environment}
16 \newacronym{TCP}{TCP}{Transmission Control Protocol}
17 \newacronym{RFID}{RFID}{Radio-Frequency Identification}
18 \newacronym{GPS}{GPS}{Global Positioning System}
19 \newacronym{RTOS}{RTOS}{Real-Time Operating System}
20 \newglossaryentry{Arduino}{name=Arduino,
21 description={is a cheap and popular microcontroller that is widely used for
22 rapid prototyping}}
23 \newglossaryentry{Clean}{name=Clean,
24 description={is a staticly typed pure lazy functional programming language based on graph
25 rewriting}}
26 \newglossaryentry{Haskell}{name=Haskell,
27 description={is a staticly typed pure lazy functional programming language}}
28 \newglossaryentry{iTasks}{name=iTasks,
29 description={is a \acrshort{TOP} implementation written as a \acrshort{EDSL}
30 in the \gls{Clean} programming language}}
31 \newglossaryentry{Ivory}{name=Ivory,
32 description={is a type-safe \gls{EDSL} designed to generate \gls{C}-code
33 for high-assurance low-level systems}}
34 \newglossaryentry{Tower}{name=Tower,
35 description={is a type-safe \gls{EDSL} similar to \gls{Ivory} designed to
36 generate code for \acrlong{RTOS}}}
37 \newglossaryentry{Task}{name=Task,
38 description={is the basic building block of a \acrshort{TOP} system}}
39 \newglossaryentry{mTask}{name=mTask,
40 description={is an abstraction for \glspl{Task} living on \acrshort{IoT} devices}}
41 \newglossaryentry{C}{name=C,
42 description={is low-level imperative programming language suitable for
43 embedded devices}}
44 \newglossaryentry{C++}{name=C++,
45 description={is low-level imperative and object-oriented programming
46 language suitable for embedded devices based on \gls{C}}}
47 \newglossaryentry{SAPL}{name=SAPL,
48 description={is an intermediate purely functional programming language}}
49 \newglossaryentry{Firmata}{name=Firmata,
50 description={is standardized protocol for communicating with
51 microcontrollers}}
52 \newglossaryentry{Javascript}{name=Javascript,
53 description={is an imperative programming language designed to run in web
54 browsers}}
55
56 \begin{document}
57 \frontmatter{}
58
59 %Titlepage
60 \maketitleru[
61 pagenr=1,
62 course={Master Thesis},
63 institute={Radboud University Nijmegen},
64 authorstext={Author:},
65 righttextheader={Supervisors:},
66 righttext={prof.~dr.~dr.h.c.~ir.~M.J.~Plasmeijer\\dr.~P.W.M.~Koopman}]
67 \listoftodos[Todo]
68
69 \glsaddall{}
70
71 %Abstract
72 \chapter*{\centering Abstract}
73 \begin{quotation}
74 \centering\noindent
75 \input{abstract.tex}
76 \end{quotation}
77
78 \chapter*{\centering Acknowledgements}
79 \begin{quotation}
80 \centering\it\noindent
81 \input{acknowledgements.tex}
82 \end{quotation}
83
84 %Table of contents
85 \tableofcontents
86
87 \mainmatter{}
88 \glsresetall{}
89 \chapter{Introduction}\label{chp:introduction}
90 \input{introduction.tex}
91
92 \chapter{\acrlong{TOP}}\label{chp:top}
93 \input{methods.top.tex}
94
95 \chapter{\acrlongpl{EDSL}}\label{chp:dsl}
96 \input{methods.dsl.tex}
97
98 \chapter{mTask}\label{chp:mtask}
99 \input{methods.mtask.tex}
100
101 \chapter{Architecture}\label{chp:arch}
102 \input{results.arch.tex}
103
104 \chapter{mTask continued}\label{chp:mtaskcont}
105 \input{results.mtask.tex}
106
107 \chapter{Conclusion \& Discussion}\label{chp:conclusion}
108 \input{conclusion.tex}
109
110 \appendix\label{chp:appendix}
111
112 \chapter{Communication protocol}\label{app:communication-protocol}
113 \input{appendix-protocol.tex}
114
115 \chapter{Device client interface}\label{app:device-interface}
116 \input{appendix-device-interface.tex}
117
118 \cleardoublepage{}
119 \phantomsection{}
120 \addcontentsline{toc}{chapter}{Bibliography}
121 \bibliographystyle{ieeetr}
122 \bibliography{thesis}
123
124 \cleardoublepage{}
125 \phantomsection{}
126 \addcontentsline{toc}{chapter}{Lists of \ldots}
127 \begingroup
128 \let\clearpage\relax
129 \listoffigures
130 \listoftables
131 \lstlistoflistings{}
132 \endgroup
133
134 \cleardoublepage{}
135 \phantomsection{}
136 \addcontentsline{toc}{chapter}{Glossaries \& Acronyms}
137 \begingroup
138 \let\clearpage\relax
139 \let\cleardoublepage\relax
140 \printglossaries%
141 \endgroup
142
143 \end{document}