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 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 is specified in a single high-level source, language, paradigm, high abstraction level, and type system.
+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 in order to allow tasks to be tailored to the current work requirements.
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 semantic friction; maintainability and robustness issues; and interoperation safety.
+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{document}