X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=methods.mtask.tex;h=1662d6d64e409e4e8bd98162c02fc502f8f76964;hb=7b0fe8509016c0841d35239dc87150e945cfd960;hp=67f4b4e264522312dc5ee6ecbf54c08638e8957e;hpb=d11a7941da4024ec8ff9ef6afaebb6eb9d2c6ed4;p=msc-thesis1617.git diff --git a/methods.mtask.tex b/methods.mtask.tex index 67f4b4e..1662d6d 100644 --- a/methods.mtask.tex +++ b/methods.mtask.tex @@ -26,7 +26,7 @@ restriction describes updatable expressions such as \gls{GPIO} pins and \glspl{SDS}. \begin{lstlisting}[% - language=Clean,label={lst:exprhier},caption={Expression role hierarchy}] + label={lst:exprhier},caption={Expression role hierarchy}] :: Upd = Upd :: Expr = Expr :: Stmt = Stmt @@ -46,7 +46,7 @@ brevity. Moreover, the class restrictions are only shown in the first functions and omitted in subsequent funcitons. Both the boolean expression and arithmetic expression classes are shown in Listing~\ref{lst:arithbool}. -\begin{lstlisting}[language=Clean,label={lst:arithbool}, +\begin{lstlisting}[label={lst:arithbool}, caption={Basic classes for expressions}] class arith v where lit :: t -> v t Expr @@ -76,7 +76,7 @@ The sequence operator is very straightforward and just ties the two expressions together in sequence. \begin{lstlisting}[% - language=Clean,label={lst:control},caption={Control flow operators}] + label={lst:control},caption={Control flow operators}] class If v q r ~s where If :: (v Bool p) (v t q) (v t r) -> v t s | ... @@ -97,7 +97,7 @@ The classes facilitating this are shown in Listing~\ref{lst:sdsio}. In this way the assignment is the same for every assignable entity. \begin{lstlisting}[% - language=Clean,label={lst:sdsio},caption={Input/Output classes}] + label={lst:sdsio},caption={Input/Output classes}] :: DigitalPin = D0 | D1 | D2 | D3 | D4 | D5 |D6 | D7 | D8 | D9 | D10 | D11 | D12 | D13 :: AnalogPin = A0 | A1 | A2 | A3 | A4 | A5 :: UserLED = LED1 | LED2 | LED3 @@ -127,7 +127,7 @@ Listing~\ref{lst:sdsclass}. The \CI{Main} type is introduced to box an \gls{mTask} and make it recognizable by the type system. \begin{lstlisting}[% - language=Clean,label={lst:sdsclass},caption={\glspl{SDS} in \gls{mTask}}] + label={lst:sdsclass},caption={\glspl{SDS} in \gls{mTask}}] :: In a b = In infix 0 a b :: Main a = {main :: a} @@ -184,7 +184,7 @@ complex and therefore an example is given. The aforementioned Listing shows a simple specification containing one task that increments a value indefinitely every one seconds. -\begin{lstlisting}[language=Clean,label={lst:taskclass},% +\begin{lstlisting}[label={lst:taskclass},% caption={The classes for defining tasks}] class mtask v a where task :: (((v delay r) a->v MTask Expr)->In (a->v u p) (Main (v t q))) -> Main (v t q) | ... @@ -203,7 +203,7 @@ representing a temperature sensor is too high. \CI{thermostat`} shows the same expression but now using the assignment style \gls{GPIO} technique. \begin{lstlisting}[% - language=Clean,label={lst:exmtask},caption={Some example \glspl{mTask}}] + label={lst:exmtask},caption={Some example \glspl{mTask}}] blink = task \blink=(\x. IF (x ==. lit True) (ledOn led) (ledOff led) :. blink (lit 1000) (Not x)