X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=methods.tex;h=9cd44ddbcfe1a142807733c9f8f88da4c6c2140e;hb=8ad91fd495b0938ce59af638cbb16b09d26600d4;hp=ae920752bbcc48978022018e22c1ddf59d2d5e57;hpb=57dab117db1fa358785cc3992053206584df0b53;p=msc-thesis1617.git diff --git a/methods.tex b/methods.tex index ae92075..9cd44dd 100644 --- a/methods.tex +++ b/methods.tex @@ -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