series = {Lecture Notes in Computer Science},
pages = {51},
number = {11916},
- booktitle = {Composability, Comprehensibility and Correctness of Working Software, 7th Winter School, Kosice, Slovakia, January 22–26, 2018, Revised Selected Papers},
+ booktitle = {Composability, Comprehensibility and Correctness of Working Software, 7th Winter School, Košice, Slovakia, January 22–26, 2018, Revised Selected Papers},
publisher = {Springer},
author = {Koopman, Pieter and Lubbers, Mart and Plasmeijer, Rinus},
date = {2023},
--- /dev/null
+\documentclass[10pt]{article}
+
+\usepackage{geometry}
+\geometry{
+ inner=5mm,
+ outer=5mm,
+% marginparsep=3mm,
+% marginparwidth=13mm,
+% top=25mm,
+% bottom=20mm,
+ paperwidth=7cm,
+ paperheight=22cm,
+}
+\usepackage{url}
+\urlstyle{same}
+
+\begin{document}
+
+\pagestyle{empty}
+
+\begin{center}
+\Large%
+Uitnodiging\\[10pt]
+\small%
+Voor het bijwonen van de openbare verdediging van mijn proefschrift:\\[10pt]
+Orchestrating the Internet of Things\\
+with Task-Oriented Programming\\
+\footnotesize%
+a purely functional rhapsody\\[10pt]
+\small%
+Op woensdag 4 oktober 2023\\
+om 14:30 in de aula van de Radboud Universiteit Nijmegen, Comeniuslaan 2 te Nijmegen\\[10pt]
+De ceremonie is ook online te volgen via:\\
+\url{www.ru.nl/aula/livestream}\\[10pt]
+Receptie na afloop ter plaatse\\[10pt]
+\large%
+Mart Lubbers
+\end{center}
+
+\newpage
+\begin{center}
+\Large%
+Invitation\\[10pt]
+\small%
+For attending the public defence of my dissertation:\\[10pt]
+Orchestrating the Internet of Things\\
+with Task-Oriented Programming\\
+\footnotesize%
+A purely functional rhapsody\\[10pt]
+\small%
+On Wednesday, October 4th, 2023\\
+at 14:30 in the aula of the Radboud University Nijmegen, Comeniuslaan 2 in Nijmegen\\[10pt]
+The ceremory is also broadcast online via:\\
+\url{www.ru.nl/aula/livestream}\\[10pt]
+Reception afterwards on site\\[10pt]
+\large%
+Mart Lubbers
+\end{center}
+
+\end{document}
It is not possible to straightforwardly lift the deconstructors to type classes because existentially quantified type variables will escape.
Rank-2 polymorphism offers tools to define the types in such a way that this is not the case anymore.
However, implementing compiling views on the \gls{DSL} is complicated because it would require inventing values of an existentially quantified type variable to satisfy the type system which is difficult.
-
Finally, having to write a parser for the \gls{DSL} is extra work.
Future research could determine whether it is possible to generate this using \gls{TH} as well.
\input{subfileprefixsmall}
%\hypersetup{pageanchor=false}
\thispagestyle{empty}
-
-\mbox{}
-\vfill
-
\footnotesize
+
\begin{itemize}[wide,label={},labelindent=0pt,leftmargin=*,itemsep=.5\baselineskip]
- \item \textbf{Colophon:}
\item This research was partly funded by the Royal Netherlands Navy.
- \item Printed by \ldots
+\end{itemize}
+
+\vfill%
+
+\begin{itemize}[wide,label={},labelindent=0pt,leftmargin=*,itemsep=0pt]%.5\baselineskip]
+ \item \textbf{Radboud Dissertation Series}
+% \item ISSN:\ \ldots
+ \item
+ \item Orchestrating the Internet of Things with Task-Oriented Programming
+ \item Published by RADBOUD UNIVERSITY PRESS
+ \item Postbus 9100, 6500 HA Nijmegen, The Netherlands
+ \item \href{https://www.radbouduniversitypress.nl}{www.radbouduniversitypress.nl}
+ \item
+ \item Design: Proefschrift AIO
\item Typeset using \LaTeXe{}
- \item ISBN:\ 111{-}11{-}11111{-}11{-}1
\item The cover was generated by DALL$\cdot$E with the query: \emph{A book cover of a gustav doré wood engraving showing a conductor in an orchestra hall from the perspective of the audience. The orchestra consists of piles of computers, laptops, phones, and servers}
+ \item \textsc{isbn}:\ 978{-}94{-}9329{-}611{-}4
+ \item \textsc{doi}:\ \doifmt{10.54195/9789493296114}
+ \item Free download at: \href{https://www.radbouduniversitypress.nl}{www.radbouduniversitypress.nl}
+ \item
\item \copyright{} Mart Lubbers, 2023
- \item \href{https://martlubbers.net}{martlubbers.net}
- \item \smaller{} This work is licensed under the Creative Commons Attribution-NoDerivatives 4.0 International License.
- To view a copy of this license, visit \url{http://creativecommons.org/licenses/by-nd/4.0/} or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, {USA}.
\item
- \includegraphics[scale=.5]{cc}%
- \includegraphics[scale=.5]{by}%
- \includegraphics[scale=.5]{nd}
+ \item \includegraphics[width=.2\linewidth]{rup}
+ \item
+ \item This is an Open Access book published under the terms of Creative Commons Attribution-Noncommercial-NoDerivatives International license (CC BY-NC-ND 4.0). This license allows reusers to copy and distribute the material in any medium or format in unadapted form only, for noncommercial purposes only, and only so long as attribution is given to the creator, see \href{http://creativecommons.org/licenses/by-nc-nd/4.0/}{http://creativecommons.org/licenses/by-nc-nd/4.0/}.
\end{itemize}
+\normalsize
\hypersetup{pageanchor=true}
\end{document}
\usepackage{subfiles}
% Metadata (only works in main document) and should go after subfiles
-%\input{preamble/metadata}
+\input{preamble/metadata}
<rdf:Description rdf:about='' xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/' >
<xapRights:UsageTerms>
<rdf:Alt>
- <rdf:li xml:lang='x-default' >This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nd/4.0/">Creative Commons Attribution-NoDerivatives 4.0 International License</a>.</rdf:li>
- <rdf:li xml:lang='en' >This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nd/4.0/">Creative Commons Attribution-NoDerivatives 4.0 International License</a>.</rdf:li>
+ <rdf:li xml:lang='x-default' >This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/">Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License</a>.</rdf:li>
+ <rdf:li xml:lang='en' >This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/">Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License</a>.</rdf:li>
</rdf:Alt>
</xapRights:UsageTerms>
</rdf:Description>
<rdf:Description rdf:about='' xmlns:cc='http://creativecommons.org/ns#'>
- <cc:license rdf:resource='http://creativecommons.org/licenses/by-nd/4.0/'/>
+ <cc:license rdf:resource='http://creativecommons.org/licenses/by-nc-nd/4.0/'/>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
\def\mydate{\formatdate{9}{3}{2023}}
\input{preamble}
+% for bleeding and cropmarks
+%\usepackage[width=17.6truecm, height=24.6truecm, cam, pdftex, center, noinfo ]{crop}
% To show hboxes even when in non-draft mode
%\setlength{\overfullrule}{20pt}
% Document info
\title{\mytitle\texorpdfstring{\\[2ex]}{---}\smaller\mysubtitle}
-\author{Mart Lubbers}
-\date{\mydate}
+\author{}
+\date{}
\begin{document}
\begingroup
\frontmatterfancy%
%Cover
-\hypertarget{cover}{}
-\bookmark[level=section,dest=cover]{Cover}
-\includepdf{img/cover.pdf}
+%\hypertarget{cover}{}
+%\bookmark[level=section,dest=cover]{Cover}
+%\includepdf{img/cover.pdf}
+\thispagestyle{empty}
+\maketitle
+\newpage
%Colophon
\hypertarget{colophon}{}
\subfile{tvt/tvt} % Could Tierless Languages Reduce IoT Development Grief?
% Conclusion
-\bookmarksetup{startatroot} % descend back out of the previous part
+%\bookmarksetup{startatroot} % descend back out of the previous part
\addtocontents{toc}{\bigskip}% Insert some whitespace to make the TOC better
\subfile{coda/coda}
\label{chp:smart_campus}
\begin{chapterabstract}
- \Gls{IOT} software is notoriously complex, conventionally comprising multiple tiers.
- Traditionally an \gls{IOT} developer must use multiple programming languages and ensure that the components interoperate correctly. A novel alternative is to use a single \emph{tierless} language with a compiler that generates the code for each component and ensures their correct interoperation.
+ \Gls{IOT} software is notoriously complex, usually comprising multiple tiers.
+ Traditionally an \gls{IOT} developer must use multiple programming languages and ensure that the components interoperate correctly.
+ A novel alternative is to use a single \emph{tierless} language with a compiler that generates the code for each component and their correct interoperation.
We report a systematic comparative evaluation of two tierless language technologies for \gls{IOT} stacks: one for resource-rich sensor nodes (\gls{CLEAN} with \gls{ITASK}), and one for resource-constrained sensor nodes (\gls{CLEAN} with \gls{ITASK} and \gls{MTASK}).
The evaluation is based on four implementations of a typical smart campus application: two tierless and two \gls{PYTHON}-based tiered.