X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=methods.tex;h=7850c8240c7445292c0284318b142834f414c5e6;hb=b039340842965c6b4bc4abe0f6485cf71c9f8935;hp=1cf3b68de54ff97a5d7fb6e1dc728295dbd0f0f8;hpb=0bc7120dbe8ab9e0262b1f7cf98dacaf1d6a14ac;p=msc-thesis1617.git diff --git a/methods.tex b/methods.tex index 1cf3b68..7850c82 100644 --- a/methods.tex +++ b/methods.tex @@ -1,56 +1,6 @@ -\section{\acrlong{TOP}} -\subsection{\gls{iTasks}} -\gls{TOP} is a recent new 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 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} +\input{methods.top.tex} -\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} - -\subsection{Combinators} - -\section{\acrlong{EDSL}s} -\todo{while iTasks is also a DSL\ldots} -\glspl{mTask} are expressed in a class based shallowly embedded \gls{EDSL}. -There are two main types of \glspl{EDSL}. -\todo{Small shallow embedded dsl intro} -\todo{Small deep embedded dsl} -\todo{Show that class based has the best of both worlds} +\input{methods.dsl.tex} \section{Architecture} \subsection{Devices}