update'
[phd-thesis.git] / thesis.tex
1 \documentclass[twoside,10pt]{book}
2
3 \def\mytitle{Orchestrating the Internet of Things\texorpdfstring{\\}{ }with Task-Oriented Programming}
4 \def\mysubtitle{a purely functional rhapsody}
5 \def\myauthor{Mart Lubbers}
6 \def\mydate{\formatdate{31}{12}{2022}}
7
8 \input{preamble}
9
10 % To show hboxes even when in non-draft mode
11 \overfullrule=1mm
12
13 % Just for the todonotes, can go when it's finished
14 \usepackage{todonotes}
15 \setuptodonotes{
16 backgroundcolor=white,
17 linecolor=black,
18 size=tiny,
19 }
20
21 % Document info
22 \title{\mytitle{} --- \mysubtitle{}}
23 \author{Mart Lubbers}
24
25 \date{\mydate}
26
27 \begin{document}
28 \selectlanguage{british}
29
30 \frontmatter%
31 \frontmatterfancy%
32
33 %Titlepage
34 \subfile{front/titlepage}
35 \newpage%
36
37 % Epigraph/motto
38 \subfile{front/motto}
39
40 % Table of contents
41 \setcounter{tocdepth}{1}
42 \tableofcontents
43 \todo{to reduce the size: make listings font smaller}
44 \newpage%
45
46 % Dedication
47 \subfile{front/dedication}
48
49 % Reset glossary and thus the acronyms
50 \glsresetall{}
51
52 % The actual document
53 \mainmatter%
54 \mainmatterfancy%
55 \setcounter{chapter}{-1}
56
57 % Introduction
58 \subfile{intro/intro}
59 % DSL
60
61 \part[\'Etude: Domain-Specific Languages]{\'Etude:\\[2ex]\smaller{}Domain-Specific Languages}%
62 \label{prt:dsl}
63 \subfile{dsl/dsl_techniques} % DSL Techniques
64 \subfile{dsl/class_deep_embedding} % Deep embedding with class
65 \subfile{dsl/first-class_datatypes} % First-class data types
66
67 \part[Oratorio: Task-Oriented Programming]{Oratorio\\[2ex]\smaller{}Task-Oriented Programming for the Internet of Things}%
68 \label{prt:top}
69 \subfile{top/top} % MTask tutorial and implementation
70
71 \part[Transformation: Tiered vs.\ Tierless Programming]{Transformation:\\[2ex]\smaller{}Tiered vs.\ Tierless Programming}%
72 \label{prt:tvt}
73 \subfile{tvt/tvt} % Could Tierless Languages Reduce IoT Development Grief?
74
75 \bookmarksetup{startatroot} % descend back out of the previous part
76 \addtocontents{toc}{\bigskip}% Insert some whitespace to make the TOC better
77 \subfile{concl/conclusion}
78
79 % Start appendix
80 \appendix%
81 \label{chp:appendix}
82 \addcontentsline{toc}{part}{Appendix}
83
84 \subfile{appx/clean_for_haskell_programmers}
85 \subfile{appx/mtask_aux}
86 \subfile{appx/bytecode}
87
88 \backmatter%
89 \backmatterfancy%
90 \bookmarksetup{startatroot} % descend back out of the appendix
91
92 % Bibliography
93 \phantomsection{}%
94 \label{chp:bibliography}
95 \addcontentsline{toc}{chapter}{Bibliography}
96 \bibliography{other,self,tiot}
97
98 % Summary
99 \subfile{back/summary}
100
101 % Samenvatting
102 \subfile{back/samenvatting}
103
104 % Acknowledgements
105 \subfile{back/acknowledgements}
106
107 % Research data management
108 \subfile{back/research_data_management}
109
110 % Curriculum vitæ
111 \subfile{back/curriculum_vitae}
112
113 % Glossary
114 \addcontentsline{toc}{chapter}{Glossary}%
115 \label{chp:glossaries}
116 \printglossary[style=mcolindex]%
117 \printglossary[type=\acronymtype,style=mcolindex]%
118
119 %% Lists of
120 %\cleardoublepage{}
121 %\phantomsection{}%
122 %\label{chp:listsof...}
123 %\addcontentsline{toc}{chapter}{Lists of \ldots}
124 %\begingroup
125 %\let\clearpage\relax
126 %\let\cleardoublepage\relax
127 %\listoffigures%
128 %\listoftables%
129 %\listofalgorithms%
130 %\lstlistoflistings%
131 %\endgroup
132
133 % Index
134 %\addcontentsline{toc}{chapter}{Index}%
135 %\label{chp:index}
136 %\printindex
137
138 \end{document}