X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=methods.mtask.tex;h=38930c5bc762c6fd47182bcca9377003583a0563;hb=36d2564cca6ffab6506198f13545e5d02cf2b5cc;hp=1f5c4ec2035eb69872f43008861caa925852ad0c;hpb=c7dbfdf743febd94770d3ce10d7d532a6bdd94cc;p=msc-thesis1617.git diff --git a/methods.mtask.tex b/methods.mtask.tex index 1f5c4ec..38930c5 100644 --- a/methods.mtask.tex +++ b/methods.mtask.tex @@ -128,10 +128,10 @@ class assign v where (=.) infixr 2 :: (v t Upd) (v t p) -> v t Expr | ... \end{lstlisting} -One way of storing data in \glspl{mTask} is using \glspl{SDS}. \glspl{SDS} -serve as variables in \gls{mTask} and maintain their value across executions. -\glspl{SDS} can be used by multiple \glspl{Task} and can be used to share data. -The classes associated with \glspl{SDS} are listed in +One way of storing data in \gls{mTask}-\glspl{Task} is using \glspl{SDS}. +\glspl{SDS} serve as variables in \gls{mTask} and maintain their value across +executions. \glspl{SDS} can be used by multiple \glspl{Task} and can be used +to share data. The classes associated with \glspl{SDS} are listed in Listing~\ref{lst:sdsclass}. The \CI{Main} type is introduced to box an \gls{mTask} and make it recognizable by the type system by separating programs and decorations such as \glspl{SDS}. @@ -148,7 +148,7 @@ class sds v where \section{Semantics} The \gls{C}-backend of the \gls{mTask}-system has an engine that is generated alongside the code for the \glspl{Task}. This engine will execute the -\glspl{mTask} according to certain rules and semantics. +\gls{mTask}-\glspl{Task} according to certain rules and semantics. \gls{mTask}-\glspl{Task} do not behave like functions but more like \gls{iTasks}-\glspl{Task}. An \gls{mTask} is queued when either its timer runs out or when it is launched by another \gls{mTask}. When an \gls{mTask} is @@ -205,20 +205,20 @@ count = task \count = (\n.count (lit 1000) (n +. One)) In {main = count (lit 100 \end{lstlisting} \section{Example mTask} -Some example \glspl{mTask} using almost all of their functionality are shown in -Listing~\ref{lst:exmtask}. The \glspl{mTask} shown in the example do not belong -to a particular view and therefore are of the type \CI{View t r}. The -\CI{blink} \gls{mTask} show the classic \gls{Arduino} blinking led application -that blinks a certain \gls{LED} every second. The \CI{thermostat} expression -will enable a digital pin powering a cooling fan when the analog pin -representing a temperature sensor is too high. \CI{thermostat`} shows the same -expression but now using the assignment style \gls{GPIO} technique. The -\CI{thermostat} example also shows that it is not necessary to run everything -as a \CI{task}. The main program code can also just consist of the contents of -the root \CI{main} itself. +Some example \gls{mTask}-\glspl{Task} using almost all of their functionality +are shown in Listing~\ref{lst:exmtask}. The \gls{mTask}-\glspl{Task} shown in +the example do not belong to a particular view and therefore are of the type +\CI{View t r}. The \CI{blink} \gls{mTask} show the classic \gls{Arduino} +blinking led application that blinks a certain \gls{LED} every second. The +\CI{thermostat} expression will enable a digital pin powering a cooling fan +when the analog pin representing a temperature sensor is too high. +\CI{thermostat`} shows the same expression but now using the assignment style +\gls{GPIO} technique. The \CI{thermostat} example also shows that it is not +necessary to run everything as a \CI{task}. The main program code can also just +consist of the contents of the root \CI{main} itself. \begin{lstlisting}[% - label={lst:exmtask},caption={Some example \glspl{mTask}}] + label={lst:exmtask},caption={Some example \gls{mTask}-\glspl{Task}}] blink = task \blink=(\x. IF (x ==. lit True) (ledOn led) (ledOff led) :. blink (lit 1000) (Not x)