process all comments
[phd-thesis.git] / concl / concl.tex
index b2ce8e5..c05becb 100644 (file)
@@ -2,7 +2,7 @@
 
 \input{subfilepreamble}
 
 
 \input{subfilepreamble}
 
-\setcounter{chapter}{9}
+\setcounter{chapter}{10}
 
 \begin{document}
 \input{subfileprefix}
 
 \begin{document}
 \input{subfileprefix}
@@ -20,18 +20,18 @@ The edge, or perception, layer of an \gls{IOT} system is often powered by microc
 These small and cheap computers do not have powerful hardware but are energy efficient and support many sensors and actuators.
 While the term \gls{IOT} has already been known for almost thirty years, only recently, the exponential growth of the number of \gls{IOT} edge devices is really ramping up.
 Programming \gls{IOT} systems is very complex because each layer of the system is built with different computers, hardware architectures, programming languages, programming paradigms, and abstraction levels.
 These small and cheap computers do not have powerful hardware but are energy efficient and support many sensors and actuators.
 While the term \gls{IOT} has already been known for almost thirty years, only recently, the exponential growth of the number of \gls{IOT} edge devices is really ramping up.
 Programming \gls{IOT} systems is very complex because each layer of the system is built with different computers, hardware architectures, programming languages, programming paradigms, and abstraction levels.
-This generates a lot of semantic friction.
+This generates a lot of semantic friction.\todo[inline]{benoem ook de andere problemen. Geen over all type check om correcte samenwerking te garanderen.}
 Furthermore, \gls{IOT} systems become convoluted because they are dynamic, multi-tiered, multi-user, multitasking, interactive, distributed, and collaborative in nature.
 \Gls{TOP} proves a suitable programming paradigm that allows the declarative specification of exactly such systems.
 However, edge devices are often too computationally restricted to be able to run a full-fledged \gls{TOP} system such as \gls{ITASK}.
 The dissertation is structured as a purely functional rhapsody in three episodes.
 
 Furthermore, \gls{IOT} systems become convoluted because they are dynamic, multi-tiered, multi-user, multitasking, interactive, distributed, and collaborative in nature.
 \Gls{TOP} proves a suitable programming paradigm that allows the declarative specification of exactly such systems.
 However, edge devices are often too computationally restricted to be able to run a full-fledged \gls{TOP} system such as \gls{ITASK}.
 The dissertation is structured as a purely functional rhapsody in three episodes.
 
-In order to get \gls{TOP} to resource-constraind edge devices we use special tools: \glspl{DSL}.
-The dissertation shows several techniques for creating \glspl{EDSL}.
-Then it shows a tool, \gls{MTASK}, a \gls{TOP} system for \gls{IOT} edge devices.
-Finally it compares how this approach compares to existing approaches for programming \gls{IOT} systems.
+In order to get \gls{TOP} to resource-constrained edge devices we use special tools: \glspl{DSL}.
+The dissertation shows several techniques for creating \glspl{EDSL} in \cref{prt:dsl}.
+Then it shows a tool, \gls{MTASK}, a \gls{TOP} system for \gls{IOT} edge devices in \cref{prt:top}.
+Finally, in \cref{prt:tvt} it compares how this approach compares to existing approaches for programming \gls{IOT} systems.
 
 
-\subsection{Tool craft}
+\subsection{\nameref{prt:dsl}}
 \Cref{prt:dsl} presents some tool crafting techniques that are useful for creating \gls{TOP} languages for \gls{IOT} edge devices.
 It presents two novel techniques for embedding \glspl{DSL} in \gls{FP} languages.
 
 \Cref{prt:dsl} presents some tool crafting techniques that are useful for creating \gls{TOP} languages for \gls{IOT} edge devices.
 It presents two novel techniques for embedding \glspl{DSL} in \gls{FP} languages.
 
