Merge branch 'master' of git.martlubbers.net:msc-thesis1617
[msc-thesis1617.git] / thesis.tex
index cd0ccd6..63d3f92 100644 (file)
 %&thesis
-\usepackage[nonumberlist,acronyms]{glossaries}
-\makeglossaries%
+\usepackage[nonumberlist]{glossaries}  % Glossaries and acronyms
+\usepackage[algochapter]{algorithm2e}             % Pseudocode
+
+% Fix the algorithm font
+\renewcommand\AlCapFnt{\normalfont}
 
-\newacronym{GADT}{GADT}{Generalized Algebraic Datatype}
-\newacronym{GPIO}{GPIO}{General-Purpose Input/Output}
-\newacronym{ADT}{ADT}{Algebraic Datatype}
-\newacronym{SDS}{SDS}{Shared Data Source}
-\newacronym{IoT}{IoT}{Internet of Things}
-\newacronym{TOP}{TOP}{Task Oriented Programming}
-\newacronym{EDSL}{(E)DSL}{(Embedded) Design Specific Language}
-\newacronym{RISC}{RISC}{Reduced Instruction Set Computer}
-\newacronym{ARM}{ARM}{Acorn \acrshort{RISC} Machine}
-\newacronym{LTN}{LTN}{Low Throughput Network}
-\newacronym{IDE}{IDE}{Integrated Development Environment}
-\newacronym{TCP}{TCP}{Transmission Control Protocol}
-\newacronym{RFID}{RFID}{Radio-Frequency Identification}
-\newacronym{GPS}{GPS}{Global Positioning System}
-\newacronym{RTOS}{RTOS}{Real-Time Operating System}
-\newglossaryentry{Arduino}{name=Arduino,
-       description={is a cheap and popular microcontroller that is widely used for
-       rapid prototyping}}
-\newglossaryentry{Clean}{name=Clean,
-       description={is a staticly typed pure lazy functional programming language based on graph
-               rewriting}}
-\newglossaryentry{Haskell}{name=Haskell,
-       description={is a staticly typed pure lazy functional programming language}}
-\newglossaryentry{iTasks}{name=iTasks,
-       description={is a \acrshort{TOP} implementation written as a \acrshort{EDSL}
-       in the \gls{Clean} programming language}}
-\newglossaryentry{Ivory}{name=Ivory,
-       description={is a type-safe \gls{EDSL} designed to generate \gls{C}-code
-       for high-assurance low-level systems}}
-\newglossaryentry{Tower}{name=Tower,
-       description={is a type-safe \gls{EDSL} similar to \gls{Ivory} designed to
-       generate code for \acrlong{RTOS}}}
-\newglossaryentry{Task}{name=Task,
-       description={is the basic building block of a \acrshort{TOP} system}}
-\newglossaryentry{mTask}{name=mTask,
-       description={is an abstraction for \glspl{Task} living on \acrshort{IoT} devices}}
-\newglossaryentry{C}{name=C,
-       description={is low-level imperative programming language suitable for
-       embedded devices}}
-\newglossaryentry{C++}{name=C++,
-       description={is low-level imperative and object-oriented programming
-       language suitable for embedded devices based on \gls{C}}}
-\newglossaryentry{SAPL}{name=SAPL,
-       description={is an intermediate purely functional programming language}}
-\newglossaryentry{Firmata}{name=Firmata,
-       description={is standardized protocol for communicating with
-       microcontrollers}}
-\newglossaryentry{Javascript}{name=Javascript,
-       description={is an imperative programming language designed to run in web
-       browsers}}
+% Initialize the glossaries
+\makeglossaries%
+\input{glossaries}
 
 \begin{document}
 \frontmatter{}
 
 %Titlepage
-\maketitleru[
-       pagenr=1,
-       course={Master Thesis},
-       institute={Radboud University Nijmegen},
-       authorstext={Author:},
-       righttextheader={Supervisors:},
-       righttext={prof.~dr.~dr.h.c.~ir.~M.J.~Plasmeijer\\dr.~P.W.M.~Koopman}]
-\listoftodos[Todo]
-
-\glsaddall{}
+\input{titlepage}
 
 %Abstract
 \chapter*{\centering Abstract}
