new layout
[msc-thesis1617.git] / methods.tex
index 674a24f..2c8e198 100644 (file)
@@ -1,56 +1,5 @@
-\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}
+\input{methods.top.tex}
 
-\todo{Main terms}
-The lazy functional programming language based on graph rewriting
-\gls{Clean}~\cite{brus_cleanlanguage_1987}
+\input{methods.dsl.tex}
 
-\section{\acrlong{EDSL}s}
-\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}
-
-\section{Devices}
-The client code for the devices is compiled from one codebase. For a device to
-be eligible for \glspl{mTask} it must be able to compile the shared codebase
-and implement (part of) the device specific interface. The shared codebase only
-uses standard \gls{C} and no special libraries or tricks are used. Therefore
-the code is compilable for almost any device or system. Note that it is not
-needed to implement a full interface\todo{handshake}. The full interface,
-listed in Appendix~\label{app:device-interface}\todo{update interface listing},
-also includes functions for accessing the peripherals that not every device
-might have. Devices can choose what to implement by setting the correct macros
-in the top of the file.
-
-\subsection{Specification}
-Devices are stored in a record type and all devices in the system are stored in
-a \gls{SDS} containing all devices. From the macro settings in the interface
-file a profile is created for the device that describes the specification. When
-a connection between the server and a client is established the server will
-send a request for specification. The client will serialize his specs and send
-it to the server so that the server knows what the client is capable of. The
-exact specification is listed in Listing~\ref{lst:devicespec}
-
-\begin{lstlisting}[language=Clean,label={lst:devicespec},
-       caption={Device specification for \glspl{mTask}}]
-:: MTaskDeviceSpec =
-               {haveLed :: Bool
-               ,haveAio :: Bool
-               ,haveDio :: Bool
-               ,taskSpace :: Int // Bytes
-               ,sdsSpace  :: Int // Bytes
-       }
-\end{lstlisting}
-\todo{Explain specification, combine task and share space}
-
-\subsection{Communication}
-
-\section{mTasks}
-\subsection{\gls{EDSL}}
-
-
-\subsection{Shares}
+\input{methods.mtask.tex}