1 Not all
\glspl{Task
} are suitable to run on an
\gls{IoT
}-device and therefore
2 an
\gls{EDSL
} is used to offer a constrained language to express
\glspl{Task
}
3 for the new system in. The
\gls{mTask
}-
\gls{EDSL
} shown in
4 Chapter~
\ref{chp:mtask
} provides a language for creating imperative programs
5 that are suitable for running on microcontrollers. The
\gls{EDSL
}'s main view
6 is a
\gls{C
} code generator who's code compiles for
\gls{Arduino
} compatible
7 microcontrollers. The big downside of this approach is the stiffness of the
8 system. Once the code has been generated and the microcontroller has been
9 programmed, nothing can be changed to it anymore.
\gls{IoT
}-devices often have
10 a limited amount of write cycles on their program memory available and
11 therefore it is very expensive to keep recompiling and reprogramming the chips.
12 To solve this problem, a new view is proposed for the
\gls{mTask
}-
\gls{EDSL
}
13 which compiles the expressions not to
\gls{C
}-code but to a bytecode format. To
14 achieve this, several classes have been added to the
\gls{mTask
}-
\gls{EDSL
}.
15 Some functionality of the
\gls{mTask
} system is not used.