-Typically these edge devices are small microprocessors containing various sensors and actuators to interact with the physical world.
-They are often part of and coordinated by a bigger system called \gls{IOT} systems.
-The variety among the edge devices and the fact that they differ substantially from other devices makes it complex to program \gls{IOT} systems.
-
-%These ed
-%These edge devices differ very much from other devices we see around us.
-%Compared to servers, laptops, tablets, or mobile phones they boast tiny amounts of memory, are powered by a slow but energy efficient microprocessor, only support low-level programming languages, and are not so easily reprogrammed.
-%Moreover, these edge devices differ among eachother as well by using various microprocessor architectures, different communication protocols and using a variety of device-specific toolchains.
-%As a result, there are many points of failure and programming these systems is difficult and error-prone.
-%
-%\Gls{TOP} is a novel programming paradigm that offers a solution to this problem.
-%In a \gls{TOP} language, from a single declarative specification of the work that needs to be done, ready-for-work applications are generated for all layers of the system.
-%However, the hardware requirements for traditional \gls{TOP} frameworks make it not feasable to run these generated applications on resource-constrained edge devices.
-%
-%\Glspl{DSL} can overcome this limitation because domain-specific knowledge is built into the programming language, allowing for lower hardware requirements.
-%This thesis presents \gls{MTASK}, a \gls{TOP} \gls{DSL} for edge devices that can be fully integrated with \gls{ITASK}, a \gls{TOP} \gls{DSL} for distributed multi-user workflow systems.
-%With \gls{MTASK}, all layers of an \gls{IOT} system can be programmed from a single programming language in a single programming paradigm.
+Typically these edge devices are small microcontrollers containing sensors and actuators to interact with the physical world.
+Microcontrollers are integrated circuits containing a microprocessor designed for use in embedded applications.
+The edge devices come in many different types and they differ substantially from the other devices in the system.
+Consequently, programming \gls{IOT} systems is very complex and error prone.
+Hence, an \gls{IOT} programmer has to program each device and their interoperation using different programming paradigms, programming languages, and abstraction levels resulting in semantic friction.
+
+This thesis introduces research on the many aspects of orchestrating \gls{IOT} systems using \gls{TOP}.
+\Gls{TOP} is a innovative tierless programming paradigm for programming multi-tier interactive systems using a single declarative specification of the work that needs to be done.
+Using advanced compiler technologies, much of the internals and communication of multi-tier applications is automatically generated and the result of compilation is a ready-for-work application.
+Unfortunately, because the abstraction level is so high, the hardware requirements are too excessive to be suitable for the average edge device.
+
+This is where \glspl{DSL} come into play.
+\Glspl{DSL} are languages created with a specific domain in mind.
+Consequently, domain knowledge does not have to be expressed in the language itself but they can be built-in features, thus drastically reducing the hardware requirements even with high levels of abstraction.
+
+\section{Reading guide}
+On Wikipedia, a musical rhapsody is defined as follows \citep{wikipedia_contributors_rhapsody_2022}:
+\begin{quote}\emph{%
+ A \emph{rhapsody} in music is a one-movement work that is episodic yet integrated, free-flowing in structure, featuring a range of highly contrasted moods, colour, and tonality.}
+\end{quote}
+This thesis is structured as a pure functional rhapsody containing three episodes barded by the introduction and conclusion (\cref{chp:introduction,chp:conclusion}).
+\Cref{prt:dsl} is a paper-based---otherwise known as cumulative---episode providing insight in advanced \gls{DSL} embedding techniques.
+The chapters are readable independently.
+\Cref{prt:top} is a monograph showing \gls{MTASK}, a \gls{TOP} \gls{DSL} for the \gls{IOT}.
+Hence, the chapters are best read in order.
+\Cref{prt:tvt} is a journal article in which traditional tiered \gls{IOT} programming is qualitatively and quantitatively compared to tierless programming using a real-world application.
+The chapter is readable independently.
+
+The following sections provide background material on the \gls{IOT}, \glspl{DSL}, and \gls{TOP} after which a detailed overview of the contributions is presented.
+Text typeset as \texttt{teletype} represents source code.
+Standalone source code listings are used are marked with the programming language used.
+For the \gls{FP} language \gls{CLEAN}, a guide tailored to \gls{HASKELL} programmers is available as in \cref{chp:clean_for_haskell_programmers}.