%&thesis
\usepackage[nonumberlist,acronyms]{glossaries}
\makeglossaries%

\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}}

\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{}

%Abstract
\chapter*{\centering Abstract}
\begin{quotation}
	\centering\noindent
	\input{abstract.tex}
\end{quotation}

\chapter*{\centering Acknowledgements}
\begin{quotation}
	\centering\it\noindent
	\input{acknowledgements.tex}
\end{quotation}

%Table of contents
\tableofcontents

\mainmatter{}
\glsresetall{}
\chapter{Introduction}\label{chp:introduction}
\input{introduction.tex}

\chapter{\acrlong{TOP}}\label{chp:top}
\input{methods.top.tex}

\chapter{\acrlongpl{EDSL}}\label{chp:dsl}
\input{methods.dsl.tex}

\chapter{mTask}\label{chp:mtask}
\input{methods.mtask.tex}

\chapter{Architecture}\label{chp:arch}
\input{results.arch.tex}

\chapter{mTask continued}\label{chp:mtaskcont}
\input{results.mtask.tex}

\chapter{Conclusion \& Discussion}\label{chp:conclusion}
\input{conclusion.tex}

\appendix\label{chp:appendix}

\chapter{Communication protocol}\label{app:communication-protocol}
\input{appendix-protocol.tex}

\chapter{Device client interface}\label{app:device-interface}
\input{appendix-device-interface.tex}

\cleardoublepage{}
\phantomsection{}
\addcontentsline{toc}{chapter}{Bibliography}
\bibliographystyle{ieeetr}
\bibliography{thesis}

\cleardoublepage{}
\phantomsection{}
\addcontentsline{toc}{chapter}{Lists of \ldots}
\begingroup
\let\clearpage\relax
\listoffigures
\listoftables
\lstlistoflistings{}
\endgroup

\cleardoublepage{}
\phantomsection{}
\addcontentsline{toc}{chapter}{Glossaries \& Acronyms}
\begingroup
\let\clearpage\relax
\let\cleardoublepage\relax
\printglossaries%
\endgroup

\end{document}
