Manual interleaving of imperative code can be automated to certain extents.
Solutions often require an \gls{RTOS}, have a high memory requirement, do not support local variables, no thread-safe shared memory, no composition or no events as described in \cref{tbl:multithreadingcompare}.
This table extends a comparison table with various solutions to multitasking to \gls{MTASK} in the relevant categories.
-\todo[inline]{Uitleg over de talen geven}
+%\todo[inline]{Uitleg over de talen geven}
\begin{table}
\begin{threeparttable}
Due to the compilation to \gls{C} it is possible to run emfrp programs on tiny computers.
However, in contrast to in \gls{MTASK}, the tasks are not interpreted and there is no automated communication with a server.
-Other examples are CFRP \citep{suzuki_cfrp_2017}, XFRP \citep{10.1145/3281366.3281370}, Juniper \citep{helbling_juniper:_2016}, Hailstorm \citep{sarkar_hailstorm_2020}, Haski \citep{valliappan_towards_2020}, arduino-copilot \citep{hess_arduino-copilot_2020}.
+Other examples are CFRP \citep{suzuki_cfrp_2017}, XFRP \citep{shibanai_distributed_2018}, Juniper \citep{helbling_juniper:_2016}, Hailstorm \citep{sarkar_hailstorm_2020}, Haski \citep{valliappan_towards_2020}, arduino-copilot \citep{hess_arduino-copilot_2020}.
\subsection{Task-oriented programming}\label{sec:related_top}
\Gls{TOP} as a paradigm has proven to be effective for implementing distributed, multi-user applications in many domains.
Furthermore, creating checkpoints should be fairly straightforward as \gls{MTASK} tasks do not rely on any global state---all information required to execute a task is stored in the task tree.
It is interesting to see what \gls{TOP} abstraction are useful for intermittent computing and what solutions are required to make this work.
-Mesh networks allow for communication not only to-and-fro the device and server but also between devices.
+Mesh networks allow for communication not only to and fro the device and server but also between devices.
The \gls{ITASK} system already contains primitives for distributed operation.
For example, it is possible to run tasks or share data with \glspl{SDS} on different machines.
It is interesting to investigate how this networking technique can be utilised in \gls{MTASK}.