X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=intro%2Fintro.tex;h=ab5a90f38802aba6ebf13d8e906447efffedf213;hb=5bd4efa4ebb3e70f19c6fa09366a8feb68aa2de7;hp=b726a6c416c276408ee8d121b7c669898492d3a6;hpb=c1b9a0995445470a66854861c04df440b7d7ffb3;p=phd-thesis.git diff --git a/intro/intro.tex b/intro/intro.tex index b726a6c..ab5a90f 100644 --- a/intro/intro.tex +++ b/intro/intro.tex @@ -13,7 +13,7 @@ \item a general introduction to the topics and research directions; \item a reading guide; \item background material on the \glsxtrlong{IOT}, \glsxtrlongpl{DSL}, \glsxtrlong{TOP}, \gls{ITASK}, and \gls{MTASK}; - \item and a detailed overview of the scientific contributions. + \item and a detailed overview of the scientific contributions of this dissertation. \end{itemize} \end{chapterabstract} @@ -76,7 +76,7 @@ The following sections in this prelude provide background material on the \gls{I \section{\texorpdfstring{\Glsxtrlong{IOT}}{Internet of things}}% \label{sec:back_iot} The \gls{IOT} is growing rapidly, and it is changing the way people and machines interact with each other and the world. -While the term \gls{IOT} briefly gained interest around 1999 to describe the communication of \gls{RFID} devices \citep{ashton_internet_1999,ashton_that_2009}, it probably already popped up halfway the eighties in a speech by \citet{peter_t_lewis_speech_1985}: +While the term \gls{IOT} briefly gained interest around 1999 to describe the communication of \gls{RFID} devices \citep{ashton_internet_1999,ashton_that_2009}, it probably already popped up halfway the eighties in a speech by \citet{lewis_speech_1985}: \begin{quote} \emph{The \glsxtrlong{IOT}, or \glsxtrshort{IOT}, is the integration of people, processes and technology with connectable devices and sensors to enable remote monitoring, status, manipulation and evaluation of trends of such devices.} @@ -244,6 +244,7 @@ The individual components in the miniature systems, the tasks, the \glspl{SDS}, \subsection{The \texorpdfstring{\gls{ITASK}}{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}. 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}. @@ -344,11 +345,11 @@ intBlink :: (Shared sds Int) -> Main (MTask v Int) | mtask v & ...\end{lstClean} \subsection{Other \texorpdfstring{\glsxtrshort{TOP}}{TOP} languages} While \gls{ITASK} conceived \gls{TOP}, it is no longer the only \gls{TOP} system. Some \gls{TOP} languages were created to fill a gap encountered in practise. -Toppyt \citep{lijnse_toppyt_2022} is a general purpose \gls{TOP} language written in \gls{PYTHON} used to host frameworks for modelling \emph{command \& control} systems, and hTask \citep{lubbers_htask_2022}, a vessel for experimenting with asynchronous \glspl{SDS}. +Toppyt \citep{lijnse_toppyt_2022} is a general purpose \gls{TOP} language written in \gls{PYTHON} used to host frameworks for modelling command \& control systems, and hTask \citep{lubbers_htask_2022}, a vessel for experimenting with asynchronous \glspl{SDS}. Furthermore, some \gls{TOP} systems arose from Master's and Bachelor's thesis projects. For example, \textmu{}Task \citep{piers_task-oriented_2016}, a \gls{TOP} language for modelling non-interruptible embedded systems in \gls{HASKELL}, and LTasks \citep{van_gemert_task_2022}, a \gls{TOP} language written in the dynamically typed programming language {LUA}. Finally, there are \gls{TOP} languages with strong academic foundations. -\Gls{TOPHAT} is a fully formally specified \gls{TOP} language designed to capture the essence of \gls{TOP} formally \citep{steenvoorden_tophat_2019}. +\Gls{TOPHAT} is a fully formally specified \gls{TOP} language designed to capture the essence of \gls{TOP} \citep{steenvoorden_tophat_2019}. Such a formal specification allows for symbolic execution, hint generation, but also the translation to \gls{ITASK} for actually performing the work \citep{steenvoorden_tophat_2022}. \Citeauthor{steenvoorden_tophat_2022} distinguishes two instruments for \gls{TOP}: \gls{TOP} languages and \gls{TOP} engines. The language is the \emph{formal} language for specifying interactive systems. @@ -371,14 +372,14 @@ This paper-based episode contains the following papers: The paper also serves as a gentle introduction to, and contains a thorough literature study on \glsxtrlong{TH}. \end{enumerate} -\paragraph{Other publications on \texorpdfstring{\glspl{EDSL}}{eDSLs}:} -Furthermore, I co-authored a paper that is not part of the \gls{MTASK} system yet and hence not part of the dissertation. - -\begin{enumerate}[resume] - \item \emph{Strongly-Typed Multi-\kern-2.5ptView Stack-\kern-1.25ptBased Computations} \citep{koopman_strongly-typed_2022}\label{enum:stack-based} shows how to create type-safe \glspl{EDSL} representing stack-based computations. - Instead of encoding the arguments to a function as arguments in the host language, stack-based approaches use a run time stack that contains the arguments. - By encoding the required contents of the stack in the types, such systems can be made type safe. -\end{enumerate} +%\paragraph{Other publications on \texorpdfstring{\glspl{EDSL}}{eDSLs}:} +%Furthermore, I co-authored a paper that is not part of the \gls{MTASK} system yet and hence not part of the dissertation. +% +%\begin{enumerate}[resume] +% \item \emph{Strongly-Typed Multi-\kern-2.5ptView Stack-\kern-1.25ptBased Computations} \citep{koopman_strongly-typed_2022}\label{enum:stack-based} shows how to create type-safe \glspl{EDSL} representing stack-based computations. +% Instead of encoding the arguments to a function as arguments in the host language, stack-based approaches use a run time stack that contains the arguments. +% By encoding the required contents of the stack in the types, such systems can be made type safe. +%\end{enumerate} \paragraph{Contribution:} The papers of which I am first author are solely written by me, there were weekly meetings with co-authors in which we discussed and refined the ideas. @@ -433,7 +434,7 @@ I extended the language, developed the byte code interpreter, the integration wi The papers of which I am first author are solely written by me, there were weekly meetings with the co-authors in which we discussed and refined the ideas. \subsection{\Fullref{prt:tvt}} -\Cref{prt:tvt} is based on a journal paper that quantitatively and qualitatively compares traditional \gls{IOT} architectures with \gls{IOT} systems using \gls{TOP}. +\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.