many updates
[phd-thesis.git] / top / finale.tex
index 9e94d66..3864fd2 100644 (file)
@@ -60,12 +60,12 @@ Both client and server are written in JavaScript.
 However, there is no integration between the client and the server other than that they are programmed from a single source.
 Mat\`e is an example of an early tierless sensor network framework where devices are provided with a virtual machine using TinyOS for dynamic provisioning \citep{levis_mate_2002}.
 
-\subsection{\texorpdfstring{\Glsxtrlongpl{DSL}}{DSLs}}\label{sec:related_dsl}
+\subsection{DSLs}\label{sec:related_dsl}
 Many \glspl{DSL} provide higher-level programming abstractions for microcontrollers, for example providing strong typing or memory safety.
 Examples of this are Copilot \citep{hess_arduino-copilot_2020} and Ivory \citep{elliott_guilt_2015}.
 Both imperative \glspl{DSL} embedded in a functional language that compile to \ccpp{}.
 
-\subsection{\texorpdfstring{\Glsxtrlong{FP}}{Functional programming}}\label{sec:related_fp}
+\subsection{Functional programming}\label{sec:related_fp}
 \Citet{haenisch_case_2016} showed that there are major benefits to using functional languages on edge devices.
 They show that using function languages increased the security and maintainability of the applications.
 Traditional implementations of general purpose functional languages have high memory requirements rendering them unusable for resource-constrained computers.
@@ -132,7 +132,7 @@ This table extends a comparison table with various solutions to multitasking to
        \end{threeparttable}
 \end{table}
 
-\subsection{\texorpdfstring{\Glsxtrlong{FRP}}{Functional reactive programming}}\label{sec:related_frp}
+\subsection{Functional reactive programming}\label{sec:related_frp}
 The \gls{TOP} paradigm is often compared to \gls{FRP} because they appear similar.
 \Gls{FRP} was introduced by \citet{elliott_functional_1997}.
 The paradigm strives to make modelling systems safer, more efficient, and composable.
@@ -159,7 +159,7 @@ However, in contrast to in \gls{MTASK}, the tasks are not interpreted and there
 
 Other examples are CFRP \citep{suzuki_cfrp_2017}, XFRP \citep{10.1145/3281366.3281370}, Juniper \citep{helbling_juniper:_2016}, Hailstorm \citep{sarkar_hailstorm_2020}, Haski \citep{valliappan_towards_2020}, arduino-copilot \citep{hess_arduino-copilot_2020}.
 
-\subsection{\texorpdfstring{\Glsxtrlong{TOP}}{Task-oriented programming}}\label{sec:related_top}
+\subsection{Task-oriented programming}\label{sec:related_top}
 \Gls{TOP} as a paradigm has proven to be effective for implementing distributed, multi-user applications in many domains.
 Examples are conference management \citep{plasmeijer_conference_2006}, coastal protection \citep{lijnse_capturing_2011}, incident coordination \citep{lijnse_incidone:_2012}, crisis management \citep{jansen_towards_2010} and telemedicine \citep{van_der_heijden_managing_2011}.
 In general, \gls{TOP} results in a higher maintainability, a high separation of concerns, and more effective handling of interruptions of workflow.
@@ -222,7 +222,7 @@ Later, \citet{steenvoorden_tophat_2019} created \gls{TOPHAT}, a \gls{TOP} langua
 \Citet{antonova_mtask_2022} compared parts of \gls{MTASK} to the semantics of \gls{TOPHAT} semantics and created a preliminary semantics for a subset of \gls{MTASK}.
 Future research into extending the formal semantics of \gls{MTASK} is useful to give more guarantees on \gls{MTASK} programs.
 
-\subsection{\texorpdfstring{\Glsxtrlong{TOP}}{Task-oriented programming}}
+\subsection{Task-oriented programming}
 In order to keep the resource constraints low, the \gls{MTASK} language contains only a minimal set of simple task combinators.
 From these simple combinators, complex collaboration patterns can be expressed.
 The \gls{ITASK} language is designed exactly the opposite.
@@ -273,7 +273,7 @@ So called \gls{DVFS} is a scheduling technique that slows down the processor in
 \Citet{belwal_variable_2013} use \gls{PFRP} with \gls{DVFS} to reduce the energy consumption.
 It is interesting to investigate the possibilities for \gls{DVFS} in \gls{MTASK} and \gls{TOP} in general.
 
-\section{History of \texorpdfstring{\gls{MTASK}}{mTask}}
+\section{History of mTask}
 The development of \gls{MTASK} or its predecessors has been going on for almost seven years now though it really set off during my master's thesis.
 Many colleagues and students have worked on aspects of the \gls{MTASK} system in collaborations, internships and Bachelor and Master's theses.
 This section provides an exhaustive overview of the work on \gls{MTASK} and its predecessors.
@@ -286,7 +286,7 @@ There was no support for tasks nor functions.
 Some time later in the 2015 \gls{CEFP} summer school, an extended version was created that allowed the creation of imperative tasks, local \glspl{SDS} and the usage of functions \citep{koopman_type-safe_2019}.
 The name then changed from \gls{ARDSL} to \gls{MTASK}.
 
-\subsection{Integration with \texorpdfstring{\gls{ITASK}}{iTask}}
+\subsection{Integration with iTask}
 \Citet{lubbers_task_2017} extended this in his Master's Thesis by adding integration with \gls{ITASK} and a bytecode compiler to the language.
 \Gls{SDS} in \gls{MTASK} could be accessed on the \gls{ITASK} server.
 In this way, entire \gls{IOT} systems could be programmed from a single source.
@@ -295,7 +295,7 @@ This was later improved upon by creating a simplified interface where \glspl{SDS
 It was shown by \citet{amazonas_cabral_de_andrade_developing_2018} that it was possible to build real-life \gls{IOT} systems with this integration.
 Moreover, a course on the \gls{MTASK} simulator was provided at the 2018 \gls{CEFP}\slash\gls{3COWS} winter school in Ko\v{s}ice, Slovakia \citep{koopman_simulation_2023}.
 
-\subsection{Transition to \texorpdfstring{\glsxtrlong{TOP}}{Task-oriented programming}}
+\subsection{Transition to Task-oriented programming}
 The \gls{MTASK} language as it is now was introduced in 2018 \citep{koopman_task-based_2018}.
 This paper updated the language to support functions, simple tasks, and \glspl{SDS} but still compiled to \gls{ARDUINO} \gls{CPP} code.
 Later the byte code compiler and \gls{ITASK} integration was added to the language \citep{lubbers_interpreting_2019}.
@@ -303,13 +303,13 @@ Moreover, it was shown that it is very intuitive to write microcontroller applic
 One reason for this is that a lot of design patterns that are difficult using standard means are for free in \gls{TOP} (e.g.\ multithreading).
 In 2019, the \gls{CEFP}\slash\gls{3COWS} summer school in Budapest, Hungary hosted a course on developing \gls{IOT} applications with \gls{MTASK} as well \citep{lubbers_writing_2023}.
 
-\subsection{\texorpdfstring{\Glsxtrlong{TOP}}{Task-oriented programming}}
+\subsection{Task-oriented programming}
 In 2022, the SusTrainable summer school in Rijeka, Croatia hosted a course on developing greener \gls{IOT} applications using \gls{MTASK} \citep{lubbers_green_2022}.
 Several students worked on extending \gls{MTASK} with many useful features:
 \citet{van_der_veen_mutable_2020} did preliminary work on a green computing analysis, built a simulator, and explored the possibilities for adding bounded datatypes; de Roos explored beautifying error messages; \citet{de_boer_secure_2020} investigated the possibilities for secure communication channels; \citeauthor{crooijmans_reducing_2021} \citeyearpar{crooijmans_reducing_2021,crooijmans_reducing_2022} added abstractions for low-power operation to \gls{MTASK} such as hardware interrupts and power efficient scheduling; and \citet{antonova_mtask_2022} defined a preliminary formal semantics for a subset of \gls{MTASK}.
 In 2023, the SusTrainable summer school in Coimbra, Portugal will host a course on \gls{MTASK}.
 
-\subsection{\texorpdfstring{\gls{MTASK}}{mTask} in practise}
+\subsection{Using mTask in practise}
 Funded by the Radboud-Glasgow Collaboration Fund, collaborative work was executed with Phil Trinder, Jeremy Singer, and Adrian Ravi Kishore Ramsingh.
 An existing smart campus application was developed using \gls{MTASK} and quantitatively and qualitatively compared to the original application that was developed using a traditional \gls{IOT} stack \citep{lubbers_tiered_2020}.
 This research was later extended to include a four-way comparison: \gls{PYTHON}, \gls{MICROPYTHON}, \gls{ITASK}, and \gls{MTASK} \citep{lubbers_could_2022}.