@@ -49,7 +49,9 @@ They are not automatically useable in the \gls{DSL} because the interfaces such
 I show how to automatically generate the required boilerplate for shallowly embedded \glspl{DSL} in order to make data types from the host language first-class citizens in the \gls{DSL}.
 The scaffolding is generated using template metaprogramming and quasiquotation is used to alleviate the programmer from the syntax burden and support pattern matching.
 
 I show how to automatically generate the required boilerplate for shallowly embedded \glspl{DSL} in order to make data types from the host language first-class citizens in the \gls{DSL}.
 The scaffolding is generated using template metaprogramming and quasiquotation is used to alleviate the programmer from the syntax burden and support pattern matching.
 
-\subsection{Tools}
+\todo[inline]{Paar zinnen over het nut van deze tool crafts: het maakt het voor DSL-developpers in het algemeen makkelijker om uitbreidbare DSLs te maken.}
+
+\subsection{\nameref{prt:top}}
 General-purpose \gls{TOP} systems cannot run on edge devices due to their significant hardware requirements.
 However, with the right techniques, \glspl{DSL} can be created that can be executed on edge devices while maintaining the high abstraction level.
 By embedding domain-specific knowledge into the language and execution platform, and leaving out general-purpose functionality, \gls{TOP} languages can be made suitable for edge devices.
 General-purpose \gls{TOP} systems cannot run on edge devices due to their significant hardware requirements.
 However, with the right techniques, \glspl{DSL} can be created that can be executed on edge devices while maintaining the high abstraction level.
 By embedding domain-specific knowledge into the language and execution platform, and leaving out general-purpose functionality, \gls{TOP} languages can be made suitable for edge devices.
@@ -64,12 +66,14 @@ This tight integration makes programming full \gls{IOT} systems using \gls{TOP}
 Using only three simple functions, devices are connected to \gls{ITASK} servers, \gls{MTASK} tasks are integrated in \gls{ITASK}, and \gls{ITASK} \glspl{SDS} accessed from within \gls{MTASK} tasks.
 Its design, integration with \gls{ITASK}, implementation, and green computing facilities are shown.
 
 Using only three simple functions, devices are connected to \gls{ITASK} servers, \gls{MTASK} tasks are integrated in \gls{ITASK}, and \gls{ITASK} \glspl{SDS} accessed from within \gls{MTASK} tasks.
 Its design, integration with \gls{ITASK}, implementation, and green computing facilities are shown.
 
-\subsection{Comparison}
+\todo[inline]{Paar zinnen over het nut}
+
+\subsection{\nameref{prt:tvt}}
 Using tierless programming, many issues that arise with tiered programming are mitigated.
 This has already been observed in web applications.
 The \gls{MTASK} system show that it is possible to program edge devices of a \gls{IOT} systems using \gls{TOP}.
 Furthermore, when used together with \gls{ITASK}, entire \gls{IOT} systems can be programmed tierlessly.
 Using tierless programming, many issues that arise with tiered programming are mitigated.
 This has already been observed in web applications.
 The \gls{MTASK} system show that it is possible to program edge devices of a \gls{IOT} systems using \gls{TOP}.
 Furthermore, when used together with \gls{ITASK}, entire \gls{IOT} systems can be programmed tierlessly.
-The question whether this novel approach to programming tiered systems also reduces the \gls{IOT} develop grief is answered in \cref{prt:tvt}.
+Whether this novel approach to programming tiered systems also reduces the \gls{IOT} develop grief is answered in \cref{prt:tvt}.
 This episode presents a four-way qualitative and quantitative comparison of the following systems:
 \gls{PRS}, a tiered system based on resource-rich edge devices powered by \gls{PYTHON};
 \gls{PWS}, a tiered system based on resource-constrained edge devices by \gls{MICROPYTHON};
 This episode presents a four-way qualitative and quantitative comparison of the following systems:
 \gls{PRS}, a tiered system based on resource-rich edge devices powered by \gls{PYTHON};
 \gls{PWS}, a tiered system based on resource-constrained edge devices by \gls{MICROPYTHON};