add relevant research
[msc-thesis1617.git] / methods.mtask.tex
index 941d95e..a35883a 100644 (file)
@@ -1,4 +1,3 @@
-\section{mTask}
 The \gls{mTask}-\gls{EDSL} is the basis on which the system is built. The
 \gls{mTask}-\gls{EDSL} was created by Koopman et al.\ to support several views
 such as an \gls{iTasks} simulation and a \gls{C}-code generator. The \gls{EDSL}
 The \gls{mTask}-\gls{EDSL} is the basis on which the system is built. The
 \gls{mTask}-\gls{EDSL} was created by Koopman et al.\ to support several views
 such as an \gls{iTasks} simulation and a \gls{C}-code generator. The \gls{EDSL}
@@ -8,7 +7,7 @@ microcontrollers such as the Arduino\cite{koopman_type-safe_nodate}%
 
 The \gls{mTask}-\gls{EDSL} is a shallowly embedded class based \gls{EDSL} and
 therefore it is very suitable to have a new backend that partly implements the
 
 The \gls{mTask}-\gls{EDSL} is a shallowly embedded class based \gls{EDSL} and
 therefore it is very suitable to have a new backend that partly implements the
-given classes. The following subsections show the details of the \gls{EDSL}
+given classes. The following sections show the details of the \gls{EDSL}
 that are used in this extension. The parts of the \gls{EDSL} that are not used
 will not be discussed and the details of those parts can be found in the cited
 literature.
 that are used in this extension. The parts of the \gls{EDSL} that are not used
 will not be discussed and the details of those parts can be found in the cited
 literature.
@@ -36,14 +35,14 @@ instance isExpr Upd
 instance isExpr Expr
 \end{lstlisting}
 
 instance isExpr Expr
 \end{lstlisting}
 
-\subsection{Semantics}
+\section{Semantics}
 \gls{mTask} do not behave like functions but more like
 \gls{iTasks}-\glspl{Task}. When an \gls{mTask} is created it returns immediatly
 and the \gls{Task} will be executed sometime in the future. \glspl{Task} can
 run at an interval and they can start other tasks.
 \todo{Meer uitwijden over de mTask semantiek}
 
 \gls{mTask} do not behave like functions but more like
 \gls{iTasks}-\glspl{Task}. When an \gls{mTask} is created it returns immediatly
 and the \gls{Task} will be executed sometime in the future. \glspl{Task} can
 run at an interval and they can start other tasks.
 \todo{Meer uitwijden over de mTask semantiek}
 
-\subsection{Expressions}
+\section{Expressions}
 Expressions in the \gls{mTask}-\gls{EDSL} are divided into two types, namely
 boolean expressions and arithmetic expressions. The class of arithmetic
 language constructs also contains the function \CI{lit} that lifts a
 Expressions in the \gls{mTask}-\gls{EDSL} are divided into two types, namely
 boolean expressions and arithmetic expressions. The class of arithmetic
 language constructs also contains the function \CI{lit} that lifts a
@@ -67,7 +66,7 @@ class boolExpr v where
   (==.) infix 4 :: (v a p) (v a q) -> v Bool Expr       | ==, toCode a & ...
 \end{lstlisting}
 
   (==.) infix 4 :: (v a p) (v a q) -> v Bool Expr       | ==, toCode a & ...
 \end{lstlisting}
 
-\subsection{Control flow}
+\section{Control flow}
 Looping of \glspl{Task} happens because \glspl{Task} are launched at regular
 intervals or relaunch themselves. Therefore there is no need for loop control
 flow functionality such as \CI{While} or \CI{For} constructions. The main
 Looping of \glspl{Task} happens because \glspl{Task} are launched at regular
 intervals or relaunch themselves. Therefore there is no need for loop control
 flow functionality such as \CI{While} or \CI{For} constructions. The main
@@ -87,7 +86,7 @@ class seq v where
   (:.) infixr 0 :: (v t p) (v u q) -> v u Stmt | ...
 \end{lstlisting}
 
   (:.) infixr 0 :: (v t p) (v u q) -> v u Stmt | ...
 \end{lstlisting}
 
-\subsection{Input/Output and class extensions}
+\section{Input/Output and class extensions}
 All expressions that have an \CI{Upd} role can be assigned to. Examples of such
 expressions are \glspl{SDS} and \gls{GPIO}. Moreover, class extensions can be
 created for specific peripherals such as user LEDs. The classes facilitating
 All expressions that have an \CI{Upd} role can be assigned to. Examples of such
 expressions are \glspl{SDS} and \gls{GPIO}. Moreover, class extensions can be
 created for specific peripherals such as user LEDs. The classes facilitating
@@ -133,7 +132,7 @@ class sds v where
   sds :: ((v t Upd)->In t (Main (v c s))) -> (Main (v c s)) | ...
 \end{lstlisting}
 
   sds :: ((v t Upd)->In t (Main (v c s))) -> (Main (v c s)) | ...
 \end{lstlisting}
 
-\subsection{Example \gls{mTask}}
+\section{Example mTask}
 \todo{Also explain semantics about running tasks}
 Some example \glspl{mTask} using almost all of the functionality are show in
 Listing~\ref{lst:exmtask}. The \glspl{mTask} shown in the example do not belong
 \todo{Also explain semantics about running tasks}
 Some example \glspl{mTask} using almost all of the functionality are show in
 Listing~\ref{lst:exmtask}. The \glspl{mTask} shown in the example do not belong