X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=methods.tex;h=473efcf090a714e2eac5fa98addf9ee3be0ca80c;hb=dc057560c806a535088e1d9ebdbdd0737467ecc3;hp=18cc18841bd7e61dec9a98f17ca5111c2e309466;hpb=9d439043f4f619a45b444c6d2de05b34eb879b79;p=msc-thesis1617.git diff --git a/methods.tex b/methods.tex index 18cc188..473efcf 100644 --- a/methods.tex +++ b/methods.tex @@ -1,11 +1,45 @@ \section{\acrlong{TOP}} \gls{TOP} is a recent new programming paradigm implemented as -\gls{iTasks}~\cite{achten_introduction_2015} in -the pure lazy functional language \gls{Clean} +\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 value of the +\CI{TaskValue}. A simple example is shown in Listing~\ref{lst:taskex} +accompanied with Figure~\ref{fig:taskex1},~\ref{fig:taskex2} and~% +\ref{fig:taskex3}. + +\begin{lstlisting}[language=Clean,label={lst:taskex},% + caption={An example \gls{Task} for entering a name}] +:: Name = { firstname :: String + , lastname :: String + } + +derive class iTask Name + +enterInformation :: String [EnterOption m] -> (Task m) | iTask m + +enterName :: Task Name +enterName = enterInformation "Enter your name" [] +\end{lstlisting} -\todo{Main terms} -The lazy functional programming language based on graph rewriting -\gls{Clean}~\cite{brus_cleanlanguage_1987} +\begin{figure}[H] + \begin{subfigure}{.25\textwidth} + \centering + \includegraphics[width=.9\linewidth]{taskex1} + \caption{Initial interface}\label{fig:taskex1} + \end{subfigure} + \begin{subfigure}{.25\textwidth} + \centering + \includegraphics[width=.9\linewidth]{taskex2} + \caption{Incomplete entrance}\label{fig:taskex2} + \end{subfigure} + \begin{subfigure}{.25\textwidth} + \centering + \includegraphics[width=.9\linewidth]{taskex3} + \caption{Complete entry}\label{fig:taskex3} + \end{subfigure} + \caption{Example of a generated user interface} +\end{figure} \section{\acrlong{EDSL}s} \glspl{mTask} are expressed in a class based shallowly embedded \gls{EDSL}.