X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=mtask.tex;h=397511d8e1eb590e972e2457d88b87b0af426ece;hb=2498dced580be1e7af31a662dadee26c4fd159ed;hp=938d9d4ccd2d44fb394b632bca2dc40eae196843;hpb=cbc3fdf2cc344248d0e81505622ce1294c7d311e;p=msc-thesis1617.git diff --git a/mtask.tex b/mtask.tex index 938d9d4..397511d 100644 --- a/mtask.tex +++ b/mtask.tex @@ -15,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 @@ -41,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}