X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=intro%2Fintro.tex;h=e71c221661a064da0b61bfb500256024f9ada411;hb=55d92612436b8bed8a114e6dc49ce86d7cb96bea;hp=8ecfbd0258cc1cf4b101a599e3606a4c516c09a3;hpb=529531e1028ae26ab889456d65958794154d5b25;p=phd-thesis.git diff --git a/intro/intro.tex b/intro/intro.tex index 8ecfbd0..e71c221 100644 --- a/intro/intro.tex +++ b/intro/intro.tex @@ -245,11 +245,13 @@ Some concepts from the \gls{TOSD} model can be mapped upon the \gls{IOT} archite Firstly, edge devices can be seen as simple resources, thus accessed through \glspl{SDS}. The second view is that edge devices contain miniature \gls{TOP} systems in itself. The individual components in the miniature systems, the tasks, the \glspl{SDS}, are, in the eventual execution, connected to the main system. +\todo{hier plaatje uit 6?: nee} \subsection{The iTask system} The concept of \gls{TOP} originated from the \gls{ITASK} framework, a declarative language and \gls{TOP} engine for defining interactive multi-user distributed web applications. The \gls{ITASK} system is implemented as an \gls{EDSL} in the programming language \gls{CLEAN}\footnote{\Cref{chp:clean_for_haskell_programmers} contains a guide for \gls{CLEAN} tailored to \gls{HASKELL} programmers.} \citep{plasmeijer_itasks:_2007,plasmeijer_task-oriented_2012}. -It has been under development for over fifteen years and has proven itself through use in industry for some time now as well \citep{top_software_viia_2023}. +It has been under development for over fifteen years and has proven itself through use in industry for some time now as well. +For example, it is the main language of VIIA, an advanced application for monitoring coasts \citep{top_software_viia_2023}. From the structural properties of the data types and the current status of the work to be done, the entire \gls{UI} is automatically generated. Browsers are powering \gls{ITASK}'s presentation layer. The framework is built on top of standard web techniques such as JavaScript, HTML, and {CSS}. @@ -318,6 +320,7 @@ Using \cleaninline{enterInformation}, the connection specification of the \gls{T The \gls{MTASK} device is connected using \cleaninline{withDevice} at \cref{lst:intro_withdevice}. Once connected, the \cleaninline{intBlink} task is sent to the device (\cref{lst:intro_liftmtask}) and, in parallel, a web editor is shown that updates the value of the interval \gls{SDS} (\cref{lst:intro_editor,fig:intro_blink_int}). To allow terminating of the task, the \gls{ITASK} task ends with a sequential operation that returns a constant value when the button is pressed, making the task stable. +\todo{foto device+led?} \cleaninputlisting[float={!ht},firstline=10,lastline=18,numbers=left,caption={The \gls{ITASK} code for the interactive blinking application.},label={lst:intro_blink}]{lst/blink.icl} @@ -365,6 +368,7 @@ This section provides a thorough overview of the relation between the scientific \subsection{\Fullref{prt:dsl}} The \gls{MTASK} system is an \gls{EDSL} and during the development of it, several novel basal techniques for embedding \glspl{DSL} in \gls{FP} languages have been found. This paper-based episode contains the following papers: +\todo{papers met bibitem doen? of conferentie noemen.} \begin{enumerate} \item \emph{Deep Embedding with Class} \citep*{lubbers_deep_2022} is the basis for \cref{chp:classy_deep_embedding}. It shows a novel deep embedding technique for \glspl{DSL} where the resulting language is extendible both in constructs and in interpretation just using type classes and existential data types. @@ -372,7 +376,7 @@ This paper-based episode contains the following papers: \Cref{sec:classy_reprise} was added after publication and contains a (yet) unpublished extension of the embedding technique for reducing the required boilerplate at the cost of requiring some advanced type system extensions. \item \emph{First-\kern-1ptClass Data Types in Shallow Embedded Domain-Specific Languages} \citep*{lubbers_first-class_2022}\label{enum:first-class} is the basis for \cref{chp:first-class_datatypes}. It shows how to inherit data types from the host language in \glspl{EDSL} using metaprogramming by providing a proof-of-concept implementation using \gls{HASKELL}'s metaprogramming system: \glsxtrlong{TH}. - The paper also serves as a gentle introduction to, and contains a thorough literature study on \glsxtrlong{TH}. + The chapter also serves as a gentle introduction to, and contains a thorough literature study on \glsxtrlong{TH}. \end{enumerate} %\paragraph{In preparation} @@ -446,12 +450,11 @@ The papers of which I am first author are solely written by me, there were weekl \subsection{\Fullref{prt:tvt}} \Cref{prt:tvt} is based on a journal paper that quantitatively and qualitatively compares traditional \gls{IOT} architectures with \gls{TOP} \gls{IOT} architectures. -This chapter is based on the conference paper and a journal paper extending it: \begin{enumerate}[resume] - \item \emph{Tiered versus Tierless \glsxtrshort{IOT} Stacks: Comparing Smart Campus Software Architectures} \citep*{lubbers_tiered_2020}\footnote{This work was partly funded by the 2019 Radboud-Glasgow Collaboration Fund.}\label{enum:iot20} compares traditional tiered programming to tierless architectures by comparing two implementations of a smart-campus application. \item \emph{Could Tierless Programming Reduce IoT Development Grief?} \citep*{lubbers_could_2022} is an extended version of paper~\ref{enum:iot20}. It compares programming traditional tiered architectures to tierless architectures by illustrating a qualitative and a quantitative four-way comparison of a smart-campus application. + \item \emph{Tiered versus Tierless \glsxtrshort{IOT} Stacks: Comparing Smart Campus Software Architectures} \citep*{lubbers_tiered_2020}\footnote{This work was partly funded by the 2019 Radboud-Glasgow Collaboration Fund.}\label{enum:iot20} compares traditional tiered programming to tierless architectures by comparing two implementations of a smart-campus application. \end{enumerate} \paragraph{Contribution:}