errata
[phd-thesis.git] / back / summary.tex
index 6527955..6a8335e 100644 (file)
@@ -4,39 +4,33 @@
 
 \begin{document}
 \input{subfileprefixsmall}
-\chapter{Summary}%
+\ifSubfilesClassLoaded{\chapter*{Summary}}{\chapter{Summary}}%
 \label{chp:summary}%
 \glsresetall%
-%\begin{center}
-%\noindent%
-The number of computers around us is growing exponentially, thus increasing the complexity of the systems in which they operate as well.
-Many of these computers are \emph{edge devices} operating in \gls{IOT} systems.
-Within these orchestras of computers, they interact with their environment using sensors and actuators.
-Edge devices usually use cheap microcontrollers designed for embedded applications, and therefore have little memory, unhurried processors, no \gls{OS}, and slow communication but are tiny and energy efficient.
-Programming \gls{IOT} systems is complex since they are dynamic, interactive, distributed, collaborative, multi-tiered, and multitasking.
-This is impeded even more by semantic friction that arises through different hardware and software characteristics between the tiers.
+The development of reliable software for the \gls{IOT} is difficult because \gls{IOT} systems are dynamic, interactive, distributed, collaborative, multi-tiered, and multitasking in nature.
+The complexity is increased further by semantic friction that arises through different hardware and software characteristics between tiers.
+Many computers that operate in \gls{IOT} systems are \emph{edge devices} that interact with the environment using sensors and actuators.
+Edge devices are often powered by low-cost microcontrollers designed for embedded applications.
+They have little memory, unhurried processors, and are slow in communication but are also small and energy efficient.
 
-A solution is found in \gls{TOP}, a declarative programming paradigm.
+\Gls{TOP} can cope with the challenges of \gls{IOT} programming.
 In \gls{TOP}, the main building blocks are tasks, an abstract representation of work.
-During execution, the task's current value, is observable and other tasks can act upon it.
-Tasks can be combined and transformed to create compound tasks, allowing the modelling of many collaboration patterns.
-From this declarative description of the work, a ready-for-work computer system is generated that guides the user in doing the work.
-An example of a \gls{TOP} system is \gls{ITASK}, a language for describing interactive web applications.
-Programming edge devices would benefit from \gls{TOP} as well.
-However, it is not straightforward to run \gls{TOP} systems on resource-constrained edge devices.
+During execution, the current value of the task is observable, and other tasks can act upon it.
+Collaboration patterns can be modelled by combining and transforming tasks into compound tasks.
+Programming edge devices benefits from \gls{TOP} as well, but running such a system within the limitations of resource-constrained microcontrollers is not straightforward.
 
-This dissertation shows how to orchestrate complete \gls{IOT} systems using \gls{TOP}.
-%
+This dissertation demonstrates how to include edge devices in \gls{TOP} systems using \glspl{DSL}.
+With these techniques, all tiers and their interoperation of an \gls{IOT} system are specified in a single high-level source, language, paradigm, high abstraction level, and type system.
 First, I present advanced \gls{DSL} embedding techniques.
 Then \gls{MTASK} is shown, a \gls{TOP} \gls{DSL} for \gls{IOT} edge devices, embedded in \gls{ITASK}.
-Tasks are constructed and compiled at run time to allow tasks to be tailor-made for the work that needs to be done.
-The compiled task is sent to the device for interpretation.
-For a device to be used in an \gls{MTASK} system, it needs to be programmed once with a lightweight domain-specific \gls{OS}.
-This \gls{OS} executes tasks in an energy efficient way and automates all communication and data sharing.
-All aspects of the \gls{MTASK} system are shown: example applications, language design, implementation details, integration with \gls{ITASK}, and green computing facilities.
-When using \gls{MTASK} in conjunction with \gls{ITASK}, entire \gls{IOT} systems are programmed tierlessly from a single source, paradigm, high abstraction level, and type system.
-The dissertation concludes with a comparison between tierless programming and traditional tiered programming.
-We show that many problems such as semantic friction, maintainability, robustness, and interoperation safety are mitigated when using tierless programming.
+Tasks are constructed and compiled at run time in order to allow tasks to be tailored to the current work requirements.
+The task is then sent to the device for interpretation.
+A device is programmed once with a lightweight domain-specific \gls{OS} to be used in an \gls{MTASK} system.
+This \gls{OS} executes tasks in an energy-efficient way and automates all communications and data sharing.
+All aspects of the \gls{MTASK} system are shown: example applications, language design, implementation details, integration with \gls{ITASK}, and green computing facilities such as automatic sleeping.
+
+Finally, tierless \gls{IOT} programming is compared to traditional tiered programming.
+In tierless programming frameworks, the size of the code and the number of required programming languages is reduced significantly.
+By using a single paradigm and a system-wide type system, tierless programming reduces problems such as semantic friction; maintainability and robustness issues; and interoperation safety.
 %This is a summary of 350--400 words.
-%\end{center}
 \end{document}