+\addcontentsline{toc}{chapter}{Abstract}
 \begin{quotation}
        \centering\noindent
-       \input{abstract.tex}
+       \input{abstract}
 \end{quotation}
 
+%Acknowledgements
 \chapter*{\centering Acknowledgements}
+\addcontentsline{toc}{chapter}{Acknowledgements}
 \begin{quotation}
        \centering\it\noindent
-       \input{acknowledgements.tex}
+       \input{acknowledgements}
 \end{quotation}
 
 %Table of contents
 \tableofcontents
 
 \mainmatter{}
+
+%Reset glossary and thus the acronyms
 \glsresetall{}
+
 \chapter{Introduction}\label{chp:introduction}
-\input{introduction.tex}
+\input{intro}
 
-\chapter{\acrlong{TOP}}\label{chp:top}
-\input{methods.top.tex}
+\chapter{Task Oriented Programming}\label{chp:top}
+\input{top}
 
-\chapter{\acrlongpl{EDSL}}\label{chp:dsl}
-\input{methods.dsl.tex}
+\chapter{Embedded Domain Specific Languages}\label{chp:dsl}
+\input{edsl}
 
-\chapter{mTask}\label{chp:mtask}
-\input{methods.mtask.tex}
+\chapter[The mTask-EDSL]{The \gls{mTask}-\gls{EDSL}}\label{chp:mtask}
+\input{mtask}
 
-\chapter{Architecture}\label{chp:arch}
-\input{results.arch.tex}
+\chapter[System Overview]{System Overview}\label{chp:system}
+\input{system}
 
-\chapter{mTask continued}\label{chp:mtaskcont}
-\input{results.mtask.tex}
+\chapter[Extending the mTask EDSL]%
+       {Extending the \gls{mTask} {EDSL}}\label{chp:mtaskcont}
+\input{mtaskext}
 
-\chapter{Conclusion \& Discussion}\label{chp:conclusion}
-\input{conclusion.tex}
+\chapter{System Considerations \& Implementation}\label{chp:arch}
+\input{arch}
 
-\appendix\label{chp:appendix}
+\chapter{Discussion \& Conclusion}\label{chp:conclusion}
+\input{conclusion}
 
-\chapter{Planning}\label{app:planning}
-\input{appendix-planning.tex}
+\appendix%
+\label{chp:appendix}
 
-\chapter{Communication protocol}\label{app:communication-protocol}
-\input{appendix-protocol.tex}
+\chapter{Communication Protocol}\label{app:communication-protocol}
+\input{appendix-protocol}
 
-\chapter{Device client interface}\label{app:device-interface}
-\input{appendix-device-interface.tex}
+\chapter{Device Client Interface}\label{app:device-interface}
+\input{appendix-device-interface}
 
-\cleardoublepage{}
+% Bibliography
 \phantomsection{}
-\addcontentsline{toc}{chapter}{Lists of \ldots}
-\begingroup
-\let\clearpage\relax
-\listoffigures
-\listoftables
-\lstlistoflistings{}
-\endgroup
+\addcontentsline{toc}{chapter}{Bibliography}
+\bibliographystyle{ieeetr}
+\bibliography{thesis}
 
-\cleardoublepage{}
-\addcontentsline{toc}{chapter}{Glossaries \& Acronyms}
+% Glossary
+\addcontentsline{toc}{chapter}{Glossary}
+\printglossaries%
 
+% Lists of
+\cleardoublepage{}
+\phantomsection{}
+\addcontentsline{toc}{chapter}{Lists of \ldots}
 \begingroup
 \let\clearpage\relax
 \let\cleardoublepage\relax
-\printglossaries%
+\listoffigures%
+\listoftables%
+\listofalgorithms%
+\lstlistoflistings%
 \endgroup
 
-\bibliographystyle{ieeetr}
-\bibliography{thesis}
 \end{document}