X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;ds=sidebyside;f=system.edsl.tex;fp=system.edsl.tex;h=3a65f2fe39de10378721f5bb4db0034edd573d1a;hb=bb33f56ac032b65a9ed06d21d7907270cf2c2a25;hp=0000000000000000000000000000000000000000;hpb=5f16025bb38f5ecfc037a1614819658efed63b13;p=msc-thesis1617.git diff --git a/system.edsl.tex b/system.edsl.tex new file mode 100644 index 0000000..3a65f2f --- /dev/null +++ b/system.edsl.tex @@ -0,0 +1,15 @@ +Not all \glspl{Task} are suitable to run on an \gls{IoT}-device and therefore +an \gls{EDSL} is used to offer a constrained language to express \glspl{Task} +for the new system in. The \gls{mTask}-\gls{EDSL} shown in +Chapter~\ref{chp:mtask} provides a language for creating imperative programs +that are suitable for running on microcontrollers. The \gls{EDSL}'s main view +is a \gls{C} code generator who's code compiles for \gls{Arduino} compatible +microcontrollers. The big downside of this approach is the stiffness of the +system. Once the code has been generated and the microcontroller has been +programmed, nothing can be changed to it anymore. \gls{IoT}-devices often have +a limited amount of write cycles on their program memory available and +therefore it is very expensive to keep recompiling and reprogramming the chips. +To solve this problem, a new view is proposed for the \gls{mTask}-\gls{EDSL} +which compiles the expressions not to \gls{C}-code but to a bytecode format. To +achieve this, several classes have been added to the \gls{mTask}-\gls{EDSL}. +Some functionality of the \gls{mTask} system is not used.