add pseudocode for the engine
[msc-thesis1617.git] / methods.top.tex
index bc94003..c05165a 100644 (file)
@@ -1,10 +1,9 @@
-\section{\acrlong{TOP}}
-\subsection{\gls{iTasks}}
+\section{iTasks}
 \gls{TOP} is a recent programming paradigm implemented as
 \gls{iTasks}\cite{achten_introduction_2015} in the pure lazy functional
 language \gls{Clean}\cite{brus_cleanlanguage_1987}. \gls{iTasks} is a
 \gls{EDSL} to model workflow tasks in the broadest sense. A \CI{Task} is just
 \gls{TOP} is a recent programming paradigm implemented as
 \gls{iTasks}\cite{achten_introduction_2015} in the pure lazy functional
 language \gls{Clean}\cite{brus_cleanlanguage_1987}. \gls{iTasks} is a
 \gls{EDSL} to model workflow tasks in the broadest sense. A \CI{Task} is just
-a function that, given some state, returns the observable \CI{TaskValue}. The
+a function that --- given some state --- returns the observable \CI{TaskValue}. The
 \CI{TaskValue} of a \CI{Task} can have different states. Not all state
 transitions are possible as shown in Figure~\ref{fig:taskvalue}. Once a value
 is stable it can never become unstable again. Stability is often reached
 \CI{TaskValue} of a \CI{Task} can have different states. Not all state
 transitions are possible as shown in Figure~\ref{fig:taskvalue}. Once a value
 is stable it can never become unstable again. Stability is often reached
@@ -20,7 +19,7 @@ image in the \CI{NoValue} state, the second image does not have all the fields
 filled in and therefore the \CI{TaskValue} remains \CI{Unstable}. In the third
 image all fields are entered and the \CI{TaskValue} transitions to the
 \CI{Unstable} state. When the user presses \emph{Continue} the value becomes
 filled in and therefore the \CI{TaskValue} remains \CI{Unstable}. In the third
 image all fields are entered and the \CI{TaskValue} transitions to the
 \CI{Unstable} state. When the user presses \emph{Continue} the value becomes
-\CI{Stable} and can not be changed any further.
+\CI{Stable} and cannot be changed any further.
 
 \begin{figure}[H]
        \centering
 
 \begin{figure}[H]
        \centering
@@ -66,19 +65,20 @@ functions that are captured in the class \CI{iTask}. Basic types have
 specialization instances for these functions and show an according interface.
 Generated interfaces can be modified with decoration operators.
 
 specialization instances for these functions and show an according interface.
 Generated interfaces can be modified with decoration operators.
 
-\subsection{Combinators}
+\section{Combinators}
 \Glspl{Task} can be combined using so called \gls{Task}-combinators.
 Combinators describe relations between \glspl{Task}. \Glspl{Task} can be
 combined in parallel, sequenced and their result values can be converted to
 \Glspl{Task} can be combined using so called \gls{Task}-combinators.
 Combinators describe relations between \glspl{Task}. \Glspl{Task} can be
 combined in parallel, sequenced and their result values can be converted to
-\glspl{SDS}. Moreover, a very important combinator is the step combinator that
-starts a new task according to the \CI{TaskValue}. The type signatures of the
-basic combinators are shown in Listing~\ref{lst:combinators}.
+\glspl{SDS}. Moreover, a very important combinator is the step combinator which
+starts a new task according to specified predicates on the \CI{TaskValue}.
+Type signatures of the basic combinators are shown in
+Listing~\ref{lst:combinators}.
 
 \begin{itemize}
        \item Step:
 
                The step combinator is used to start \glspl{Task} when a predicate on
 
 \begin{itemize}
        \item Step:
 
                The step combinator is used to start \glspl{Task} when a predicate on
-               the \CI{TaskValue} holds or an action has been taken place. The bind
+               the \CI{TaskValue} holds or an action has taken place. The bind
                operator can be written as a step combinator.
                \begin{lstlisting}[language=Clean]
 (>>=) infixl 1 :: (Task a) (a -> (Task b)) -> (Task b) | iTask a & iTask b
                operator can be written as a step combinator.
                \begin{lstlisting}[language=Clean]
 (>>=) infixl 1 :: (Task a) (a -> (Task b)) -> (Task b) | iTask a & iTask b
@@ -117,7 +117,7 @@ basic combinators are shown in Listing~\ref{lst:combinators}.
 (-&&-) infixr 4 :: (Task a) (Task b)              -> Task (a,b) | iTask a & iTask b
 \end{lstlisting}
 
 (-&&-) infixr 4 :: (Task a) (Task b)              -> Task (a,b) | iTask a & iTask b
 \end{lstlisting}
 
-\subsection{\acrlongpl{SDS}}
+\section{\acrlongpl{SDS}}
 \Glspl{SDS} are an abstraction over resources that are available in the world
 or in the \gls{iTasks} system. The shared data can be a file on disk, it can be
 the time, a random integer or just some data stored in memory. The actual
 \Glspl{SDS} are an abstraction over resources that are available in the world
 or in the \gls{iTasks} system. The shared data can be a file on disk, it can be
 the time, a random integer or just some data stored in memory. The actual