Merge branch 'master' of git.martlubbers.net:msc-thesis1617
[msc-thesis1617.git] / mtask.tex
index 12bf498..397511d 100644 (file)
--- a/mtask.tex
+++ b/mtask.tex
@@ -1,5 +1,4 @@
-The \gls{mTask}-\gls{EDSL} is the language used for the proposed system. The
-\gls{mTask}-\gls{EDSL} was created by Koopman et al.\ and supports several
+The \gls{mTask}-\gls{EDSL} was created by Koopman et al.\ and supports several
 views such as an \gls{iTasks} simulation and a \gls{C}-code generator. The
 \gls{EDSL} was designed to generate a ready-to-compile \gls{TOP}-like program
 for microcontrollers such as the \gls{Arduino}~\cite{koopman_type-safe_nodate}%
@@ -16,16 +15,18 @@ A view for the \gls{mTask}-\gls{EDSL} is a type with two free type
 variables\footnote{kind \CI{*->*->*}.} that implements some of the classes
 given. The types do not have to be present as fields in the view and can, and
 will most often, be exclusively phantom types. Thus, views are of the
-form:\\\CI{:: v t r = ...}. The first type variable will be the type of the
+form: \CI{:: v t r = ...}. The first type variable will be the type of the
 view. The second type variable will be the type of the \gls{EDSL}-expression
 and the third type variable represents the role of the expression. Currently
 the role of the expressions form a hierarchy. The three roles and their
 hierarchy are shown in Listing~\ref{lst:exprhier}. This implies that everything
 is a statement, only an \CI{Upd} and an \CI{Expr} are expressions. The \CI{Upd}
 restriction describes updatable expressions such as \gls{GPIO} pins and
-\glspl{SDS}.
+\glspl{SDS}. The roles are used to constrain certain classes. For example,
+without the roles for \CI{Upd}. Assignment would be possible to a
+non-assignable expression such as a literal integer.
 
-\begin{lstlisting}[%
+\begin{lstlisting}[language=Clean,%
        label={lst:exprhier},caption={Expression role hierarchy}]
 :: Upd   = Upd
 :: Expr  = Expr
@@ -42,11 +43,14 @@ instance isExpr Expr
 \section{Control flow}
 \input{mtask.control}
 
-\section{Input/Output and class extensions}
+\section{Input/Output}
 \input{mtask.io}
 
-\section{Semantics}
-\input{mtask.semantics}
+\section{Class Extensions}
+\input{mtask.class}
+
+\section{Scheduling Strategy}
+\input{mtask.scheduling}
 
 \section{Example mTask}
 \input{mtask.examples}