comments ms
[phd-thesis.git] / top / imp.tex
index 1169187..6231b4b 100644 (file)
@@ -537,9 +537,9 @@ The \cleaninline{MTLens} is a type synonym for \pgls{SDS} that represents the ty
 This is done so that the \cleaninline{withDevice} task can write the received \gls{SDS} updates to the according \gls{SDS} while the \gls{SDS} is not in scope.
 The \gls{ITASK} notification mechanism then takes care of the rest.
 Such \pgls{SDS} is created by using the \cleaninline{mapReadWriteError} which, given a pair of read and write functions with error handling, produces \pgls{SDS} with the lens embedded.
-The read function transforms converts the typed value to a typeless serialised value.
+The read function transforms the typed value to a typeless serialised value.
 The write function will, given a new serialised value and the old typed value, produce a new typed value.
-It tries to decode the serialised value, if that succeeds, it is written to the underlying \gls{SDS}, an error is thrown otherwise.
+It tries to decode the serialised value, if that succeeds, it is written to the underlying \gls{SDS}, otherwise, an error is thrown otherwise.
 \Cref{lst:mtask_itasksds_lens} shows the implementation for this.
 
 % VimTeX: SynIgnore on
@@ -572,7 +572,8 @@ Once a device is programmed with the \gls{MTASK} \gls{RTS}, it can continuously
 The \gls{OS} is written in portable \ccpp{} and only contains a small device-specific portion.
 In order to keep the abstraction level high and the hardware requirements low, much of the high-level functionality of the \gls{MTASK} language is implemented not in terms of lower-level constructs from \gls{MTASK} language but in terms of \ccpp{} code.
 
-Most microcontrollers software consists of a cyclic executive instead of an \gls{OS}, this one loop function is continuously executed and all work is performed there.
+Most microcontroller software consists of a cyclic executive instead of an \gls{OS}.
+This one loop function is continuously executed and all work is performed there.
 In the \gls{RTS} of the \gls{MTASK} system, there is also such an event loop function.
 It is a function with a relatively short execution time that gets called repeatedly.
 The event loop consists of three distinct phases.
@@ -643,7 +644,7 @@ Expressions in the tree are always strictly evaluated by the interpreter.
 When a new task is received, the main expression is evaluated to produce a task tree.
 A task tree is a tree structure in which each node represents a task combinator and the leaves are basic tasks.
 If a task is not initialised yet, i.e.\ the pointer to the current task tree is still null, the byte code of the main function is interpreted.
-The main expression of \gls{MTASK} programs sent to the device fore execution always produces a task tree.
+The main expression of \gls{MTASK} programs sent to the device before execution always produces a task tree.
 Execution of a task consists of continuously rewriting the task until its value is stable.
 
 Rewriting is a destructive process, i.e.\ the rewriting is done in place.