add bit about communication
[msc-thesis1617.git] / methods.top.tex
index cbf65eb..9777db5 100644 (file)
@@ -1,19 +1,26 @@
 \section{\acrlong{TOP}}
 \subsection{\gls{iTasks}}
 \section{\acrlong{TOP}}
 \subsection{\gls{iTasks}}
-\gls{TOP} is a recent new programming paradigm implemented as
+\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
 \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
 \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
 \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
-has gone stable it can never become unstable again. Stability is often reached
-by pressing a confirmation button or for \glspl{Task} that offer a constant
-value. A simple example is shown in Listing~\ref{lst:taskex} accompanied with
-Figure~\ref{fig:taskex1},~\ref{fig:taskex2} and~\ref{fig:taskex3}. In this
-example the first image in is the \CI{NoValue} state, the second and third
-image are in the \CI{Unstable} state. When the user presses \emph{Continue} the
-value becomes \CI{Stable}.
+is stable it can never become unstable again. Stability is often reached
+by pressing a confirmation button. \glspl{Task} yielding a constant value are
+immediately stable.
+
+A simple \gls{iTasks} example illustrating the route to stability of a
+\gls{Task} in which the user has to enter a full name is shown in
+Listing~\ref{lst:taskex}. The code is accompanied by screenshots showing the
+user interface in Figure~\ref{fig:taskex1},~\ref{fig:taskex2}
+and~\ref{fig:taskex3}. The \CI{TaskValue} of the \gls{Task} is in the first
+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
+\CI{Stable} and can not be changed any further.
 
 \begin{figure}[H]
        \centering
 
 \begin{figure}[H]
        \centering
@@ -23,9 +30,9 @@ value becomes \CI{Stable}.
 
 \begin{lstlisting}[language=Clean,label={lst:taskex},%
        caption={An example \gls{Task} for entering a name}]
 
 \begin{lstlisting}[language=Clean,label={lst:taskex},%
        caption={An example \gls{Task} for entering a name}]
-:: Name         = { firstname :: String
-                  , lastname  :: String
-                                 }
+:: Name = { firstname :: String
+          , lastname  :: String
+          }
 
 derive class iTask Name
 
 
 derive class iTask Name
 
@@ -59,5 +66,5 @@ 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}
 \subsection{Combinators}
+\todo{Stukje over combinators, in ieder geval bind en paralel}