-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 semantic friction; maintainability and robustness issues; and interoperation safety.