roy's comments: chapter 6
authorMart Lubbers <mart@martlubbers.net>
Mon, 26 Jun 2017 10:51:51 +0000 (12:51 +0200)
committerMart Lubbers <mart@martlubbers.net>
Mon, 26 Jun 2017 10:51:51 +0000 (12:51 +0200)
conclusion.tex
results.arch.tex
thesis.pre

index 1b2e533..49890e8 100644 (file)
@@ -5,38 +5,37 @@ extension for the system are amply available in several fields of study.
 \subsection{Simulation}
 An additional simulation view to the \gls{mTask}-\gls{EDSL} could be added that
 works in the same way as the existing \gls{C}-backed simulation. It simulates
-the bytecode interpretation. Moreover would be possible to let the simulator
+the bytecode interpretation. Moreover, it would be possible to let the simulator
 function as a real device, thus handling all communication through the
 existing \gls{SDS}-based systems and behave like a real device. At the moment
 the \emph{POSIX}-client is the reference client and contains debugging code.
 Adding a simulation view to the system allows for easy interactive debugging.
 However, it might not be easy to devise a simulation tool that accurately
-simulates the \gls{mTask} system accurately on some levels. The semantics can
-be simulated but timing and peripheral input/output are more difficult to
-simulate properly.
+simulates the \gls{mTask} system on some levels. The semantics can be simulated
+but timing and peripheral input/output are more difficult to simulate properly.
 
 \subsection{Optimization}
 \paragraph{Multitasking on the client:}
 True multitasking could be added to the client software. This allows
 \gls{mTask}-\glspl{Task} to run truly parallel. All \glspl{mTask} get slices
-of execution time and will each have their own interpreter state instead of one
-system-wide one that is reset after am \gls{mTask} finishes. This does require
-separate stacks for each \gls{Task} and therefore increases the system
-requirements of the client software. However, it could be implemented as a
-compile-time option and exchanged during the handshake so that the server knows
-the multithreading capabilities of the client.
+of execution time and will each have their own interpreter state instead of a
+single system-wide state which is reset after am \gls{mTask} finishes. This
+does require separate stacks for each \gls{Task} and therefore increases the
+system requirements of the client software. However, it could be implemented as
+a compile-time option and exchanged during the handshake so that the server
+knows the multithreading capabilities of the client.
 
 \paragraph{Optimizing the interpreter:}
-Hardly any work has been done in the interpreter. The current interpreter is a
-no nonsense stack machine. A lot of improvements can be done in this part. For
-example, precomputed \emph{gotos} can improve jumping to the correct part of
-the code corresponding to the correct instruction. Moreover, the stack
-currently consists of 16-bit values. All operations work on 16-bit values and
-this simplifies the interpreter implementation. A memory improvement can be
-made by converting the stack to 8-bit values. This does pose some problems
-since an equality instruction must work on single-byte booleans \emph{and}
-two-byte integers. Adding specialized instructions per word size could overcome
-this problem.
+Due to time constraints and focus, hardly any work has been done in the
+interpreter. The current interpreter is a no nonsense stack machine. A lot of
+improvements can be done in this part. For example, precomputed \emph{gotos}
+can improve jumping to the correct part of the code corresponding to the
+correct instruction.  Moreover, the stack currently consists of 16-bit values.
+All operations work on 16-bit values and this simplifies the interpreter
+implementation. A memory improvement can be made by converting the stack to
+8-bit values. This does pose some problems since an equality instruction must
+work on single-byte booleans \emph{and} two-byte integers. Adding specialized
+instructions per word size could overcome this problem.
 
 \subsection{Resources}
 \paragraph{Resource analysis: }
@@ -52,7 +51,7 @@ communication bandwidth. With this functionality ever more reliable fail-over
 systems can be designed. When the system knows precise bounds it can allocate
 more \glspl{Task} on a device whilst staying within safe memory bounds. The
 resource allocation can be done at runtime within the backend itself or a
-general backend can be devices that can calculate the resources needed for a
+general backend can be devised that can calculate the resources needed for a
 given \gls{mTask}. A specific \gls{mTask} cannot have multiple views at the
 same time due to the restrictions of class based shallow embedding. It might
 even be possible to encode the resource allocation in the type system itself
@@ -70,15 +69,15 @@ using simple syntactic transformations.
 
 \paragraph{Launch \glspl{Task} from a \gls{Task}: }\label{par:tasklaunch}
 Currently the \gls{C}-view allows \glspl{Task} to launch other \glspl{Task}. In
-the current system this type of logic has to take place server side. Adding
-this functionality to the bytecode-view allows greater flexibility, easier
-programming and less communication resources. Adding these semantics requires
-modifications to the client software and extensions to the communication
-protocol since relations between \glspl{Task} also need to be encoded and
-communicated.
+the current system this type of logic has to take place on the server side.
+Adding this functionality to the bytecode-view allows greater flexibility,
+easier programming and less communication resources. Adding these semantics
+requires modifications to the client software and extensions to the
+communication protocol since relations between \glspl{Task} also need to be
+encoded and communicated.
 
 The \gls{SDS} functionality in the current system is bare. There is no easy way
-of reusing a \gls{SDS} for another \gls{Task} on the same device or on another
+of reusing an \gls{SDS} for another \gls{Task} on the same device or on another
 device. Such functionality can be implemented in a crude way by tying the
 \glspl{SDS} together in the \gls{iTasks} environment. However, this will result
 in a slow updating system. Functionality for reusing shares from a device
@@ -92,8 +91,8 @@ implemented.
 \subsection{Robustness}
 \paragraph{Reconnect with lost devices:}
 The robustness of the system can be greatly improved. Devices that lose
-connection are in the current system not well supported. The device will stop
-functioning and have to be emptied for a reconnect. \Glspl{Task} residing on a
+connection are not well supported in the current system. The device will stop
+functioning and has to be emptied for a reconnect. \Glspl{Task} residing on a
 device that disconnected should be kept on the server to allow a swift
 reconnect and restoration of the \glspl{Task}. This holds the same for the
 client software. The client drops all existing \glspl{Task} on a shutdown
@@ -122,7 +121,7 @@ interpreted using a stack machine and provides the programmer interfaces
 to the peripherals. The semantics of the \glspl{mTask} tries to resemble the
 \gls{iTasks} semantics as close as possible.
 
-The host language has a very efficient compiler and code generator. Therefore,
+The host language has a proven efficient compiler and code generator. Therefore,
 compiling \glspl{mTask} is also fast. Compiling \glspl{mTask} is nothing
 more than running some functions native to the host language.
 
index e9db688..e1773d4 100644 (file)
@@ -579,7 +579,7 @@ selected to send the \gls{Task} to. The dialog might contain user specified
 variables. All example \glspl{mTask} are of the type \CI{Task (Main (ByteCode
 () Stmt))} and can thus ask for user input first if needed for parameterized
 \glspl{mTask}. The bottom panel shows the device information. In this panel,
-the devices can be created and modified.  Moreover, this panel allows the user
+the devices can be created and modified. Moreover, this panel allows the user
 to reconnect with a device after a restart of the server application.
 
 \todo{redo this image}
index afdb732..b40182b 100644 (file)
        language=Clean
 }
 
-\setcounter{secnumdepth}{5}
+\setcounter{secnumdepth}{4}
 
 \title{Task Oriented Programming and the Internet of Things}
 \author{Mart Lubbers BSc.\\