add comments to the source
[ri1617.git] / architecture / intro.tex
1 In \emph{Task Oriented Programming} (TOP) a program is constructed out of
2 pieces of work called \emph{tasks}~\cite{achten_introduction_2015}. Tasks
3 differ from function in the way that they return a result. A task's return
4 value can change over time. Task exist in many forms and they can be composed
5 sequentially and in parallel. Some possible tasks are asking for user input via
6 a web browser, setting up a TCP connection to another server or combining
7 several tasks. At the moment there are several types of leaf tasks. A leaf task
8 is a task that does not consist of tasks itself. Examples of leaf tasks are
9 the so called editors.
10
11 This paper describes the effort to add another type of leaf task that
12 focusses on microcontrollers. Microcontrollers are often not powerful
13 enough to run a full-fledged task server and therefore there is the need to
14 introduce special microcontroller tasks. Effort for this is already made by the
15 department~\cite{koopman_tasks_2016}. However, communication between the
16 \emph{mTask} and the iTasks system is still lacking and exactly that will be
17 the goal of the project. This requires adding a new type of leaf task that
18 allows the user to run \emph{mTasks} on microcontrollers. The leaf task should
19 abstract away from communication techniques and it should be relatively easy to
20 add techniques. Techniques that are interesting to experiment with is Serial
21 communication, Bluetooth, \textsc{WiFi}, \textsc{GSM} and \textsc{LoRa}.
22
23 In short, \mTask{}s are imperative tasks that are executed on the
24 microcontroller and therefore add the functionality of the embedded device to
25 an \iTasks{} system.