mini update'
[msc-thesis1617.git] / methods.tex
index ae92075..9cd44dd 100644 (file)
@@ -8,18 +8,42 @@ The lazy functional programming language based on graph rewriting
 \gls{Clean}~\cite{brus_cleanlanguage_1987}
 
 \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. Therefore the code is
+compilable for almost any device or system. Note that it is not needed to
+implement a full interface. The full interface, listed in
+Appendix~\label{app:device-interface}, also includes functions for accessing
+the peripherals that not every device might have. The interface headers also
+show which functionality is implemented and which functionality is not
+available. This information is exchanged during the setup of the communication.
 
 \subsection{Specification}
+Devices are stored in a record type and all devices in the system are stored in
+a \gls{SDS} containing all devices.
 
 \subsection{Communication}
-
+\todo{Handshake, device specification sending, spec.c}
+\todo{mTaskDevice class interface}
 
 \section{mTasks}
 \subsection{\gls{EDSL}}
+\todo{Show the classes}
 
 \subsection{Shares}
+\todo{Show the types and why}
+
+Shares are used to store the values 
+
+Shares all have
 %\subsection{Serial port communication in Clean and iTasks}
 %In the first exploration stage I added duplex serial port communication to
 %iTasks in the same way as TCP is added. To make it work several changes had to