From e0e1c3f118ded331d1b1abc20a40dd679aaa75e1 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Fri, 30 Sep 2022 15:07:03 +0200 Subject: [PATCH] add tiot paper current version --- .chktexrc | 4 +- appendix/mtask_aux.tex | 137 ++ backmatter/acknowledgements.tex | 12 +- domain-specific_languages/.chktexrc | 4 +- .../first-class_datatypes.tex | 18 +- glossaries.tex | 49 +- introduction/introduction.tex | 25 +- latexmkrc | 4 +- lstlangarduino.sty | 3 +- lstlangclean.sty | 5 +- lstlanghaskell.sty | 2 +- mtask/mtask.tex | 305 +++- preamble.tex | 39 +- subfilepostamble.tex | 2 +- thesis.tex | 30 +- tiered_vs._tierless_programming/.chktexrc | 24 + .../img/TempHistory.png | Bin 0 -> 34002 bytes .../img/TempHistory1.png | Bin 0 -> 21133 bytes .../img/TempHistory2.png | Bin 0 -> 21335 bytes .../img/arch.drawio | 1 + .../img/cwss_web.png | Bin 0 -> 13552 bytes tiered_vs._tierless_programming/img/cwts.png | Bin 0 -> 10157 bytes .../img/cwtsDiagram.png | Bin 0 -> 54183 bytes .../img/cwtsDiagram2.png | Bin 0 -> 60045 bytes .../img/devTaskDiagram.png | Bin 0 -> 49462 bytes .../img/devTaskDiagram2.png | Bin 0 -> 60045 bytes .../img/gen_stacked_barchart.py | 90 + .../img/iTaskTemp.png | Bin 0 -> 32565 bytes .../img/iTaskTemp1.png | Bin 0 -> 21009 bytes .../img/iTaskTemp2.png | Bin 0 -> 20801 bytes .../img/iTaskTempRemote.png | Bin 0 -> 43217 bytes .../img/mTaskTemp.png | Bin 0 -> 44168 bytes tiered_vs._tierless_programming/img/prss.jpg | Bin 0 -> 186450 bytes .../img/readTempTask.png | Bin 0 -> 5261 bytes .../img/sensordata.png | Bin 0 -> 29845 bytes .../img/simpleTempSensor.png | Bin 0 -> 11299 bytes .../img/todolist1.png | Bin 0 -> 20204 bytes .../img/todolist3.png | Bin 0 -> 25030 bytes .../img/todolist4.png | Bin 0 -> 29525 bytes .../img/todolist5.png | Bin 0 -> 31242 bytes .../img/todolist6.png | Bin 0 -> 25825 bytes .../img/todolist7.png | Bin 0 -> 31924 bytes .../img/web_iot.png | Bin 0 -> 32816 bytes tiered_vs._tierless_programming/img/wemos.jpg | Bin 0 -> 75764 bytes .../smart_campus.tex | 1206 ++++++++++++- tiot.bib | 1596 +++++++++++++++++ 46 files changed, 3456 insertions(+), 100 deletions(-) create mode 100644 appendix/mtask_aux.tex create mode 100644 tiered_vs._tierless_programming/.chktexrc create mode 100644 tiered_vs._tierless_programming/img/TempHistory.png create mode 100644 tiered_vs._tierless_programming/img/TempHistory1.png create mode 100644 tiered_vs._tierless_programming/img/TempHistory2.png create mode 100644 tiered_vs._tierless_programming/img/arch.drawio create mode 100644 tiered_vs._tierless_programming/img/cwss_web.png create mode 100644 tiered_vs._tierless_programming/img/cwts.png create mode 100644 tiered_vs._tierless_programming/img/cwtsDiagram.png create mode 100644 tiered_vs._tierless_programming/img/cwtsDiagram2.png create mode 100644 tiered_vs._tierless_programming/img/devTaskDiagram.png create mode 100644 tiered_vs._tierless_programming/img/devTaskDiagram2.png create mode 100644 tiered_vs._tierless_programming/img/gen_stacked_barchart.py create mode 100644 tiered_vs._tierless_programming/img/iTaskTemp.png create mode 100644 tiered_vs._tierless_programming/img/iTaskTemp1.png create mode 100644 tiered_vs._tierless_programming/img/iTaskTemp2.png create mode 100644 tiered_vs._tierless_programming/img/iTaskTempRemote.png create mode 100644 tiered_vs._tierless_programming/img/mTaskTemp.png create mode 100644 tiered_vs._tierless_programming/img/prss.jpg create mode 100644 tiered_vs._tierless_programming/img/readTempTask.png create mode 100644 tiered_vs._tierless_programming/img/sensordata.png create mode 100644 tiered_vs._tierless_programming/img/simpleTempSensor.png create mode 100644 tiered_vs._tierless_programming/img/todolist1.png create mode 100644 tiered_vs._tierless_programming/img/todolist3.png create mode 100644 tiered_vs._tierless_programming/img/todolist4.png create mode 100644 tiered_vs._tierless_programming/img/todolist5.png create mode 100644 tiered_vs._tierless_programming/img/todolist6.png create mode 100644 tiered_vs._tierless_programming/img/todolist7.png create mode 100644 tiered_vs._tierless_programming/img/web_iot.png create mode 100644 tiered_vs._tierless_programming/img/wemos.jpg create mode 100644 tiot.bib diff --git a/.chktexrc b/.chktexrc index bf386c6..e62adec 100644 --- a/.chktexrc +++ b/.chktexrc @@ -2,10 +2,12 @@ CmdLine { -v } VerbEnvir { - lstinline lstlisting algorithm code spec lstClean lstHaskell lstHaskellLhstex lstArduino + lstinline lstlisting algorithm code spec lstClean lstHaskell lstHaskellLhstex lstArduino lstPython } WipeArg { + \cinline:{} \cleaninline:{} + \pythoninline:{} \haskellinline:{} \haskelllshtexinline:{} \arduinoinline:{} diff --git a/appendix/mtask_aux.tex b/appendix/mtask_aux.tex new file mode 100644 index 0000000..cd67dce --- /dev/null +++ b/appendix/mtask_aux.tex @@ -0,0 +1,137 @@ +\documentclass[../thesis.tex]{subfiles} + +\begin{document} +\ifSubfilesClassLoaded{ + \pagenumbering{arabic} +}{} + +\myappendix{chp:mtask_aux}{Auxiliary \texorpdfstring{\glsentrytext{MTASK}}{mTask} type classes} +\lstset{basicstyle=\tt\footnotesize} +\section{Peripherals}\label{sec:aux_peripherals} +This section shows the peripherals not mentioned in \cref{chp:top4iot}. +All constructors use \gls{HOAS} to create a type safe sensor object from a connection specification that can be used to interact with the sensor. +The measurement tasks all yield unstable values contaning the measured value. +The auxiliary functions such as calibration yield stable values indicating the result. +Tasks suffixed with the backtick (\cleaninline{'}) indicate variants for which the timing interval can be specified (see \cref{chp:green_computing_mtask}). + +\subsection{Air quality sensor} +The \gls{MTASK} language supports one type (\emph{CCS811} connected via \gls{I2C}) of air quality sensors that measures \gls{TVOC} (\unit{ppm}) and \gls{ECO2} ($\%$). +Besides the constructor and tasks for the measurements there is also a calibration task that can be used to calibrate the sensor from temperature and humidity readings to increase the accuracy. +The complete interface is shown in \cref{lst:mtask_aqs}. + +\begin{lstClean}[label={lst:mtask_aqs},caption={Air quality sensor interface in \gls{MTASK}.}] +:: AirQualitySensor // abstract + +class AirQualitySensor v where + airqualitysensor :: I2CAddr ((v AirQualitySensor) -> Main (v a)) -> Main (v a) + tvoc` :: (TimingInterval v) (v AirQualitySensor) -> MTask v Int + tvoc :: (v AirQualitySensor) -> MTask v Int + co2` :: (TimingInterval v) (v AirQualitySensor) -> MTask v Int + co2 :: (v AirQualitySensor) -> MTask v Int + setEnvironmentalData :: (v AirQualitySensor) (v Real) (v Real) -> MTask v () + setEnvFromDHT :: (v AirQualitySensor) (v DHT) -> MTask v () +\end{lstClean} + +\subsection{Gesture sensor} +The \gls{MTASK} language supports one type (\emph{PAJ7620} connected via \gls{I2C}) of gesture sensors. +The \emph{PAJ7620} contains an optical CMOS array that measures the reflection of the on-board \gls{IR} \gls{LED} to detect up to several different gestures. +The complete interface containing the constructor and the measurement task is shown in \cref{lst:mtask_gesture}. + +\begin{lstClean}[label={lst:mtask_gesture},caption={Gesture sensor interface in \gls{MTASK}.}] +:: GestureSensor // abstract +:: Gesture = GNone | GRight | GLeft | GUp | GDown | GForward | GBackward + | GClockwise | GCountClockwise + +class GestureSensor v where + gestureSensor :: I2CAddr ((v GestureSensor) -> Main (v a)) -> Main (v a) + gesture` :: (TimingInterval v) (v GestureSensor) -> MTask v Gesture + gesture :: (v GestureSensor) -> MTask v Gesture +\end{lstClean} + +\subsection{Light intensity sensor} +The \gls{MTASK} language supports one type (\emph{BH1750} connected via \gls{I2C}) of light intensity sensors that measure the light intensity in \unit{lx}. +The complete interface containing the constructor and the measurement task is shown in \cref{lst:mtask_light}. + +\begin{lstClean}[label={lst:mtask_light},caption={Light intensity sensor interface in \gls{MTASK}.}] +:: LightSensor // abstract + +class LightSensor v where + lightsensor :: I2CAddr ((v LightSensor) -> Main (v b)) -> Main (v b) + light` :: (TimingInterval v) (v LightSensor) -> MTask v Real + light :: (v LightSensor) -> MTask v Real +\end{lstClean} + +\subsection{Motion detection sensor} +The \gls{MTASK} language supports motion sensing using a \gls{PIR} sensor through a type class that only contains macros. +\gls{PIR} sensors detect motion by the \gls{IR} reflection through a number of fresnel lenses and communicates through a digital \gls{GPIO} pin. +Therefore, a \gls{PIR} is nothing more than a \cleaninline{DPIN} according to \gls{MTASK} but for uniformity, a type class is available (see \cref{lst:mtask_pir}). + +\begin{lstClean}[label={lst:mtask_pir},caption={\Gls{PIR} sensor interface in \gls{MTASK}.}] +:: PIR :== DPin + +class PIR v | step, expr, pinMode v & dio DPin v where + PIR :: DPin ((v PIR) -> Main (v b)) -> Main (v b) | expr, step, pinMode v + + motion` :: (TimingInterval v) (v PIR) -> MTask v Bool + motion :: (v PIR) -> MTask v Bool | dio DPin v +\end{lstClean} + +\subsection{Sound detection sensor} +The \gls{MTASK} language supports motion sensing using one type of sensor (\emph{SEN-12642}) that outputs either a gate value through a digital \gls{GPIO} pin, the envelope (amplitude) through an analog \gls{GPIO} pin and an audio output. +Only the sound level---i.e.\ the envelope---and the sound presence are available in \gls{MTASK} through a type class containing only macros. +Therefore, a sound detector is nothing more than a tuple of a \cleaninline{DPin} for the gate value and an \cleaninline{APin} for the envelope (see \cref{lst:mtask_sound}). + +\begin{lstClean}[label={lst:mtask_sound},caption={Sound detection sensor interface in \gls{MTASK}.}] +:: SoundDetector :== (DPin, APin) + +class SoundDetector v | tupl, expr, pinMode v & dio DPin v +where + soundDetector :: DPin APin ((v SoundDetector) -> Main (v b)) -> Main (v b) + + soundPresence` :: (TimingInterval v) (v SoundDetector) -> MTask v Bool + soundPresence :: (v SoundDetector) -> MTask v Bool | tupl v & dio DPin v + + soundLevel` :: (TimingInterval v) (v SoundDetector) -> MTask v Bool + soundLevel :: (v SoundDetector) -> MTask v Bool | tupl, aio v +\end{lstClean} + +\subsection{\texorpdfstring{\gls{I2C}}{I\textsuperscript{2}C} buttons} +The \gls{MTASK} language supports one type of \gls{I2C} buttons (the \gls{I2C} buttons from the WEMOS d1 mini \gls{OLED} shield). +The buttons from this shield provide more information than just the status (see \cleaninline{ButtonStatus}). +The complete interface containing the constructor and the measurement tasks is shown in \cref{lst:mtask_i2cbutton}. + +\begin{lstClean}[label={lst:mtask_i2cbutton},caption={\Gls{I2C} button interface in \gls{MTASK}.}] +:: I2CButton // abstract +:: ButtonStatus = ButtonNone | ButtonPress | ButtonLong | ButtonDouble | ButtonHold + +class i2cbutton v where + i2cbutton :: I2CAddr ((v I2CButton) -> Main (v b)) -> Main (v b) | type b + + AButton` :: (TimingInterval v) (v I2CButton) -> MTask v ButtonStatus + AButton :: (v I2CButton) -> MTask v ButtonStatus + + BButton` :: (TimingInterval v) (v I2CButton) -> MTask v ButtonStatus + BButton :: (v I2CButton) -> MTask v ButtonStatus +\end{lstClean} + +\subsection{\texorpdfstring{\gls{LED}}{LED} matrix} +The \gls{MTASK} language supports one type of \gls{LED} matrix (the $8\times8$ \gls{LED} matrix shield for the WEMOS d1 mini). +Instead of containing a \gls{TOP}-like interface, the \gls{ARDUINO} interface is directly translated to \gls{MTASK}. +As a result, every task immediately returns a stable value indicating the result. +The complete interface containing the constructor and the interaction tasks is shown in \cref{lst:mtask_ledmatrix}. + +\begin{lstClean}[label={lst:mtask_ledmatrix},caption={\Gls{LED} matrix interface in \gls{MTASK}.}] +:: LEDMatrix // abstract +:: LEDMatrixInfo = { dataPin :: Pin, clockPin :: Pin } + +class LEDMatrix v where + ledmatrix :: LEDMatrixInfo ((v LEDMatrix) -> Main (v b)) -> Main (v b) | type b + LMDot :: (v LEDMatrix) (v Int) (v Int) (v Bool) -> MTask v () + LMIntensity :: (v LEDMatrix) (v Int) -> MTask v () + LMClear :: (v LEDMatrix) -> MTask v () + LMDisplay :: (v LEDMatrix) -> MTask v () +\end{lstClean} + +\lstset{basicstyle=\tt} +\input{subfilepostamble} +\end{document} diff --git a/backmatter/acknowledgements.tex b/backmatter/acknowledgements.tex index b000c27..9c8c30c 100644 --- a/backmatter/acknowledgements.tex +++ b/backmatter/acknowledgements.tex @@ -5,7 +5,7 @@ \pagenumbering{arabic} }{} \mybackmatter{chp:acknowledgements}{Acknowledgements}% -\begin{center} +%\begin{center} \noindent Funding: Teun de Groot, Ton van Heusden @@ -29,6 +29,14 @@ Co-authors: Jeremy Singer, Phil Trinder, Adrian Ramsingh, Sustrainable group %Family: Parents (in law), brothers (in law), oma, % %Marie-José van Diem, Ellie Kimenai -\end{center} + +The research carried out in this thesis was partly funded by the Royal Netherlands Navy. + +Additionally, this thesis acknowledges the support of the Erasmus+ Key Action 2 (Strategic partnership for higher education) project No. 2020--1--PT01--KA203--078646: ``SusTrainable --- Promoting Sustainability as a Fundamental Driver in Software Development Training and Education''. +The information and views set out in this thesis are those of the author and do not necessarily reflect the official opinion of the European Union. +Neither the European Union institutions and bodies nor any person acting on their behalf may be held responsible for the use which may be made of the information contained therein. + +Finally I want to thank all anonymous reviewers for the indispensable suggestions and remarks on all papers. +%\end{center} \input{subfilepostamble} \end{document} diff --git a/domain-specific_languages/.chktexrc b/domain-specific_languages/.chktexrc index bf386c6..e62adec 100644 --- a/domain-specific_languages/.chktexrc +++ b/domain-specific_languages/.chktexrc @@ -2,10 +2,12 @@ CmdLine { -v } VerbEnvir { - lstinline lstlisting algorithm code spec lstClean lstHaskell lstHaskellLhstex lstArduino + lstinline lstlisting algorithm code spec lstClean lstHaskell lstHaskellLhstex lstArduino lstPython } WipeArg { + \cinline:{} \cleaninline:{} + \pythoninline:{} \haskellinline:{} \haskelllshtexinline:{} \arduinoinline:{} diff --git a/domain-specific_languages/first-class_datatypes.tex b/domain-specific_languages/first-class_datatypes.tex index 683f57d..692674f 100644 --- a/domain-specific_languages/first-class_datatypes.tex +++ b/domain-specific_languages/first-class_datatypes.tex @@ -143,7 +143,7 @@ instance Div Printer where Adding functions to the language is achieved by adding a multi-parameter class to the \gls{DSL}. The type of the class function allows for the implementation to only allow first order function by supplying the arguments in a tuple. Furthermore, by defining the \haskellinline{Main} type, the \gls{DSL} forces all functions to be defined at the top level and with the \haskellinline{:-} operator the syntax becomes usable. -Finally, by defining the functions as a higher order abstract syntax (HOAS) type safety is achieved~\cite{pfenning_higher-order_1988,chlipala_parametric_2008}. +Finally, by defining the functions as a \gls{HOAS} type safety is achieved~\cite{pfenning_higher-order_1988,chlipala_parametric_2008}. The complete definition looks as follows: \begin{lstHaskell} @@ -322,13 +322,13 @@ tsel field total = do \subsubsection{Quasiquotation} Another key concept of \gls{TH} is Quasiquotation, the dual of splicing~\cite{bawden_quasiquotation_1999}. While it is possible to construct entire programs using the provided data types, it is a little cumbersome. -Using \emph{Oxford brackets} or single or double apostrophes, verbatim \gls{HASKELL} code can be entered that is converted automatically to the corresponding AST nodes easing the creation of language constructs. +Using \emph{Oxford brackets} (\verb#[|# \ldots\verb#|]#) or single or double apostrophes, verbatim \gls{HASKELL} code can be entered that is converted automatically to the corresponding AST nodes easing the creation of language constructs. Depending on the context, different quasiquotes are used: \begin{itemize*} - \item \haskellinline{[|...|]} or \haskellinline{[e|...|]} for expressions - \item \haskellinline{[d|...|]} for declarations - \item \haskellinline{[p|...|]} for patterns - \item \haskellinline{[t|...|]} for types + \item \haskellinline{[\|...\|]} or \haskellinline{[e\|...\|]} for expressions + \item \haskellinline{[d\|...\|]} for declarations + \item \haskellinline{[p\|...\|]} for patterns + \item \haskellinline{[t\|...\|]} for types \item \haskellinline{'...} for function names \item \haskellinline{''...} for type names \end{itemize*}. @@ -672,7 +672,7 @@ main = sum (Cons 38 (Cons 4 Nil)) The syntax burden of \glspl{EDSL} can be reduced using quasiquotation. In \gls{TH}, quasiquotation is a convenient way to create \gls{HASKELL} language constructs by entering them verbatim using Oxford brackets. However, it is also possible to create so-called custom quasiquoters~\cite{mainland_why_2007}. -If the programmer writes down a fragment of code between \emph{tagged} Oxford brackets, the compiler executes the associated quasiquoter functions at compile time. +If the programmer writes down a fragment of code between tagged \emph{Oxford brackets}, the compiler executes the associated quasiquoter functions at compile time. A quasiquoter is a value of the following data type: \begin{lstHaskell} @@ -684,13 +684,13 @@ data QuasiQuoter = QuasiQuoter } \end{lstHaskell} -The code between \emph{dsl} brackets (\haskellinline{[dsl|...|]}) is preprocessed by the \haskellinline{dsl} quasiquoter. +The code between \emph{dsl} brackets (\haskellinline{[dsl\|...\|]}) is preprocessed by the \haskellinline{dsl} quasiquoter. Because the functions are executed at compile time, errors---thrown using the \haskellinline{MonadFail} instance of the \haskellinline{Q} monad---in these functions result in compile time errors. The AST nodes produced by the quasiquoter are inserted into the location and checked as if they were written by the programmer. To illustrate writing a custom quasiquoter, we show an implementation of a quasiquoter for binary literals. The \haskellinline{bin} quasiquoter is only defined for expressions and parses subsequent zeros and ones as a binary number and splices it back in the code as a regular integer. -Thus, \haskellinline{[bin|101010|]} results in the literal integer expression \haskellinline{42}. +Thus, \haskellinline{[bin\|101010\|]} results in the literal integer expression \haskellinline{42}. If an invalid character is used, a compile-time error is shown. The quasiquoter is defined as follows: diff --git a/glossaries.tex b/glossaries.tex index f21d473..f751d78 100644 --- a/glossaries.tex +++ b/glossaries.tex @@ -1,42 +1,59 @@ % Acronyms +\newacronym{ADC}{ADC}{analog-to-digital converter} \newacronym{ADT}{ADT}{algebraic data type} \newacronym{API}{API}{application programming interface} \newacronym{ARDSL}{ARDSL}{\gls{ARDUINO} \acrshort{DSL}} \newacronym{BLE}{BLE}{Bluetooth low energy} -\newacronym{CRS}{PRS}{clean raspberry pi supersensor} -\newacronym{CWS}{PWS}{clean wemos supersensor} +\newacronym{CRS}{CRS}{\gls{CLEAN} Raspberry Pi system} +\newacronym{CRTS}{CRTS}{\gls{CLEAN} Raspberry Pi temperature sensor} +\newacronym{CWS}{CWS}{\gls{CLEAN} wemos system} +\newacronym{CWTS}{CWTS}{\gls{CLEAN} wemos temperature sensor} +\newacronym{DHT}{DHT}{digital humidity and temperature} \newacronym{DSL}{DSL}{domain-specific language} +\newacronym{ECO2}{eCO\textsubscript{2}}{equivalent carbon dioxide} \newacronym{EDSL}{eDSL}{embedded \acrshort{DSL}} -\newacronym{QDSL}{QDSL}{quoted \acrshort{DSL}} \newacronym{FP}{FP}{functional programming} +\newacronym{FRP}{FRP}{functional reactive programming} \newacronym{GADT}{GADT}{generalised \acrshort{ADT}} -\newacronym{GHC}{GHC}{Glasgow Haskell Compiler} +\newacronym{GHC}{GHC}{Glasgow \gls{HASKELL} Compiler} \newacronym{GPIO}{GPIO}{general-purpose \acrlong{IO}} \newacronym{GPL}{GPL}{general-purpose language} \newacronym{GRS}{GRS}{graph rewriting system} \newacronym{GUI}{GUI}{graphical \acrlong{UI}} +\newacronym{HOAS}{HOAS}{high-order abstract syntax} \newacronym{IOT}{IoT}{internet of things} +\newacronym{IDE}{IDE}{integrated development environment} \newacronym{IO}{IO}{input/output} \newacronym{IR}{IL}{intermediate representation} \newacronym{LEAN}{LEAN}{language of East-Anglia and Nijmegen} \newacronym{LED}{LED}{light-emitting diode} \newacronym{MCU}{MCU}{microcontroller unit} +\newacronym{OLED}{OLED}{organic \acrlong{LED}} \newacronym{OS}{OS}{operating system} \newacronym{OTA}{OTA}{over-the-air} -\newacronym{PRS}{PRS}{python raspberry pi supersensor} -\newacronym{PWS}{PWS}{(micro)python wemos supersensor}%chktex 36 +\newacronym{PIR}{PIR}{passive infrared} +\newacronym{PRS}{PRS}{\gls{PYTHON} Raspberry Pi system} +\newacronym{PWS}{PWS}{\gls{MICROPYTHON} wemos system} +\newacronym{PRTS}{PRTS}{\gls{PYTHON} Raspberry Pi temperature sensor} +\newacronym{PWTS}{PWTS}{\gls{MICROPYTHON} wemos temperature sensor} +\newacronym{QDSL}{QDSL}{quoted \acrshort{DSL}} \newacronym{RAM}{RAM}{random-access memory} \newacronym{RFID}{RFID}{radio-frequency identification} \newacronym{RTOS}{RTOS}{real-time \acrshort{OS}} +\newacronym{RTS}{RTS}{run-time system} \newacronym{SDS}{SDS}{shared data source} \newacronym{SN}{SN}{sensor network} +\newacronym{SLOC}{SLOC}{source lines of code} +\newacronym{TH}{TH}{Template \gls{HASKELL}} +\newacronym{TCP}{TCP}{transmission control protocol} \newacronym{TOP}{TOP}{task-oriented programming} -\newacronym{TH}{TH}{Template Haskell} -\newacronym{TTH}{TTH}{Typed \acrlong{TH}} \newacronym{TOSD}{TOSD}{task-oriented software development} \newacronym{TRS}{TRS}{term rewriting system} +\newacronym{TTH}{TTH}{typed \acrlong{TH}} +\newacronym{TVOC}{TVOC}{total volatile organic compounds} \newacronym{UI}{UI}{user interface} \newacronym{UOD}{UoD}{universe of discourse} +\newacronym{UOG}{UoG}{University of Glasgow} % Glossaries \newglossaryentry{MTASK}{% @@ -75,6 +92,10 @@ name=I\textsuperscript{2}C, description={is a simple serial communication protocol often used to connect sensors to microprocessors} } +\newglossaryentry{SPI}{ + name=SPI, + description={is a synchronous serial communication protocol often used to connect sensors to microprocessors} +} \newglossaryentry{TINYML}{ name=TinyML, description={is a deep learning framework for microprocessors} @@ -91,3 +112,15 @@ name=FreeRTOS, description={is an open-source \gls{RTOS} for microprocessors} } +\newglossaryentry{ONEWIRE}{ + name=1-wire, + description={is simple single wire communication protocol often used to connect sensors to microprocessors} +} +\newglossaryentry{JSON}{ + name=JSON, + description={(JavaScript Object Notation) is a open data interchange format using human readable text} +} +\newglossaryentry{MQTT}{ + name=MQTT, + description={(originally MQ Telemetry Transport) is a publish-subscribe network protocol designed for resource constrained devices} +} diff --git a/introduction/introduction.tex b/introduction/introduction.tex index fd1c445..22e2353 100644 --- a/introduction/introduction.tex +++ b/introduction/introduction.tex @@ -108,10 +108,6 @@ On the other hand, heterogeneous \glspl{EDSL} are languages that are not execute For example, Elliott et al.\ describe the language Pan, for which the final representation in the host language is a compiler that will, when executed, generate code for a completely different target platform~\cite{elliott_compiling_2003}. In fact, \gls{ITASK} and \gls{MTASK} are both heterogeneous \glspl{EDSL}. -\section{Functional programming}\label{ssec:functional programming} -\Gls{FP} is \ldots -\Gls{FP} languages are naturally suitable as a host language for \gls{DSL} embedding because of their rich type systems and minimal and extensible syntax~\cite{gibbons_functional_2015}. - \section{Task-oriented programming} \Gls{TOP} is a declarative programming paradigm designed to model interactive systems~\cite{plasmeijer_task-oriented_2012}. Instead of dividing problems into layers or tiers, as is done in \gls{IOT} architectures as well, it deals with separation of concerns in a novel way. @@ -179,11 +175,11 @@ The movements are readable independently if the reader is familiarised with the The thesis wraps up with \cref{chp:conclusion} that provides a conclusion and an outlook on future work. \subsection{\Cref{prt:dsl}: Domain-specific languages} -This movement is a cumulative or paper-based movement that focusses on techniques for embedding \glspl{DSL} in functional programming lanugages. +This movement is a cumulative---paper-based---movement that focusses on techniques for embedding \glspl{DSL} in functional programming lanugages. After reading the first chapter, subsequent chapters in this movement are readable as independently. \subsubsection{\Cref{chp:dsl_embedding_techniques}} -This chapter shows all the basic techniques and compares the properties of several embedding methods. +This chapter shows the basic \gls{DSL} embedding techniques and compares the properties of several embedding methods. This chapter is not based on a paper and written as a background for the subsequent chapters in the movement. \subsubsection{\Cref{chp:classy_deep_embedding}} @@ -198,13 +194,13 @@ The research from this paper and writing the paper was solely performed by me. This chapter is based on the paper: \emph{First-Class Data Types in Shallow Embedded Domain-Specific Languages using Metaprogramming}~\todo{cite when accepted}. The research in this paper and writing the paper was performed by me, though there were weekly meetings with Pieter Koopman and Rinus Plasmeijer in which we discussed and refined the ideas. - -\subsubsection{\Cref{chp:strongly-typed_multi-view_stack-based_computations}} shows how to use advanced \gls{DSL} techniques to embed type safe stack-based computations in a host language. -This chapter is based on the paper: \emph{Strongly-Typed Multi-View Stack-Based Computations}~\todo{cite when accepted}. -\todo{Zal ik dit paper wel opnemen? Aangezien Pieter het grotendeels gedaan heeft?} - -I supported Pieter Koopman in performing the research in this paper by writing some of the software. -The paper was mostly written by Pieter Koopman\todo{probably will be}. +% +%\subsubsection{\Cref{chp:strongly-typed_multi-view_stack-based_computations}} shows how to use advanced \gls{DSL} techniques to embed type safe stack-based computations in a host language. +%This chapter is based on the paper: \emph{Strongly-Typed Multi-View Stack-Based Computations}~\todo{cite when accepted}. +%\todo{Zal ik dit paper wel opnemen? Aangezien Pieter het grotendeels gedaan heeft?} +% +%I supported Pieter Koopman in performing the research in this paper by writing some of the software. +%The paper was mostly written by Pieter Koopman\todo{probably will be}. \subsection{\Cref{prt:top}: Task-oriented \texorpdfstring{\acrlong{IOT}}{internet of things} programming } This part is a monograph focussing on \glspl{TOP} for the \gls{IOT}. @@ -262,7 +258,8 @@ The monograph is compiled from the following papers and revised lecture notes. These revised lecture notes are from a course on sustainable programming using \gls{MTASK} provided at the 2022 Sustrainable summer school in Rijeka, Croatia. - Pieter prepared half of the lecture. I wrote the lecture notes, prepared the other half of the lecture, the assignments and the practical session. + Pieter prepared half of the lecture and wrote the introduction. + I wrote the middle part of the lecture notes, prepared the other half of the lecture, the assignments and the practical session. \end{itemize} The movement is made up out of the following chapters diff --git a/latexmkrc b/latexmkrc index 48cdc14..3aabedf 100644 --- a/latexmkrc +++ b/latexmkrc @@ -30,7 +30,7 @@ push @generated_exts, 'loa'; # Clean morewords file push @generated_exts, 'mw'; -# Clean morewords file +# Clean standalone file push @generated_exts, 'sta'; # Clean bbl file as well @@ -43,4 +43,4 @@ $show_time = 1; $pdf_mode = 1; -$output_directory = "aux"; +$pdflatex = 'pdflatex %O %S || (echo === Deleting %Y%R.sta ...; rm -v %Y%R.sta; false)'; diff --git a/lstlangarduino.sty b/lstlangarduino.sty index a802906..fb90016 100644 --- a/lstlangarduino.sty +++ b/lstlangarduino.sty @@ -1,5 +1,6 @@ \lstdefinelanguage[Arduino]{C++}[11]{C++}{% - morekeywords={HIGH,LOW,OUTPUT,INPUT,INPUT\_PULLUP,% + morekeywords={% + %HIGH,LOW,OUTPUT,INPUT,INPUT\_PULLUP,% D0,D1,D2,D3,D4,D5,D6,D7,D7,D8,D9,D10,D11,D12,D13,A0,A1,A2,A3,A4,A5,A6,A7,% pinMode,digitalWrite,digitalRead,delay,millis,% }, diff --git a/lstlangclean.sty b/lstlangclean.sty index 8067354..c11f68e 100644 --- a/lstlangclean.sty +++ b/lstlangclean.sty @@ -11,8 +11,9 @@ morestring=[s]{['}{']}, literate=% {\_}{{\raisebox{.15ex}{\_}}}1 - {~}{{\raisebox{-.6ex}{\textasciitilde}}}1 - {...}{{$\cdots$}}1 +% {\~}{{\raisebox{-.6ex}{\textasciitilde}}}1 + {~}{{\textasciitilde}}1 + {...}{{$\cdots$}}3 {->}{{$\shortrightarrow$}}2 {=>}{{$\Rightarrow$}}2 } diff --git a/lstlanghaskell.sty b/lstlanghaskell.sty index c45f848..43ed0f4 100644 --- a/lstlanghaskell.sty +++ b/lstlanghaskell.sty @@ -61,7 +61,7 @@ {<-}{{$\shortleftarrow$}}2 {=>}{{$\Rightarrow$}}2 {<=}{{$\Leftarrow$}}2 - {...}{{$\cdots$}}1 %chktex 11 + {...}{{$\cdots$}}3 %chktex 11 {\[p|}{{$\llbracket_p$}}2 {\[d|}{{$\llbracket_d$}}2 {\[t|}{{$\llbracket_t$}}2 diff --git a/mtask/mtask.tex b/mtask/mtask.tex index 46aaeff..a98639f 100644 --- a/mtask/mtask.tex +++ b/mtask/mtask.tex @@ -5,7 +5,7 @@ \pagenumbering{arabic} }{} -\mychapter{chp:top4iot}{Introduction to \gls{IOT} programming} +\mychapter{chp:top4iot}{Introduction to \texorpdfstring{\gls{IOT}}{IoT} programming} \todo{betere chapter naam} \begin{chapterabstract} This chapter introduces \gls{MTASK} and puts it into perspective compared to traditional microprocessor programming. @@ -47,7 +47,6 @@ void loop() { \end{subfigure}% \begin{subfigure}[b]{.5\linewidth} \begin{lstClean}[caption={Blink program.},label={lst:blinkImp}] - blink :: Main (MTask v ()) | mtask v blink = declarePin D2 PMOutput \d2-> @@ -76,9 +75,9 @@ void blink (int pin, int wait) { } void loop() { - blink (1, 500); - blink (2, 300); - blink (3, 800); + blink (D1, 500); + blink (D2, 300); + blink (D3, 800); }\end{lstArduino} Unfortunately, this does not work because the \arduinoinline{delay} function blocks all further execution. @@ -105,15 +104,15 @@ void blink(int pin, int delay, long *lastrun, bool *st) { } void loop() { - blink(1, 500, &led1, &st1); - blink(2, 300, &led2, &st1); - blink(3, 800, &led3, &st1); + blink(D1, 500, &led1, &st1); + blink(D2, 300, &led2, &st1); + blink(D3, 800, &led3, &st1); }\end{lstArduino} This method is very error prone, requires a lot of pointer juggling and generally results into spaghetti code. Furthermore, it is very difficult to represent dependencies between threads, often state machines have to be explicitly programmed by hand to achieve this. -\section{Blinking in \gls{MTASK}} +\section{Blinking in \texorpdfstring{\gls{MTASK}}{mTask}} The \cleaninline{delay} \emph{task} does not block the execution but \emph{just} emits no value when the target waiting time has not yet passed and emits a stable value when the time is met. In contrast, the \cleaninline{delay} \emph{function} on the \gls{ARDUINO} is blocking which prohibits interleaving. To make code reuse possible and make the implementation more intuitive, the blinking behaviour is lifted to a recursive function instead of using the imperative \cleaninline{rpeat} construct. @@ -137,7 +136,7 @@ blinktask = .||. blink (true, d3, lit 800) }\end{lstClean} -\mychapter{chp:mtask_dsl}{The \gls{MTASK} \gls{DSL}} +\mychapter{chp:mtask_dsl}{The \texorpdfstring{\gls{MTASK}}{mTask} \texorpdfstring{\gls{DSL}}{DSL}} \begin{chapterabstract} This chapter serves as a complete guide to the \gls{MTASK} language, from an \gls{MTASK} programmer's perspective. \end{chapterabstract} @@ -145,6 +144,7 @@ This chapter serves as a complete guide to the \gls{MTASK} language, from an \gl The \gls{MTASK} system is a \gls{TOP} programming environment for programming microprocessors. It is implemented as an \gls{EDSL} in \gls{CLEAN} using class-based---or tagless-final---embedding (See \cref{ssec:tagless}). Due to the nature of the embedding technique, it is possible to have multiple interpretations of---or views on---programs written in the \gls{MTASK} language. +The following interpretations are available for \gls{MTASK}. \begin{itemize} \item Pretty printer @@ -160,9 +160,14 @@ Due to the nature of the embedding technique, it is possible to have multiple in Furthermore, with special language constructs, \glspl{SDS} can be shared between \gls{MTASK} and \gls{ITASK} programs. \end{itemize} +When using the compiler interpretation in conjunction with the \gls{ITASK} integration, \gls{MTASK} is a heterogeneous \gls{DSL}. +I.e.\ some components---e.g.\ the \gls{RTS} on the microprocessor---is largely unaware of the other components in the system. +Furthermore, it is executed on a completely different architecture. +The \gls{MTASK} language consists of a host language---a simply-typed $\lambda$-calculua with support for some basic types, function definition and data types (see \cref{sec:expressions})---enriched with a task language (see \cref{sec:top}). + \section{Types} To leverage the type checker of the host language, types in the \gls{MTASK} language are expressed as types in the host language, to make the language type safe. -However, not all types in the host language are suitable for microprocessors that may only have 2KiB of \gls{RAM} so class constraints are therefore added to the \gls{DSL} functions. +However, not all types in the host language are suitable for microprocessors that may only have \qty{2}{\kibi\byte} of \gls{RAM} so class constraints are therefore added to the \gls{DSL} functions. The most used class constraint is the \cleaninline{type} class collection containing functions for serialization, printing, \gls{ITASK} constraints etc. Many of these functions can be derived using generic programming. An even stronger restriction on types is defined for types that have a stack representation. @@ -192,8 +197,12 @@ Every interpretation implements the type classes in the \cleaninline{mtask} clas There are also \gls{MTASK} extensions that not every interpretation implements such as peripherals and integration with \gls{ITASK}. \Cref{lst:constraints} contains the definitions for the type constraints and shows some example type signatures for typical \gls{MTASK} expressions and tasks. +\todo{uitleggen} \begin{lstClean}[caption={Classes and class collections for the \gls{MTASK} language.},label={lst:constraints}] +:: Main a = { main :: a } +:: In a b = (In) infix 0 a b + class type t | iTask, ... ,fromByteCode, toByteCode t class basicType t | type t where ... @@ -211,7 +220,7 @@ someTask = In {main=mainexpr} \end{lstClean} -\section{Expressions} +\section{Expressions}\label{sec:expressions} \Cref{lst:expressions} shows the \cleaninline{expr} class containing the functionality to lift values from the host language to the \gls{MTASK} language (\cleaninline{lit}); perform number and boolean arithmetics; do comparisons; and conditional execution. For every common arithmetic operator in the host language, an \gls{MTASK} variant is present, suffixed by a period to not clash with \gls{CLEAN}'s builtin operators. @@ -230,48 +239,276 @@ class expr v where Conversion to-and-fro data types is available through the overloaded functions \cleaninline{int}, \cleaninline{long} and \cleaninline{real}. -\begin{lstClean} +\begin{lstClean}[caption={Type conversion functions in \gls{MTASK}.}] class int v a :: (v a) -> v Int class real v a :: (v a) -> v Real class long v a :: (v a) -> v Long \end{lstClean} Finally, values from the host language must be explicitly lifted to the \gls{MTASK} language using the \cleaninline{lit} function. -For convenience, there are many lower-cased macro definitions for often used constants as can be seen in \cref{lst:convenience_lits} - -\begin{lstClean}[label={lst:convenience_lits}] -// Booleans -true :== lit True -false :== lit False +For convenience, there are many lower-cased macro definitions for often used constants such as \cleaninline{true :== lit True}, \cleaninline{false :== lit False}, \etc. + +\Cref{lst:example_exprs} shows some examples of these expressions. +\cleaninline{e0} defines the literal $42$, \cleaninline{e1} calculates the literal $42.0$ using real numbers. +\cleaninline{e2} compares \cleaninline{e0} and \cleaninline{e1} as integers and if they are equal it returns the \cleaninline{e2}$/2$ and \cleaninline{e0} otherwise. +\cleaninline{approxEqual} performs an approximate equality---albeit not taking into account all floating point pecularities---and demonstrates that \gls{CLEAN} can be used as a macro language. +When calling \cleaninline{approxEqual} in an \gls{MTASK} function, the resulting code is inlined. + +\begin{lstClean}[label={lst:example_exprs},caption={Example \gls{MTASK} expressions.}] +e0 :: v Int | expr v +e0 = lit 42 + +e1 :: v Real | expr v +e1 = lit 38.0 + real (lit 4) + +e2 :: v Int | expr v +e2 = if' (e0 ==. int e1) + (int e1 /. lit 2) e0 + +approxEqual :: (v Real) (v Real) (v Real) -> v Real | expr v +approxEqual x y eps = if' (x == y) true + ( if' (x > y) + (y -. x < eps) + (x -. y < eps) + ) +\end{lstClean} +%jona +%jaunda + +\subsection{Data Types} +Most of \gls{CLEAN}'s basic types have been mapped on \gls{MTASK} types. +However, it can be useful to have access to compound types as well. +All types in \gls{MTASK} must have a fixed size representation on the stack so sum types are not (yet) supported. +While it is possible to lift types using the \cleaninline{lit} function, you cannot do anything with the types besides passing them around but they are being produced by some parallel task combinators (see \cref{sssec:combinators_parallel}). +To be able to use types as first class citizens, constructors and field selectors are required. +\Cref{lst:tuple_exprs} shows the scaffolding for supporting tuples in \gls{MTASK}. +Besides the constructors and field selectors, there is also a helper function available that transforms a function from a tuple of \gls{MTASK} expressions to an \gls{MTASK} expression of a tuple. + +\begin{lstClean}[label={lst:tuple_exprs},caption={Tuple constructor and field selectors in \gls{MTASK}.}] +class tupl v where + tupl :: (v a) (v b) -> v (a, b) | type a & type b + first :: (v (a, b)) -> v a | type a & type b + second :: (v (a, b)) -> v b | type a & type b + + tupopen f :== \v->f (first v, second v) \end{lstClean} \subsection{Functions} -Functions in \gls{MTASK} are defined +Adding functions to the language is achieved by one multi-parameter class to the \gls{DSL}. +By using \gls{HOAS}, both the function definition and the calls to the function can be controlled by the \gls{DSL}~\cite{pfenning_higher-order_1988,chlipala_parametric_2008}. +As \gls{MTASK} only supports first-order functions and does not allow partial function application. +Using a type class of this form, this restriction can be enforced on the type level. +Instead of providing one instance for all functions, a single instance per function arity is defined. +Also, \gls{MTASK} only supports top-level functions which is enforced by the \cleaninline{Main} box. +The definition of the type class and the instances for an example interpretation are as follows: +\todo{uitbreiden} + +\begin{lstClean}[caption={Functions in \gls{MTASK}.}] +class fun a v :: ((a -> v s) -> In (a -> v s) (Main (MTask v u))) + -> Main (MTask v u) + +instance fun () Inter where ... +instance fun (Inter a) Inter | type a where ... +instance fun (Inter a, Inter b) Inter | type a where ... +instance fun (Inter a, Inter b, Inter c) Inter | type a where ... +... +\end{lstClean} + +Deriving how to define and use functions from the type is quite the challenge even though the resulting syntax is made easier using the infix type \cleaninline{In}. +\Cref{lst:function_examples} show the factorial function, a tail-call optimised factorial function and a function with zero arguments to demonstrate the syntax. +Splitting out the function definition for each single arity means that that for every function arity and combination of arguments, a separate class constraint must be created. +Many of the often used functions are already bundled in the \cleaninline{mtask} class constraint collection. +\cleaninline{factorialtail} shows a manually added class constraint. +Definiting zero arity functions is shown in the \cleaninline{zeroarity} expression. +Finally, \cleaninline{swapTuple} shows an example of a tuple being swapped. + +\begin{lstClean}[label={lst:function_examples},caption={Function examples in \gls{MTASK}.}] +factorial :: Main (v Int) | mtask v +factorial = + fun \fac=(\i->if' (i <. lit 1) + (lit 1) + (i *. fac (i -. lit 1))) + In {main = fac (lit 5) } + +factorialtail :: Main (v Int) | mtask v & fun (v Int, v Int) v +factorialtail = + fun \facacc=(\(acc, i)->if' (i <. lit 1) + acc + (fac (acc *. i, i -. lit 1))) + In fun \fac=(\i->facacc (lit 1, i)) + In {main = fac (lit 5) } + +zeroarity :: Main (v Int) | mtask v +zeroarity = + fun \fourtytwo=(\()->lit 42) + In fun \add=(\(x, y)->x +. y) + In {main = add (fourtytwo (), lit 9)} + +swapTuple :: Main (v (Int, Bool)) | mtask v +swapTuple = + fun \swap=(tupopen \(x, y)->tupl y x) + In {main = swap (tupl true (lit 42)) } +\end{lstClean} + +\section{Tasks}\label{sec:top} +\Gls{MTASK}'s task language can be divided into three categories, namely +\begin{enumerate*} + \item Basic tasks, in most \gls{TOP} systems, the basic tasks are called editors, modelling the interactivity with the user. + In \gls{MTASK}, there are no \emph{editors} in that sense but there is interaction with the outside world through microprocessor peripherals such as sensors and actuators. + \item Task combinators provide a way of describing the workflow. + They combine one or more tasks into a compound task. + \item \glspl{SDS} in \gls{MTASK} can be seen as references to data that can be shared using many-to-many communication and are only accessible from within the task language to ensure atomicity. +\end{enumerate*} + +As \gls{MTASK} is integrated with \gls{ITASK}, the same stability distinction is made for task values. -\section{Tasks} \subsection{Basic tasks} +The most rudimentary basic tasks are the \cleaninline{rtrn} and \cleaninline{unstable} tasks. +They lift the value from the \gls{MTASK} expression language to the task domain either as a stable value or an unstable value. + +\begin{lstClean}[label={lst:basic_tasks},caption={Function examples in \gls{MTASK}.}] +class rtrn v :: (v t) -> MTask v t | type t +class unstable v :: (v t) -> MTask v t | type t +\end{lstClean} + +\todo{examples} + \subsubsection{Peripherals} +For every sensor or actuator, basic tasks are available that allow interaction with the specific peripheral. +The type classes for these tasks are not included in the \cleaninline{mtask} class collection as not all devices nor all language interpretations have such peripherals connected. +\todo{Historically, peripheral support has been added \emph{by need}.} + +\Cref{lst:dht} and \cref{lst:gpio} show the type classes for \glspl{DHT} sensors and \gls{GPIO} access. +Other peripherals have similar interfaces, they are available in the \cref{sec:aux_peripherals}. +For the \gls{DHT} sensor there are two basic tasks, \cleaninline{temperature} and \cleaninline{humidity}, that---will given a \cleaninline{DHT} object---produce a task that yields the observed temperature in \unit{\celcius} or relative humidity as a percentage as an unstable value. +Currently, two different types of \gls{DHT} sensors are supported, the \emph{DHT} family of sensors connect through $1$-wire protocol and the \emph{SHT} family of sensors connected using \gls{I2C} protocol. +Creating such a \cleaninline{DHT} object is very similar to creating functions in \gls{MTASK} and uses \gls{HOAS} to make it type safe. + +\begin{lstClean}[label={lst:dht},caption{The \gls{MTASK} interface for \glspl{DHT} sensors.}] +:: DHT //abstract +:: DHTInfo + = DHT_DHT Pin DHTtype + | DHT_SHT I2CAddr +:: DHTtype = DHT11 | DHT21 | DHT22 +class dht v where + DHT :: DHTInfo ((v DHT) -> Main (v b)) -> Main (v b) | type b + temperature :: (v DHT) -> MTask v Real + humidity :: (v DHT) -> MTask v Real + +measureTemp :: Main (MTask v Real) | mtask v & dht v +measureTemp = DHT (DHT_SHT (i2c 0x36)) \dht-> + {main=temperature dht} +\end{lstClean} + +\Gls{GPIO} access is divided into three classes: analog, digital and pin modes. +For all pins and pin modes an \gls{ADT} is available that enumerates the pins. +The analog \gls{GPIO} pins of a microprocessor are connected to an \gls{ADC} that translates the voltage to an integer. +Analog \gls{GPIO} pins can be either read or written to. +Digital \gls{GPIO} pins only report a high or a low value. +The type class definition is a bit more complex since analog \gls{GPIO} pins can be used as digital \gls{GPIO} pins as well. +Therefore, if the \cleaninline{p} type implements the \cleaninline{pin} class---i.e.\ either \cleaninline{APin} or \cleaninline{DPin}---the \cleaninline{dio} class can be used. +\Gls{GPIO} pins usually operate according to a certain pin mode that states whether the pin acts as an input pin, an input with an internal pull-up resistor or an output pin. +This setting can be applied using the \cleaninline{pinMode} class by hand or by using the \cleaninline{declarePin} \gls{GPIO} pin constructor. +Setting the pin mode is a task that immediately finisheds and fields a stable unit value. +Writing to a pin is also a task that immediately finishes but yields the written value instead. +Reading a pin is a task that yields an unstable value---i.e.\ the value read from the actual pin. + +\begin{lstClean}[label={lst:gpio},caption{The \gls{MTASK} interface for \gls{GPIO} access.}] +:: APin = A0 | A1 | A2 | A3 | A4 | A5 +:: DPin = D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 | D11 | D12 | D13 +:: PinMode = PMInput | PMOutput | PMInputPullup +:: Pin = AnalogPin APin | DigitalPin DPin +class pin p :: p -> Pin + +class aio v where + writeA :: (v APin) (v Int) -> MTask v Int + readA :: (v APin) -> MTask v Int + +class dio p v | pin p where + writeD :: (v p) (v Bool) -> MTask v Bool + readD :: (v p) -> MTask v Bool | pin p + +class pinMode v where + pinMode :: (v PinMode) (v p) -> MTask v () | pin, type p + declarePin :: p PinMode ((v p) -> Main (v a)) -> Main (v a) | pin p & type a +\end{lstClean} +\todo{onder Task Combinators verplaatsen zodat de voorbeeldjes leuker kunnen zijn?} + \subsection{Task combinators} -\subsubsection{Parallel} +\subsubsection{Parallel}\label{sssec:combinators_parallel} +\begin{lstClean}[label={lst:mtask_parallel},caption{Parallel task combinators in \gls{MTASK}.}] +class (.&&.) infixr 4 v :: (MTask v a) (MTask v b) -> MTask v (a, b) | type a & type b +class (.||.) infixr 3 v :: (MTask v a) (MTask v a) -> MTask v a | type a +\end{lstClean} + \subsubsection{Sequential} +\begin{lstClean}[label={lst:mtask_sequential},caption{Sequential task combinators in \gls{MTASK}.}] +class step v | expr v where + (>>*.) infixl 1 :: (MTask v t) [Step v t u] -> MTask v u | type u & type t + (>>=.) infixl 0 :: (MTask v t) ((v t) -> MTask v u) -> MTask v u | expr v & type u & type t + (>>|.) infixl 0 :: (MTask v t) (MTask v u) -> MTask v u | expr v & type u & type t + (>>|.) ma mb = ma >>*. [IfStable (\_->lit True) \_->mb] + (>>~.) infixl 0 :: (MTask v t) ((v t) -> MTask v u) -> MTask v u | expr v & type u & type t + (>>~.) ma amb = ma >>*. [IfValue (\_->lit True) amb] + (>>..) infixl 0 :: (MTask v t) (MTask v u) -> MTask v u | expr v & type u & type t + (>>..) ma mb = ma >>*. [IfValue (\_->lit True) \_->mb] + +:: Step v t u + = IfValue ((v t) -> v Bool) ((v t) -> MTask v u) + | IfStable ((v t) -> v Bool) ((v t) -> MTask v u) + | IfUnstable ((v t) -> v Bool) ((v t) -> MTask v u) + | Always (MTask v u) +\end{lstClean} + \subsubsection{Miscellaneous} -\subsection{\glspl{SDS}} +\begin{lstClean}[label={lst:mtask_misc},caption{Miscellaneous task combinators in \gls{MTASK}.}] +class rpeat v where + /** + * Executes the task until it yields a stable value, after which it is restarted. + * + * @param task + * @param the transformed task + */ + rpeat :: (MTask v a) -> MTask v a | type a + rpeat t :== rpeatEvery Default t + /** + * Executes the task until it yields a stable value, after which it is restarted at most once every given timing interval. + * + * @param restarting interval + * @param task + * @param the transformed task + */ + rpeatEvery :: (TimingInterval v) (MTask v a) -> MTask v a | type a + +/** + * The basic task that waits for a specified amount of time + * + * @var view + * @param number of milliseconds to wait + * @result task that yields + * - when the time has passed: a stable value with the number of milliseconds it overshot the waiting time + * - when the time has not passed: an unstable value with the number of milliseconds it still needs to wait + */ +class delay v :: (v n) -> MTask v Long | type n & long v n +\end{lstClean} + +\subsection{\texorpdfstring{\Acrlongpl{SDS}}{Shared data sources}} -\mychapter{chp:green_computing_mtask}{Green computing with \gls{MTASK}} +\mychapter{chp:green_computing_mtask}{Green computing with \texorpdfstring{\gls{MTASK}}{mTask}} -\mychapter{chp:integration_with_itask}{Integration with \gls{ITASK}} +\mychapter{chp:integration_with_itask}{Integration with \texorpdfstring{\gls{ITASK}}{iTask}} \section{Devices} -\section{Lift tasks} -\section{Lift \glspl{SDS}} +\section{Lifting tasks} +\section{Lifting \texorpdfstring{\acrlongpl{SDS}}{shared data sources}} \mychapter{chp:implementation}{Implementation} IFL19 paper, bytecode instructieset~\cref{chp:bytecode_instruction_set} -\section{Integration with \gls{ITASK}} +\section{Integration with \texorpdfstring{\gls{ITASK}}{iTask}} IFL18 paper stukken -\chapter{\gls{MTASK} history} -\section{Generating \glsentrytext{C}/\glsentrytext{CPP} code} +\chapter{\texorpdfstring{\gls{MTASK}}{mTask} history} +\section{Generating \texorpdfstring{\gls{C}/\gls{CPP}}{C/C++} code} A first throw at a class-based shallowly \gls{EDSL} for microprocessors was made by Pieter Koopman and Rinus Plasmijer in 2016~\cite{plasmeijer_shallow_2016}. The language was called \gls{ARDSL} and offered a type safe interface to \gls{ARDUINO} \gls{CPP} dialect. A \gls{CPP} code generation backend was available together with an \gls{ITASK} simulation backend. @@ -279,7 +516,7 @@ There was no support for tasks or even functions. Some time later in the 2015 CEFP summer school, an extended version was created that allowed the creation of imperative tasks, \glspl{SDS} and the usage of functions~\cite{koopman_type-safe_2019}. The name then changed from \gls{ARDSL} to \gls{MTASK}. -\section{Integration with \glsentrytext{ITASK}} +\section{Integration with \texorpdfstring{\gls{ITASK}}{iTask}} Mart Lubbers extended this in his Master's Thesis by adding integration with \gls{ITASK} and a bytecode compiler to the language~\cite{lubbers_task_2017}. \Gls{SDS} in \gls{MTASK} could be accessed on the \gls{ITASK} server. In this way, entire \gls{IOT} systems could be programmed from a single source. @@ -288,7 +525,7 @@ This was later improved upon by creating a simplified interface where \glspl{SDS It was shown by Matheus Amazonas Cabral de Andrade that it was possible to build real-life \gls{IOT} systems with this integration~\cite{amazonas_cabral_de_andrade_developing_2018}. Moreover, a course on the \gls{MTASK} simulator was provided at the 2018 CEFP/3COWS winter school in Ko\v{s}ice, Slovakia~\cite{koopman_simulation_2018}. -\section{Transition to \glsentrytext{TOP}} +\section{Transition to \texorpdfstring{\gls{TOP}}{TOP}} The \gls{MTASK} language as it is now was introduced in 2018~\cite{koopman_task-based_2018}. This paper updated the language to support functions, tasks and \glspl{SDS} but still compiled to \gls{CPP} \gls{ARDUINO} code. Later the bytecode compiler and \gls{ITASK} integration was added to the language~\cite{lubbers_interpreting_2019}. @@ -296,7 +533,7 @@ Moreover, it was shown that it is very intuitive to write \gls{MCU} applications One reason for this is that a lot of design patterns that are difficult using standard means are for free in \gls{TOP} (e.g.\ multithreading). In 2019, the CEFP summer school in Budapest, Hungary hosted a course on developing \gls{IOT} applications with \gls{MTASK} as well~\cite{lubbers_writing_2019}. -\section{\glsentrytext{TOP}} +\section{\texorpdfstring{\gls{TOP}}{TOP}} In 2022, the SusTrainable summer school in Rijeka, Croatia hosted a course on developing greener \gls{IOT} applications using \gls{MTASK} as well (the lecture notes are to be written). Several students worked on extending \gls{MTASK} with many useful features: Erin van der Veen did preliminary work on a green computer analysis, built a simulator and explored the possibilities for adding bounded datatypes~\cite{veen_van_der_mutable_2020}; Michel de Boer investigated the possibilities for secure communication channels~\cite{boer_de_secure_2020}; and Sjoerd Crooijmans added abstractions for low-power operation to \gls{MTASK} such as hardware interrupts and power efficient scheduling~\cite{crooijmans_reducing_2021}. @@ -305,7 +542,7 @@ Moreover, plans for student projects and improvements include exploring integrat In 2023, the SusTrainable summer school in Coimbra, Portugal will host a course on \gls{MTASK} as well. -\section{\glsentrytext{MTASK} in practise} +\section{\texorpdfstring{\gls{MTASK}}{mTask} in practise} Funded by the Radboud-Glasgow Collaboration Fund, collaborative work was executed with Phil Trinder, Jeremy Singer and Adrian Ravi Kishore Ramsingh. An existing smart campus application was developed using \gls{MTASK} and quantitively and qualitatively compared to the original application that was developed using a traditional \gls{IOT} stack~\cite{lubbers_tiered_2020}. The collaboration is still ongoing and a journal article is under review comparing four approaches for the edge layer: \gls{PYTHON}, \gls{MICROPYTHON}, \gls{ITASK} and \gls{MTASK}. diff --git a/preamble.tex b/preamble.tex index 8ddd2ef..94383b2 100644 --- a/preamble.tex +++ b/preamble.tex @@ -10,7 +10,10 @@ \usepackage{amsmath} % extra math \usepackage{amssymb} % extra math symbols \usepackage{relsize} % \smaller command -\usepackage{atveryend} % \smaller command +\usepackage{siunitx} % typeset units +\DeclareSIUnit\noop{\relax} +\DeclareSIUnit\celcius{{}^{\circ}\kern-\scriptspace\mathsf{C}} +%\usepackage{atveryend} % \smaller command \everymath{\it\/} \DeclareMathSymbol{\shortminus}{\mathbin}{AMSa}{"39} %chktex 18 \newcommand{\dcolon}[0]{\mathbin{::}} @@ -32,6 +35,7 @@ paperwidth=17cm, paperheight=24cm, } +\usepackage{pdflscape} \usepackage{float} \usepackage{fancyhdr} % Custom headers and footers %\pagestyle{headings} @@ -110,13 +114,18 @@ % Bibliography \usepackage{bibentry} % Cite bib entry completely \nobibliography* -\bibliographystyle{alpha} +\usepackage{natbib} % Cite bib entry completely +\setlength{\bibsep}{0.0pt} +%\bibliographystyle{alpha} +\bibliographystyle{abbrvnat} % Graphics \usepackage{graphicx} % Images \graphicspath{{img/},{introduction/img}} +\graphicspath{{img/},{introduction/img},{tiered_vs._tierless_programming/img}} \usepackage{caption} % subfigures \usepackage{subcaption} +\usepackage{rotating} \newcommand{\orcid}[1]{\href{https://orcid.org/#1}{\hspace{1mm}\includegraphics[width=1em]{orcid}\hspace{2mm} https://orcid.org/#1}} % Tables @@ -134,11 +143,12 @@ % General listings settings \lstset{% basewidth=0.5em, - basicstyle=\tt, + basicstyle=\tt\small, breakatwhitespace=false, breaklines=true, captionpos=b, columns=[c]fixed, +% columns=flexible, commentstyle=\sl, escapeinside={[+}{+]}, % chktex 9 frame=L, @@ -151,16 +161,18 @@ stringstyle=\it, tabsize=4, upquote=true, + numberstyle=\tiny, } \usepackage{lstlangclean} \usepackage{lstlanghaskell} \usepackage{lstlanghaskelllhstex} \usepackage{lstlangarduino} -\newcommand{\cinline}[1]{\lstinline[language=c,postbreak=]|#1|} -\newcommand{\arduinoinline}[1]{\lstinline[language={[Arduino]C++},postbreak=]|#1|} -\newcommand{\cleaninline}[1]{\lstinline[language=Clean,postbreak=]|#1|} -\newcommand{\haskellinline}[1]{\lstinline[language=Haskell,style=haskell,postbreak=]|#1|} -\newcommand{\haskelllhstexinline}[1]{\lstinline[language=Haskell,style=haskelllhstex,postbreak=]|#1|} +\newcommand{\cinline}[1]{\lstinline[language=c,basicstyle=\tt,postbreak=]|#1|} +\newcommand{\arduinoinline}[1]{\lstinline[language={[Arduino]C++},basicstyle=\tt,postbreak=]|#1|} +\newcommand{\pythoninline}[1]{\lstinline[language=Python,basicstyle=\tt,postbreak=]|#1|} +\newcommand{\cleaninline}[1]{\lstinline[language=Clean,basicstyle=\tt,postbreak=]|#1|} +\newcommand{\haskellinline}[1]{\lstinline[language=Haskell,style=haskell,basicstyle=\tt,postbreak=]|#1|} +\newcommand{\haskelllhstexinline}[1]{\lstinline[language=Haskell,style=haskelllhstex,basicstyle=\tt,postbreak=]|#1|} %For storing listings in footnotes \newsavebox{\LstBox} % Fix list of listings title @@ -173,6 +185,12 @@ \my@chapter} \makeatother +\lstnewenvironment{lstPython}[1][] + {% + \lstset{language=Python, #1} + \renewcommand*{\lstlistingname}{Listing (\gls{PYTHON})} + } + {} \lstnewenvironment{lstClean}[1][] {% \lstset{language=Clean, #1} @@ -213,9 +231,9 @@ \usepackage[nodayofweek]{datetime} % Use a fixed document date \urlstyle{same} \usepackage{bookmark} -\usepackage{cleveref} % Easy references +\usepackage[noabbrev]{cleveref} % Easy references \crefname{part}{movement}{movements} -\crefname{lstlisting}{listing}{listing} +\crefname{lstlisting}{listing}{listings} % Glossaries and acronyms \usepackage[acronym,nonumberlist]{glossaries} @@ -245,6 +263,7 @@ \def\Glsentrytext#1{}% \def\titlecap#1{}% } +\usepackage{glossary-mcols} % Index %\usepackage{makeidx} diff --git a/subfilepostamble.tex b/subfilepostamble.tex index e944d9e..d0aad76 100644 --- a/subfilepostamble.tex +++ b/subfilepostamble.tex @@ -1,5 +1,5 @@ \ifSubfilesClassLoaded{% - \bibliography{../other,../self} + \bibliography{../other,../self,../tiot} \printglossaries% }{ diff --git a/thesis.tex b/thesis.tex index 8ddbe1f..b8ec716 100644 --- a/thesis.tex +++ b/thesis.tex @@ -41,6 +41,7 @@ %\setcounter{tocdepth}{1} \tableofcontents \todo{reduce tocdepth to 1 before finishing} +\todo{to reduce the size: make listings font smaller} \newpage% % Dedication @@ -92,6 +93,7 @@ \addcontentsline{toc}{part}{Appendix} \subfile{appendix/clean_for_haskell_programmers} +\subfile{appendix/mtask_aux} \subfile{appendix/bytecode} \backmatter% @@ -102,7 +104,7 @@ \phantomsection{}% \label{chp:bibliography} \addcontentsline{toc}{chapter}{Bibliography} -\bibliography{other,self} +\bibliography{other,self,tiot} % Summary \subfile{backmatter/summary} @@ -122,21 +124,23 @@ % Glossary \addcontentsline{toc}{chapter}{Glossary}% \label{chp:glossaries} -\printglossaries% - -% Lists of -\cleardoublepage{} -\phantomsection{}% -\label{chp:listsof...} -\addcontentsline{toc}{chapter}{Lists of \ldots} -\begingroup -\let\clearpage\relax -\let\cleardoublepage\relax -\listoffigures% +\printglossary% +%\printglossary[type=\acronymtype,style=mcolindex]% +\printglossary[type=\acronymtype]% + +%% Lists of +%\cleardoublepage{} +%\phantomsection{}% +%\label{chp:listsof...} +%\addcontentsline{toc}{chapter}{Lists of \ldots} +%\begingroup +%\let\clearpage\relax +%\let\cleardoublepage\relax +%\listoffigures% %\listoftables% %\listofalgorithms% %\lstlistoflistings% -\endgroup +%\endgroup % Index %\addcontentsline{toc}{chapter}{Index}% diff --git a/tiered_vs._tierless_programming/.chktexrc b/tiered_vs._tierless_programming/.chktexrc new file mode 100644 index 0000000..e62adec --- /dev/null +++ b/tiered_vs._tierless_programming/.chktexrc @@ -0,0 +1,24 @@ +CmdLine { + -v +} +VerbEnvir { + lstinline lstlisting algorithm code spec lstClean lstHaskell lstHaskellLhstex lstArduino lstPython +} +WipeArg { + \cinline:{} + \cleaninline:{} + \pythoninline:{} + \haskellinline:{} + \haskelllshtexinline:{} + \arduinoinline:{} + \texttt:{} + \url:{} + \only:{} + \orcid:{} +} +Silent { + \pause +} +MathEnvir { + code +} diff --git a/tiered_vs._tierless_programming/img/TempHistory.png b/tiered_vs._tierless_programming/img/TempHistory.png new file mode 100644 index 0000000000000000000000000000000000000000..469a8f9dadd724a73dc65b211e6e68406210aaa0 GIT binary patch literal 34002 zcmeFYdo+~m|355B3Q2{M=&(yACY8uxRFWNq5@ImQmNJexGY1_IioJ^{rzj!DB*r++ zjELDejpK~-gc!#r#u#J9%YEQ&VF z^v()E8;4eO5^b68_C05;j6_5lR9_sB?En7xzX<%lLSU(RBh-&>X&V-QnD%YbXU)24OgyXQaGo=b2?g zY5Dc@=0|e7n;xzV_!yvZJ`#%Yd!gZ-@f3TJ8cq%T=^1Kr{tE;B4@o8 z3_tfd?p6FzV7+F#)i7#->`=7cq?I{juUe>+$sH2Kb}^P)DOO~`;>kQlrLb-avqHuA zuQX}kKp8w=3s-QWm01*9PWU6y62qaRiFYpJR-b&AP`)n!mUgKLT(~%wQZ;E|%=rPy zTD@%Q`yM!7L3l&Nxbdn-7Lpz@H5Za0fJs~n4cTiPc>c~})>SJ3O^HYX*OyRWrD#`w zVVFUN0~SOsHKB8g&Kv)borHNjBvns6IX(grEx50X2LXE!w|%G$=Tfy)^XYKSP-5d| zp7~z2Pv;lkT5hog4*$+R{doACnqbjDqI2xI{V--^njg4N@$4%{Ce5g;9~H?p zs2MBrT#(6;+$6`F4H1YMsw!NF^Q~cSo;>rnwJ`Jf#-%(j9G?9{@irh^Jo^ir*b#d3_Wk>zi=rswC!Jn9jTKx{JO1lq#^ z7$!!9O5uO=vsWLdTgC0mm%I)NjA_{XgvOB`tFnmBQR%ck1uxjKn*aO)V6FwNvKK|4 ztVCm7iGvaF^6;r9$fR{Ice}~hHgosGzD#RSkN|c&U=qS=;O{lNI}}Caeloxfr@<*F z%RLuHUxNoD-#YliiXpP{IhBw0w5Zee zazeIM1}uMZz)JMpL2jk(*kWrHzdj}C*lg|qBm>FG@IC;&yA?Di?<1)g0YeDUJ;(ZwdW6lNbuS1y+)^i zV=Jh~H1w5-Lx^=U-KYjGiX%7${qK%zM>nz1~AK(vNHT{Ub{O8_8JYR zmx?uUpahUqQ9ow+`6rh}vf%4{Yn9Tm>wszGcE6vSHRzE9`f?_9xfK`BLa~pNPBk7GgoQ?YX`nNq10kFRH2yfZQA!R%3LYIN_Z5W z|68g(_>)45S;Nwj7W)fY_I&Bgk%qmCFwBbgPgyTNTCUyr zeI*u&@7zx2nBt_tg^Q^KMUVP@%Xw$3OQ2cvT!+slIV&PMPj{XzyoyuansviZ_D_T3s{v1!Sc7O>OWOhn=7sr3l^b{e7gfG& z{+A%?pde`q=HwLw*(YiZh}^j6W5P5(w0s_fz#F#)0e%rB+K5>;bCCm)(Cono8g+G5 zfi3%*{#om`4HzlC4Z#)TU57WX`Aq}|YrMKNHBRQ*=)S7kY3=h~UT3R&+9xE*@d$d$ zPjChbFx+uQWkaHf#ck3TAS!1}TTm?No#pB7?idVH6`5g!e3hrY1M zFA_gjX5YvU{O-}!?Yo_pjs7z$ng`J*QRVpSy7*${5@2{=5Z!*Ss zp)GhR%_aAby-kV_cxhUySv7x>m}Jml)?$;)d7ih|K_D>NXt~q`TcDqY!TL0SbqD0e z2}W`XZKajB7dv}q%1goEdm2`9VmX$vGFrKB((F5twJ2I{vZo3M8-u`L6rEMW@29@a zy1)GL#|oI8y>*jBW@-^%XQ^4MpC1CzllQINzLQ(y{4+U4FZ^ZN*cLlQTz;d*_w^NU zpTh;6v~Um=|B<$4bsogETpmn_G{T0BSH!4 z`TfIbfiu_?#&eO%XO1_~1$2O!!W(;3?jzAxcr|LP%_$<*ZjmV27!7#saF)u^^tJPp z{(eN9*NZ)bkt2!5IV{W6c$BA4&q*&qc#nB-VIYNWeiVSX6)s`-7G#MRRyYqqlLRkNUri5NR}7d#M_ ztp1cc#6q*i1BiEO)TlRmYFv`8q^l@va7dzuYMHB3LFd4=Fs8!gr@knD)4iFmR` zNDvsBy36+6slh>4TS`4v@9z4WIr>}YnW9&K)07L@qj=cDbCa&`?(?Pc43VNH=$eHE zlg4j4k!3R9o+En%c{VF*E`^h=)LheWMR zi?>At@o?d7rK@78S!KDaO!Sy8P+l0f0_U`Nlr%rAV)DDh)h)S7L0BuX)R@4WNvHBM zKqU*dY+v8IYWu{*j?3MJE`t7~M@2`7q6%3S3@5Q#!_T?5CjyCpfzifkFbLTUvRRBh zYnpMmiL~;i8o0k@q=~sg7iLdIZVyX9MAf!OrjL|Ziyf>ZcR~P0HCtfR%%n9%W_2dEZ zv;c5`Lsp*pqHQ2eF6NA}5_37RUee!(qu5f+b&*)P3sLMz({*CRe3vB7BS7_rZ~dU* z&=Et)9I?pzfSrV26>E>5HkEIa5JT)ur<~m(c6_VOR#V{k;a7==>%zobTOYA^J{A{~ z%#q9iRyqrLuVktxCsy>*PgUZoSnb*Fvpa}~#U@QTIpBsm+uPjsZWh}KEMNIFIF6$-UKP=|D*K=>2%MP){obaolh_5y= zwYP2%ler*!p(9>A(&aiN&QDeB#>xL#=tH2;!%J_}R{uWt-(=SWWw-pn!C_VxN&N2y z_VXb|E+|e<2+F5>A7amQJENsuw>&E&PWMzZglx!z!b3-*y3Ev2i;EL!z6naN0yx=n zsL4k9B8Lv=TCQ{5ySY@3Irdxqq;HPZQU1HhyEzPTKyWE$%1cJWF|DI3ZK z7Y@tYveFo|)PdbAgQ;`LqH?cwwI|lZ+1l!{YqF8Sc`R8h7|b`J=^rvu7zuwgOWYSO z=(Lvp7UN?a-G4qDKr7WvPYreb(GMe3t0rM^^qUEwtNrO&ZwbuHD36wz#>LF$7FY~4 zp_uC~5M=eOZ8+M|SKp*M4utx~!q@NrBP*O=@@lx83uy3oo*z^)(}sUYV+v4Y zoFDp$_6X9!NE!jauCf`#cl)ufV~xAsysBc`_54P8UD-2fyx4A{QHfe-6nXz}%f56R z=go>TAV!@^J+B)Bo_Y z(T!S}a>SOb+Og&&02tF|P2GAT3JI6!!probC!|BcV((E%!R}v{6wzJBn>;zjvca#k z)!Z8Ce9y$1WbGyf2zNHWcNU(QcwmwxA=bPVFgE>9@9KFw%qi2X?)4XcSHb88TXZfj z@9do*q{#Uzp?r3|U?ys-+Jrl~T|RSY{sv-Q_^EEA`k7_-n;j*H40*5QUBJP-N|m0H zutB%nEU>%+C=tzquQWvi$&cQmP)PjO~5GH}2LZo-I@IYX!gw8lzW z;74Zr)}t%UdM`_z)+vb8vJAR0G`qvOsz-$_5rgWPp*dCi?{-8UOE8&%Hf3s|y!r+j z7!6y*P3r3^TKnDN2Q(wDta;fMqjdPG6hy{v;Zh^W#boTzhSAgu@c!M~%tXo*0#e{_ z&`~eve15MHt7gF&?`aVKjzT|avnM>WBQY^7b6=)~VdFi^Of+sP%n8fb-NfS`vTP9p zl~I**fAW1j?+D$*Q^&bucF{{C`KWS*qlpc|?u~p=#@XYI-F{HjvG(^Rjuq%r_oV3+ z*zR`yhudn;?wIJ0zlfusteufJy1r;^gmRmC8|jEqN;Ft0=x5MZzL=_Cpsmy_oM{}J zJkzJ+Qy7Hwq!`S31%10_`!iJW&S4`-h8+P}^}I~D@UujdFnCxKSHA>u>%SpCBQ)Uv6*-W0pr^`nLs748{J&WA(hZ# zOuxdVSKlNiY~P1aGoIL)q<*+8q05@%Q=+WCr91r2uV9B-b?=**L+BZw{@~I*K(Gwn zxw#8b+HMCiTs9T_rT; zJKMt@F#P$cd&dW+&%x@6v;fZn+0G{Cx1J_nCq2eWOnZFZgv9sIHp%?*Nq#t?f@s?c zW2&^#CkRv9a_+09KXoUT-c&yQ3Kbf?_kwyBKKC48(90h~ zjEj2~-+D*Bd$lcxAXy*g1~*7>ACp@OCmi5k*`H{*ku2BsGU%s-? zgBxgP2k-aBLNp=l>k&oxWac>PVj|;YRxxK9%P?rdp}gg7vBt%#nbvKu5d_!bG{n`dA|nD?Fje)$5L$2ehNnw67?$ms4X)wrHNcft1i3ESPB z9LZJS1ghA{6XI(sQ8};2C_U~0ujkplcA1Io+G3@H&v@rq4aFyf>{?XQDX+~6f8rT1 zwp?98E#>q&5|N0F#S5P!hxdqyojwQT-pTbdTbL$@0qUJ+x3>0{I^XryK@R$8E+)M9 z_9jn;;r7p}IywZEeb$Kr5(HQP%p&x%!ihB6pJv;O8*a>Gcp7NoR|v>j+BB;v`)kfH z{THA2h*uB8QL=OLjM-el@p}KUsaZiO2B=l?sOi%4$-_G*{<*Fm}j~l`ID9Krx z2}4=S{O~j(*!>_*y4lOOL9XooHh5q3U)^4h9>DN`LrA~gd73j_gWHXw$v~%{+2CsM! zF9n_J#47{6$+`ufW`~MT!PoUDUv6CG&~iR~)34{14WSJa^dzT5V=_&{6L%FnOqZO_ zi-84)jb2tfx)`4WRTF6LZetF3(pIWzI>#*B8EF`oxoWwsL-rxd5T+7vR ztqy80O}4V|KHguwa7Z#yo@5r#v3Z7#__63jz5C=!47<>JKsl(R??ok2Bew$Ezr+Ko z%DQx*>QJJsP-^6`vXi5X2s;ha@qN4#DN65UeY;|xxkH?*g?|)o{Ekw+%8PvsSj1Wd zDp>R*^~Ahb?Iy*r!?IM2f~n*A3#K=)8{lr?gQnDomf7H|zQ&v|%a_$wLo`)a*qVG^ zISGfHOiIgTnH{wpq+%?!P=~-fK7S{Q-qqLON20a&*xh)_8_zamZv&v~y$(@cy}fAJ z@zC_~Q2)|L0;Fl9Gv0Q}hTsc7l#X-uI5GFfsZ)Q$P9bNeM5p^CB)}^89*}=E(lw2_ z)^)slOFN0ai-YmE|7@PU+{3S-cMNb1se!^4dn9+VmGDb2MKXFpD+>a`cPVFeW@a8&9yR7ZgwrFS;wm88HOPesBe%A2sq-$3G3%emir9YwmFM>j?cf0p2A zN5F%fVbbs|+UeAWni82}wsVeSJjss7Q8`(iu@Z6KF!3Wjk!iFT@j1uTA74ur4DV=@ z2-pu4=z&oWJGw7_{(3xW;I6w3V)x3&zY4HYanZR7D=F*l4Yxe%-(0YqdQZ;*mVNzn zQ?+s%;T8Q2fly%u$1UC%?JX;Qdg`_X5-f*$h<6Hcv0qVlTzjf6x({!st+dnj9)m(w zdavWRo2Tsh+G97LqOK$}cl$bDK%-C?c}#iY@KM5z4dBgXydChYJ#Ul{tu#mV7vJ6V zvL@>M)uuvaGTN=7FYYyj&ZW{U&pss?vU`Vcgh9dV};LloAGaCn2lYpjz-Nr zigcD`!YF}WvU5*>tJh(#_ey)JeB1=EDof@fBNNU@HMp^56eG>6nX1Z zUe+@Xyys3eU#5-6=1{I=rASiDq=R2>Ym@kS;hMSWvltmBH5h=Jw^PF>jv(j0(I>AW zs_)ShZzQLrdODL%W|~yBE|&`QyT1qY`9a~eWz)>QR|4|mVg{%+n66lHRJz3_7&9pKaP3^HV zv+zNkIW>sIMmw0Y2-BK&>%jYDAJY%*CCjnqS7BG%{b7OEOuT~)%Wf3);OHwt_j=yK zPP~@ftE|u36JcA1hOO~v=GK2q<&ySemFlAgP;^JoxdT$FU5gjpP6ui(R*;7W5ZLqm z96zXRX++y-Yg&J3!UHgerrJQ1i9@NGw>zePIC;AZtnuYVPN&m-v5(G7*K}Ji`r?!4 z-K-h`Tl@)HiZt^LRrwW6YapQYOuCxEnDeQuJ^YBXl}AyNVTmt?UZ~?6+3DNz37O2K zfp}*3t4e9+{WJ1ldAq;k?OSh?X2~ODMP`mQX~$EzNB5KP(PONnz+G#Tpmf67l7Q>I=yEa$rS{li;r#5;?x-J(%O z>aj~(>T{I#Oq-<0GGpxKAQ=6MPQzbgSw|NAUb(_YLO^>kElB zm{mP65Hw{+u{)aa;iVtn9Se4N$8?+sKu{4GM3+JMbkEoyz4_g4R+WqjV%biOA)m#X zc#IJFH1PcMz`Y=W@NiD198I)uvpC7^qt7^5d$H@&%JRKkfj{mhr^I6&e%uV(A zU#!c~bdco&Xr4P5Jq!}r6$Nll-1U>bMkx&%KMwrCk{!<*BmvAzs>DCci=XN*ss|`> zi=rX+6h^P7aL)TXJ2AG0V=~ZAq0sFH;T7zKFMYISU(9!hNYMmkB2n9R(NW(L;DK5) z08<1>qw9K!KM9|XVm~3sx8)5wl6F;jXpF$rLKG{MU}I*7$&>z#l=KJ{-{Fgfr=9Zv zK_>p;i~d7$dp&scsLB0MVF}g`%1|{HU(%-knK&?OboDH7)Rz1IwqKIO{HmJZ$6_*> z2LrfZhlZIrm&Fftyk0x#%B$-pgk;=D9BQ^9p6=t|iC6(B(EWpn3M)!1{V>1FA0Pl- zRSuTSAYBD+-=rG8`c&5vM_%rn>Y^G(tV~gnOJy~uaR3|raWv?Vi|=TVx(jA8hmUII zxyZkei)J4vwnzj{vGkvWGGY(0h{%<{B8-n7zi#fG`(3mw;ZZov$*JQZ-I1E<#)N~b z&gyd0JEPcQA6Q^r0#b2xVE`2ydjq>t2{A;E;dR7U)H9LOi@O;sOKt1jYrn_RQ$jKE z^en;W*EcR1b8Q#HJ9J{$zVPi(yM`3{JF0z;Sp#P(=m}_2A^&btOJ|+9XXG08|2B|| z&Aq?+qaR@m4LS1khN&@=zMnX`Qpe-MD^^I^wrn2RtU)yMKZtc7^GNB>Vwt>y^gBszxe zKeW79Y4QmGlYk`x3fS_W6tL&T16(gq^ZAU1v+qXm0UXUCRk#rW;FwAf=df=Vk7EFl zGn0RW>8X7pC0qr}if{R!wzbGknQ4&-P@rdJ&0M+=-l6b_O`+&E1daPXn)QFm(-jpn zNu5Dc)J)d@tjMCXUUZdpVaTV(t1qcOZ&iikn4qzs#lPS@Je~nB>P%#En;3$*KF=GG zs`Ib3>56k$DjnWelpUqwi+w7L?Rd+?e$Ag$};K~uZnS?Gi z(N2((J@gMH3$n>C_u3`o%@FhA{)EDvNmj|M&DNPuek`7(I$n~KiK8ck5+7@R=j2qY zwNZ|81gO{i{>43oOiEECIg~qYut4!Izo!NUgVcX_&cF5-wMk4%eRG5HO}0^Wqr9ga zI~k%+a;N|?TmNlT6~;zRPFEdI;P#>~fuy)dnR5napI(?|g_P%_N%t^+{0|-~C2yYR z3Kc$47>_w-_i18a5Oz*ZMs{Bm8<5QGaAwTZyr^*cd0W(CO0nU#eW+a(6cMvQNo5hzt*EaSR7WadMAi7fMk_H zA$ARLJ<<}A%>X;mV!b7#8~<)G;=H5tz5S{b$(_27cC@k3dTR6_xS3v--MC!T5BG*K zSVI#EWX-4k^J|evgNVZVna*Ny|8y}=lix=Kf{2dzkPO3}*&){j+;(yzc39#2yuZgl zKfEe@Rba=p$7Kz*rHPh=()NtJdY}NREnaH)cXyX`!pt9}+rsx+x_$^(-Kl(jGjol{ zKMOzhZ@qw~*EclP;PpVS(0`-bSw|zafkBBRVE>vma(^;D>fag!yM7D&{@n6bDA2G` zk@@QUzdSV+PWrei9qj0f3kRyAYB8Iy2Z5NGhglL<8+~Iijdd1V zehEK;0h;aA9Kh3FC2wYaI-4{XubUILaQI^!c4fd|NVhNyZ#tXdZZFY0L-DYE(nl_&2P{ z7Plr+5^lDLw~C4Nmv%09&HRD+X_FTppZudsx`(3#zjyX)?PrJA1yfJp-9W>LIC+!k zGIC>GSInPvz{E-&&spB!k9T8ABiqG-O5&ic=3^HQt^72d_9JbAg^LoOArl2R{Vz#N zT(uh;9ZF$6Mr%$3gQbUnaTgTv->s(lgvf$^J;6I|-Od+~JAu4J5@@Agze}Ilt-5at-4QS zuQUL2mu(6BG)#HIKp*O|Uim!I*YG0oum$N~=NK^r&XFc+h_e<`v`7(8pj#?(0S|t} zZa;#3MaVGPN`9U9?qGQpg^P_wqfdO3lV zX#HL|;q4*U4pBVWf47VbxX^)g508d;^;HLU-gX{C6>Ob_$Dk`c7<+9gRF zXCEyC?5&+(Q)4E+7Gl8d2bmacwgpA=_WcQr*lMTc8%rO@K_zLXd|TUw1W)t^>a% z8oQZB@Jg;KCE$$6htm@&$>lLtK|b+(UEep{U~0zoKT$5bCK6?tZ11HmHqk#F!01Ey zo7zL-;l%uX_1TZPpY<%~RX16K{t4>D=$25y$aI?AA`%Op;eP5J%^X>?lgx}CV3Fqr z<9+lWqP)+D+=^j(Ii@B`-RYd!Dw)&#Hz6odIl_BUDy8`>vg5_vJj>nMS(?oDBQe9d z^S#YIOAoU`kVqTSkih!K@b)&YO7)ElH7>qIn;x%x!kYP8bp66~Aue+`gn?pCmrzs# zT<`oNlMR5~c7r4y+^f)+aL83DH=}zr=*cg+9O6q&-K1W*sN|eWyvf*is$hO_EbQG) zzoQJwak+W+lrmZ}XJ8A{%{?@1509qEkv8Toe@k8nphUCXzmo27kiwmw8ohM+Hv268 zD|_mUDHrj#tB#HH>^+^^d=b!eomuOxHcguuulxl$Ptiv6##5@Hx=^1EW}}GA+ZIy1 z|8)!vh_8@zGd*7+JrnX7@dx_W`4$OIMy*zCRMhQU6c{r`3`>1l+{9kF?991j-2Lv< zaPLCtU2Ok@Fu_96$f>PE!FpM~o8Z#)h={j0E}<2zar@Ja!?~yVt%=R$i;1;Jn-M`D z%EMseXLfh|iQgVDPaO+7^Sr9e6PjR?DCOVm8uD^lHbd^x+)lH7Ww)f%a} zKUrSS>wQIv;4g0=bgdAkMg(B-L#s+eM)3M$Hy{AJ+AeVvHa%l{B)9qHVzEq!SM(+( z-4~$qnVAva2T>ml$dt`Yu#w+d)yTEeQd&PdT9i1#H3Wh}*zF^7#8cVKTyN6o+YJM- zPlhge$F~k$)PuVq(6jG(s?PzArNnkHd}f?`%(0Tx2HcKeI2XGD{45=k06N#ieIP66n*C>iG1j1yEV*aJu&NAAnz69H+(kGazp?Mu!%X=KhJ!?0&dL(Xs2N36_4wP zB}_>+&dTIx0v(THg)GY=U@$xM~%s61Arm?yU zXAdj|egC?1UG=FMw~C*UGPtw+id~ePg~?6&*n>IIvnTf_m+af<5a+yuUcZIuzK4N zC-sfJeS4?fQX#3k^TY^pJvI>-XP9c$WjGB9p>|&>WP*5KKPt~!{{cNlHGFc=n=;p6 zE<%o@1tEiG0$3PKUWz;HJLvP6dW3M#N+B_i<1`W2$_srWUqny1^j@#nf6%jfuZm_^ z*u!DI>gH(#U?i@a#EtF_-td@$Z+dQCZuHAV=q|g9Hmkh|R(jlUS*-fR zjN3BN3P_ZheU}RTkVF;r)RUlN6xH#nEmfUD^wjnR3os5x{(xveNgOAi>bYg25v&P_ zxMTVY<73S@O}L#PV&>aA;$frxWm@&qCI!8>b%v$sH$C;#vUGRUPAJ?A(OmS3V$0WU z8FG2_ZJ$p-huh{l+xM>vcBfJNfSSZikLm@lrR&TN5R~qD?5q!#V%l@VA?b{#-gA`hzAxgyWl(dv zwN0D@+zpD3rnAsUiaJha2eWAlDYT@XxKaGHgpNlu5tz@vZzI&ec zGYL?r9h1;aqAa<`3jiYv+nYt^f+37Po>CCYUAZF334S!Y9d~yEQ(N4+vhzDo!b>q< zCRd=JDgE&OGSiE&{Q1Zyf2Jj4ZmG*u(1ZZ782FIf`zX z+k$n<`go6oKMzf?AH1l-xKi{2n71l`Pjlz_p5}UR7%?4pIPnKb5&dGI1>#tsx-V2C zpZf4?*_CkCG%u6?^h5aJNiBOS9eO&!rfPz3-IKrs8rQ+;3tx?#C0+0IgoZm|#SCoG zGMeRj6NSr&)7v~eZroet>fJV z$O=K5vG34`AP3PFVgMx-aNj<#g$Dp*m{8$0NV+e)u(~`dbXVgGg29ew%yVdO=>@^* zuCs=!Cf=N2t9Dd(?`$E7Ff1Iosk9O8G)=a13281*>5|Wa{PaL>A#MH0j#Vg^47A*BJY+G^^G7cM|X1S3cJ zawCQT5&yH0#?n;~XCkSawgh-bE_V9BVF)1tZlQ;ve|e~@$_Cg^Ddx>e_;eI|4iP~w zN8qA9@R}CwQk{1D(I1RDiaAN&i7=V%KRPq)b}GgXT2{t79ys zCi@)uc&W2c(IDpf+Fvd;oWV7ZtT{$-9sD41kDDM>w zKNWLKKNIgqQon#hxd;sr>b{qU99-cpI6H;EL5IcZrsFnn@L4+R+E(g|9pT4Mr^D%- z>9O?{rYzRf*eEFi8r;Hmm{{s`a~uyE=$g|EcjD3AW>-_xFSY?;fmNu@aO1H(F#qK& zZLfcwMQnAp1Sq~;;lHED|1!-YO#4CYCK!5ueFa7}i4vwGhGm!nr8b;#dg5!sJH@K< z=op(ip6Mr6k{>BVZy=x`a+so0PuGUO(HqA4Rq3Xyl}evuF`rZ-&!6cvR_@(QHVoS* zIbA4Y8a&SN+;e~JIxzuwCG;N4%qlB%p`Z&G+jU>p_Nu;km`k^_l4lX{+xt6X1N`@o zwnto>L5~t4!P-qBi3J&tl?Z!Sv3Sbyz`j)4YNI#BO{;!t8K}n&ULssIIOK2O4>vI~ zEwqoN9tr6x;K=w7I#zGV&4}@&x;1gn`@(hJu@D?{cQxCY?9s4fhOT?!jcUWK)$`#E zyr0*(n<;J^mUj($)@!B1wbCItqpSz4(t!dX;E^E`tEI1N7D@`YFd-m)uT4--j~TBk zcE(TnLCJI4T+MVfZmQeg!^-8VK`tq1rFx$A79M*$v}qkuW=IY=`_Rv`2iNh2Uk|go znq!=8>UmP(x_6=lMdAq=VUs^=O|59vNHKsK1ERHl2<$1`GTA{ zE;kc*X{P*nXaeyQQfRmk8D2bsM7HE)mX$YKQ!gEurOhZX`2g($1a;>Gg|8ldgjng9+OEmHwkkrXzPXjwkS&>nB46fIBR? zR8OMED$By-9rK4b$BdC|#9U@1JXr(r=NCeeQ2~gUf%9C% z&Fv#dUPTx1Q69bDtu4eW-+7xW-0IFC^S`Ti$wZFn23slnXmnJFDG(C?W9Rz=txA$PebaaNalbGlpz6k2SU!Bbq$~boJh@w%X;r9!d*N{9 zWFDX`iL>6ejxwD}vM~gOHi|3IhrOfG*H14o%)~Q+d9$*m<>s-{$K6HXKAoFY*#8Rxa`byZ?K{Ggx!x! zU#coFx=7}(uQef>&z)|5t_QmxTo8Qk4=dcgGFJ^jKmG0OIt0odOW4(g^V*+IRYPFq ziiUi=2ZYP$qvRJR#64`(e@-oW52J_91`_u_%4&#P0NOXB{uemuJ6|hB`QM~NcL71T zSle-T;4X z2U^KEY?B5nWb#`S3Pp^24K1%oz!rm7{w0lcGLS(|;dCLj4&J>z1J9pKm3XSbNV??@ zc-J&OXfd86Mnb%U!Zifgf}z{H&T|dR-y&IBS-vxswDMYNVvq|Sol7(8w!E0(re|Ds zvOSdoU4GcsKRwwm76we- z2Or-4jUUJ=!F0(=ym#;zd$h!KoX}S_;q6$dn2k)| zYArp1fU|*qJZ;R_arBuOe<@sn{@TUf8ccg|Fd2yR^0LB~7Wu}@*U6X!4 zMl6ttvC#}?7)%dx@|H54BC>qFA>@3VzH+a3K4;!Uq)I$DlbS@lL3NL^3qmbsx}AIn zFW{VQUSi@YdVzPdO;i5(yU-)$;DjiAoEr+#xxYe|jB+qIBmRN(0igs`O|U{{qM{SK zwEU>2)`%dLX|uZu(3daPoK?`jmk^vWNOMbHFw!pDi~y#u5S-zhPn>-u7p#6hc!R{j zO!bTp{i*b|NPTvC?vkVW$tAl=ed3ZfkvlMrdl$_fxBR`*(fH5d8KsQ9eKzqcIK4C3 zW`;3(cK+!I*bq)XomELJS>^TOt|0R6yRVo|to|?3zWji&zr2ZQBI6LT5s61Qlt;&< zNih)vA1IV#o8Q0+MX>rdZ>Int0 z?j|3bE{r}uPV;^@RvPO^%7fpTTP~Fw5&T)8eod<@zGR55L8eFp(}||N<2Tl!B|X|d z>;~xXsMZ+gfYUnZR=1j)v(KKE>@uO}4PMkUUeqq>*SE7yu5Xrl7Go#fdN5s1J3kR; zfq)4Gh|)U|ofTNx(h_#8WRf(-P~4Md8^tE3*#8LcIeqXa@VmFS;r4^TGjDK~ezTGI z`liutk$7$v$S(ckD8-?PqxC$&BWgC^)1g}}*Tp>z7@6c|0h48JR$tSrG}f`he)_h= z)nDOWQnni8`g_s6c-*ZU%JrXj#%=K~IJ416f*Ptij|>h=4octoSEiXvd>7rLDIg9v z)r<39$$Z@3$i3h#MP$(}oS8GWzQ61mAp0yVJ|8>;7Fm9c@owZc@41vS=ez(D>v(|e zim_WJXlb76=>?`kBd!f%(r?^YvH~(c;yz|Zk7hZ0!xWemb?JCh!Y_qJgIP&3r^VdM zKE*|f*0IcbzC3<7qf*8z(+?f=Q|hJM#HZZoWqscqVT@=VqaQ(xGuHLTlw2!T^eNGA zo>i>%$(LOg5>Z|+rw5oe+2R8lhp-hp-QV4 z3`rGmMRIf_{e7Cq9~a7;j9r;B=FM z@ms5P(|x^Hha)z4KrsD(m0&c+o#@>v`Xc)C7g94^x|ZrUEuI5wK5`Ra&NRWim!{ zIibC#=9^{FJ1h16hOGG;%>&B2+vu6TyWSBpDObylL`kfue##4YS_P}$&B;~|K2U6& z;60Z*4$qs!jsjmu`qi%dA`fLQyquFxn(H4}m=n>7#5+}o{_wpUr?;by*Q2u*@%!-5 zV{-4^Y;PAW>nCYCjDIXNWukgZ zVKWjdrq8H@hJQ4X%^eHN+k;c|#+$2+2!xm`a@wiXe;PS70k!zgdR*336C)4Az`Whr zs>46#P>fdtO}tEIClJY7jDZHE?(o z#<7J6C@A|Qens;uNAiJb^c_vU$FFtS{i++5X!Y=Mm&%9DL@) zS^ReG*+G5Le|RVGrDvJ9&3aBvfK#U@_6pY0(Nr%>Jlx~dN2^Edwbt1n9kp*UjCV;| za^@`JSL-dSJ{@8IIauUISWQF}6K>zrkzd}jAxECHWkWMy%_i$>2ui+T<~-3_dI7&YbW6BB0|#j*R|`niCgB6YB69UgmDV$nPS1Sn>Uq+m82t)$q*r+ZI7U@o)Hup;}m zi{&v(TiB1OPhAat)b~*FOWnR`Z0DFu4=NW?Zl<{z-^I?T*D{{E@!3gVwJVk7KG6Z! z20KN7&S{-Xb}=N>9rV+JeBh2!R>J>Id}poo>K$!Yij3~3HsRo&I^gp^pof_d*qNU^ zf?~znME_kY6hSrCdYP=35vJsz{OTRv0YZYs3+D{kA~N~ba*zwy**DOZxdI!^>(MI- zx_v62ufH5Wa$B%}o4Wd2+ux@ueOJx^+_cHe%0->=X?~f}^+y8Uk|WQ~ys~W72I*7D zxhin>3QO``XA5l;kYMyDabIi7ZO+cf3}y~IErpJ;5b7sBGa9@Xqd8c&t)e|J*9Nj| z#!W})@S;uv^$QNBm>3^|w$w>qvxXx0YwRnv7j|L0ev`n{t=GErf*eLk^R85$8ZbYW zDgv4a;Dr|udtZ6e6YLzj)JzUr&RI3k0p^sg-UmG`eAC2vxPOP1$xJ^d-;r+p-u6+q zd#|%W?CWsUuAH( zI$$mLq@?we*P{hebbPKe?$)1M*7{{&Gv0_zMk-xl8;9Taxovx#ER6d{tb>vtr=D~Q zRxJ28wAWjDNcjfvy9-8;nm~aYKnmvLsSx1mJP;xA9XTFC>Nm3MPEoU|F1DE=jj}BK z`QwyafM28BzKTx>8~lEPYFrS-#&16+sADI1KVti5%~$=Ib(JjlGdG97jWl$T7{ecT z*{*wVZnW$Rf6%leZ{Vib+GGbPj+bnaCvNAOMlbro@L+z zjW8VcqZO=){(xWcbU9tB{>`WmL3us+idOxW#8Zt@Zh5Y#<;@)G+94!!}k&S$f!Q zU}tfD`9zd_{Z|u#>U)4c@23@$GvR8akRD`Vf#p7wqrd980Mfw-%^EEN#)^Iu7u6Eh z?hO5YqDIU9&lIk6W}tQPlf(fl&rhgbRWXi_;n3oK`XMszZFvx;l86FWNOG|Mu`%tQ zV1=z`i%26*I{-Qh{GL!G*p5?JR%M>gk1z`pJd}Q%~?>D0~wmi_LpgmOpf9`h!pR^y1W>CPwhV zuhKev4WSIfe!x|ZDYF&{Or~n@{_pOL6|+A577)0uD#bM0e#5dwvcL7*q=+h0LH4Zc zbwy#q(6CqhM{66bPNTZex9X*Rz4%I(vV>AjUwosxrSyglJr33DuXa;Nom)us#!V)C zz=P0sUxMZ?SMc5;gltxvsr}k<(i^#pu9oq($F_?mA!!Fl^0VSlmS@@~c3Z04P#I=u z&}FpR89&`>BfoHS8CM*-mh*b^O+l+D*tDh=ogcoGA6M?ykS{_8om_M^4+R(}ZAjut zbpxeN*8|jCOpsFLftQS>>;QOX@x^M6xwZ98yNZF^RQ10RFvb|z8hmV<&Afoklj&Iw zdzDnP`34``_7L?4P!bFJ8u>OoqQ#s@5w=FTWai}7p;NlW$+rFVnbVptjQKI$Icc^Z zacM4D4-w`SIQ=JbNssdFJuFGoE7fEy&ShwEB}lZC?;Ec0)ecg$wM&lI+BlS`)Y{}z z`Is_i_iwxY{>lAbxZS0V5D48*quOL}?H9NX@cjD?z6Rs~t6xOyYrt0F*BtcYk*=lW zeN_<#Bgsu=C1{-rK9X#n_l9NVZ&74fsKoQqQf%k$9jGUd)>NRI~tBgX(e*#|IEhaM4an=C6J$e2%f@ z5U|EZsV~^e+BzfPIOR}b>NzQ@xPk+h^g`h)V*^9aYdJh|20@@O8oJ&TKDc&#huqI; znEzjF8qhs4_ehf5X%APJc>h)MmjQC-J*OH7%g!TE2lv*gcFK*qzCLnF-PC>hga6va z`H{Ny6Ql@^hR}!rLXOA+*f8<+#hUKBQfS=`(8a_|f#5(n@LweZm=TZ;i-2Or3_R_A z1pM6HEZL;9QjP5eUZLR=iJzV?oC{Ec3E36)QhSb_5n&%h*-E;Xb(cEzCeck)k>~5e z2@pQX4xzj8UO@s3<(apK8`lp>${P2ua5I~EwKH$SApUBYJ%2Ghz7|jzSdy>3nv0FL z^V`T2E8>*F8`KB_Smv5pT|4Nadyr`?cQQ*6t(47QD?TGFn-sr)Gv5p}ptWZ`6d)ZC zWUQ&JMbDoZF$3p44<0D#9RR+gs}%sAylkhTaH9B^$9<#yn6CNm7;4vDbk*D@`P*=? z5^Os0DNk=xA~S2(#SqY8Mm86BzX8cSHg;R=cYxSEEl|YeRsAm$^W8d2iozYC$L}{9 zXIVF@AG{2jvh{kXLHVHNQ|I>R(w!9!cA;1Y(DyE*PT-S=LsRZXRC0P|v_hz`D{InI$>WK{6Ldr;#2O zs@>wgNH@>D){xz?e4VSIu-R5%MRy1Xv91%JN^iYvil#dD>&+M=q7-T23^LJTd4t zlaKYF6f02UaUKF&rJUgL+9bM#`N#v9QaWb;GZjw$Tlg$jjP9gq(#I~dkD$!NIrQPn z#h}qQ1Ek7zmmQSM3y&QAz+aq&%uJnT!7CQWBGrYA4Dt~+Pi@c$V>`H&k+Vm$Lx`t< zejgg$CYIOY**tW5*G301bM46a{@g*g2k&+ga&G^(17cD-71rCS1w?~J)Og zb|c3wM97|#1$Cy?pLn1A9_n(|8Qf|x1+sRA8D29RZ+Y z`rx^hMO}%%Q}`*lb7@)+2*$>H&ho2w)1Gzmy*~}(5&lWQvlmL{nT>YZP7mRJIsD40 znNF?^!__vw>gmSU7M2W~uX&O$j7%>YZsaaWK1|(puIo=qAXxM6gJ#y367~IxV>ejh zo_smS*MRlkKVO{vJF==F4h`ko9r#5&M>NahTS$!a`m$}dZjEcRY}91s2rFLcO&btF zQRCbQKWA48we~*3D!nl9xG!R_Ze7^7%6+uvfoz$~Vu*bSbFStWhx;)yH$US#YQLKC zTr}R>391I*>8KdjJ#VXR_$YUYq$rOn()M6nHw|0gPl4U+(r~)N7KLGdejL1SgeC9K zotGhmvEK>0nLcL9U%=Net6BX3g320=sSeq2yYozMND`-3wBycg-*M_Oo70nb!d;B# z*XoR@e@O*jIFZjuqnaYUPa^rGZg#*8K)jeJGB_sz9$Oy(UyQE|4eEIoI$4C%2i<3{ zF1adHx8bEh3Gm^qOJtH_Iw;BHJU&8~kzRfW!nc@#aaea1YJ5 zSB>kp^P2(98&mRE7Nmm;SxR2Zr0(gjLzfMflJ}G6UGr<(ZuOW}yji+m{D+GBiTlB{ zJK4puaf)%c7t z^M$l`KYhkgH~#M2Qs(sY`y23ue1r1|*>LJ{N0z1cv^@i?eRgCwgY?lM2f}1cVL>~H z^#${rN|z2QOqbb6)7A{}aST@%uL%Dx3EpCsX?>SaYVnLeFz;unt+wgs?R>pN-YR1_ z5Mv%K_H2kc_`o*k+QwZea#Q)xPw5uwn6ZzXG1)hnypKK=)xB0&5FlE38K)(M_^jh5 z9H)*&sp~&MHm<)R=}8~Yv>h-AwX0hX0pKSa$F_%8y!%6a9+Pw_$TVi9E;8L>({NAP zO054Mejrwdl)ft>~a{7jH3NXMKEtR3h+v$R0RDHwTyx zhHDGI3(!<&nC^a>J$R8Jmy@PYrx;r`a+WQNcGx^SI*LMy-7=qb&mt+Krco|w|3YC~ z!E>CFl)xR5SNuTfQfD3CZWGNvMs#nL+T7qr+4+ltViilf87O6*x&B=(f%ADini*?> zR1@%}dk@cA%3zlHL-6n9NS*SBbeeYMeTbR&r9j7v_Q`y{Ka}0(%o0=4#6cq{`(!Su zip*u~V%jovfKbBa{-e{&?H&H}eJRB1vYV<;_cNA!Gv=r7$*-m#Yj=CM8BuR+OX53wdp{jqJA$5>0prlPy92tEJV2vCN8>?Y#H z@32mC--E9PqhMNkyWtzsn}y4_J9RvjDP2|fHiJHkWcnwX+DnXAj51KlELWdu59K7H z7VnJ@e|OIqYaSwhAw66i&k|)_EK_M9zPeA@GF->^vxFMrg?L`|*jsy#i8^wJBwn}Z zCu(v&zhDfZ3)&NG?Z*4)K#gk6p-~pw+g;W>TK@RfuKNj~03u20!THFp2*=)<%ST*N#*GS?G;^*Io!i$&eJz}uYtogM##sV8*?0KFBY>4Z93xvl{ zf1OPq>=G~u;J!{VfY)-cxXbUwr#}q8x>*q&5bDr3s0h`j_~m>~d1in_vV5+JX?Epp z=h@N{6*rpB5y>V1e+2E0^tmXV$=WnxcWu_$=+L3)f>b*zzW47#>e;-oORkHxP>T0% zKZGyvpku{QYU_-xU##2m+EeQls2pA*Y&^1NJt1ijmU-@y&GIL}=ng*eK7CaeLj$Ao zbnvz%>2`kv?Y$sn8vpo6Rokj9A3oN^eJtmoIW~SbW|{zXS-;j}2N0$Ki@CY2$V<$K zW?}D-TGH+N0_&iW%ju?9W}pe&)zYZO-q0P*UKrB94|V-S~Cw#pn1 z!n|9o$$57?W-xL)I2mFOKh<3fH;QlA!^PmkLV&6lv)wg+rF)1W~!z zqD3kDEkz(j2SWBQ^T=d?_hb-0XQAp0mb$bm<6IL z>-JARc~|2cZPbl5cXEy*79bv_6b9&{%+iVUuZD&QHj&sF&k3`Ggk|eOJ!2d9A2|#; z6Eg7Qo@F_HZv3w>3*=D&bclmiF)rQ)bWrxy;+|la$n22U*g_uhQpRb4F)Qz50b<4> z{dV{*>zMtR^Yg_YuYGL*I%_w`1SahF=A`#7WKi}z@KThRs!kMm6PoyP`lUmQz6UN7%tReY?>$l zV$$PDBw}DS5yG3>W};7v+e<90EDjK@`JwX3*=rCMZH;-0U|KPnUC=ikX1H843@GFL zmK<2YUt;_d4Mo)Vu7Ib=CusTYnPC1Vaa^>6G9mlzco^}v7NOYmzQa3|tZ8e`nAc(M zF=fz(Y4*jydTeBBkSnySB8o^f;8@4EY_3RPQcZEsbalX^iQYK3e{gzvw&7AU<`yVkt# zZ_PfNi=DXSWxUVncy#EOik*6VEbUnM*imiX>4Z8ZE z$mZ{65;>hpq2Qg8()O?mY#9PwIdxNrxD0xMdjV9xV=^j5v8`cmqUSe19&vliN4LD$ z^Ery`a|2<|K-4M5zK+$YlE7z|`L6BF1pwIMv#%2Z>9CSYA7~7HQ|GHH|2bXb_kvDo zJ;y#?pWaOL$eom6rh+q9IA7)H>KM&Vb+12Sx?zj?%EWq|9J(0Na4=?d{qf9&a)FYX z996=@$2b()bp!9dXSwu)v@gN(X^Z}d@q`}QeZz0}hsyRsT%TufS$EgGR|PLUUQ$V3 zgwfLbiN2NyaKIb5R6ZFV+|j=Njh0>1%cXa#8Su?)iS7LEYu`(`eAYyFCvuA>k3P@y zc9LLkVx!F$iesR&*2o9&-L4hS3w$$k-{oCpu5LCuY5;!r9g0>}e63UejJ)7IFgqRh z2m=P1R3I7tv#HabIA+}$Np!91ChHvP%6WRQrMa1LO77XOrL(u5B1#rty+kyzSGlri z+zg_QG>PNXhNiQr6FZ(yj2u`mH%z(7&q0dZy=L43o)#pOy6DYIv~|>iNyLq-3{(!c z%49gRj{7@JU87C*7fMm4x*>KmC=I&GlCM8IRru+L(v9`GDz4=Wve>!;rO`KdDo1CdhaPH?rTf96xFXu zl`nMvkra-!fo@%>I4;cbqVJWN)SwJ+!u^tclNU75qmTXNz*j|Vl@o!PrT;mtqs4-NQkRU8uQ77X#X+fiAT48Se6(r2R-1too z6{_?gK*jqD{Ybgke^PMl`KN%H`r+V-erI9{qzF&Wl_gVK1NS4U^4K~S@P7>Z{rW+* z&DY=g!3;#+1hGWqVP04Iw-KRz+i!H`Ev6~O{Iz}@mXFan?OfLD~GB%EcP$($arT~+) z={(rQwKRcp-&dcz(jxrxN#cY}JUqajUqVSQ$WSCotZXCcuAWYzPN2H37e)I(A)jKj zW$5*C8qJZix;N%}$V4P)9Bg7sq+PhDRT}ssH{+*KI|Da`NxwfI`^|P{ar0Dti!c~? z!3(BD9!@(PsK0NFymcZOSY8-(1lT1-EyaELLQU}`txF<|puN^o5aJ5V%Rj|m25!B{j{G=N$LY)g$QE(TI$Y8Y<>{_HxTe5yS8-i-wd`05%H>sgA= z0Yfvvz^olxL`5o0vC6Hu*v+2H42m%BcApqWhZ?d*yN+G5@As3Ou_&9HVp0_Nm~L0z zvn*w2=Q+;sl)^)P*u@)=ru=5cIpg)$WFkq9`#^%Th}i5eniP93b+_q zVNqbZ!{5*A3m&#%Fmz}srpdYRvNVljyjsl<;W1LzmRxmy{=>3_8F7+Ju}zman_0|W zhMAbnULoDfld}eKD6HZlAG zMUxlP8{hS|974$9IDYfMcqjX_Zyqxg8AM%>l)YxMGB%`sE<_wdSLm%dk=7WhtY$3K zSo??(_l58GcX@YyS1gRZN>{zS(cx;Bd$k^(@QHUgB8<#1l*}+wPq-jBBOBVDK%w~( z$b|lC$n_7t5e$cFpYIhN8o74+UCyw#^SO00;3wk@6&fDZr5?md^kz4gjD zar>0Kn_87LEo-&5-Ky9Wb%gJ7QOXzNTNLlU>yq5R7#kZsoQX4&9yG0TIa*|T26bw7 zSJAgb_>&`tWw)6zc5bJBcS;W$urP@lBdum}RP`@g7hKg-LMj^l#D1RzR2lxNo~dW> zI%1=pW5$m~`1P}WMchekN-DkS+sFR*M@fy1eNv^XSWiOXS8R2lk>{q*dgPeg2BBQ$ z&~H+Nc9J4xk0A$lsofU(5HM1gd9)6rV4KjJ>AFNh~!a3Wjz5j8;;B4TNDAr9sd*kh|^9kI}oex7l zVU2Hphpu{OL=&9qE<8DG$x%7Bv55Ov{I=Hz`C3MZJe)6vS~gL?HyY*NkiT(8E4hXGbX;fRc?&deej>a znHIr5WSlkjh}4`JQY+UL-SZu5pad(Qf!2cN6#Q$grbv@)Uknd}G3&g=1wT1kZUdwC zxx(VBH+%Auc+C2b5$8(E(gZtH{U$!f-bF7R2}ue%zaZY}^V{;@{Y!n1`czJQT6id! zikFQk57y?x;lAc)ym0H6oH!C_*p`#3$?i+|t(#z~@!xA;%v`L~vFh`1&Yi-E|cJ261ZS|JV-o5RSDqiiBn70YrlsqLg16;ei)5RU)ra|4@R{c|8wDMms z_CMSF|I9S5e?k%NwsxLfspxqS7JNmEZ}R^UB=f&~n0F=5F_-eSy72W{yH4c54@H!K z1993pnK4HIWHB$%=Y`SdCx0bIEE$`ab;kjX`X5X=cvzWGEjKsIH| zr@*ZLt+Y~!G*exT41KkJ_#5)>-ZNJeR;=WlA0NBi_ytCwA(B5b^jMHr7$!AcyxE0E1h4b3SA?#17qLoW2JGs6EyYlpa_Z&ppadgGJkkXk0jo1IsJi@8l&u<=P6OJV)0a4sQ< z8=T)re!uzQ1>fmoX)6bOCkB!Hg;vL;Fz8|d68wVAr?XT4tbU3sg=cwmW3!?&Fz8`t zWdCmqzJ&X?o!ZycT6MP$YhTba=95G>UYOD%mkhcwGmWXn+{JiK<&n}uWzMxTvE3_r zQOU1F2}8%&|HDsmnYPZ%M|cp;(EAxlxv9yYX(!?YoLJJ3QWyzAO6*6IZ|C+cvVB+~2IWnf+l`^M4c|9t4jl1N+h+wfA2Rx~Wa7BWKB0 z-fn;VjTitq{B@5&+$kpp)a+xLJl@TQ1u^PAnk7x(KLhRj8fsHaf7r8wQ2m=Xu#f-Y z?LH{&?(v>H`wJeww6qk#{nTt#?q62i1Wfx@X+xL`6YnY{Px<*l*(Pt^&oo(K7po@?~l4&Uy}ZpXOun8 z9j#WiwD9&uG5cMM;5CWR`GjgRh_jaqg6LJQTtW!=$vqf(_}!-Oh#-BZ&sKbF1m*sJ z!V<_Pz0?NaGrq2xUNOycVP)#4Pa1y5&7MMwd!7~?PA2oz)34F2{Snlqo$-VdtxwPk zwu?_t)Zx)UzOF`$xSIbK8EmHjI`=c5zNXd@QQ^@! zzM>&GhIMTuTMbwFvUi?e4<>iT#1;O&LYlyUuAPQq`0!{_nSUSJy?M}0We!{0Alj`f zE&crP`lr>N9-lv#)yjf&{LXs>aLX_zX|;@1TDE-59!}*-B#h*(=0>T78TxwtH6ym2 zsZQlUB>(I~!A>ro28)cfwCV*bm1UILA7+eQ+&+<|t?c?ogeAz15}j#$(!)6>!-Cxq zccl;llI4MC2t-U#@R^mRLq_S!l%FMt`xAHOKiAx;xV-6vKIRp@-8(QK564{ljk)>CqbG%+z)QrI8ISNBx;n5(0!38-OfQtrLBWOT6UYN za^P;HH<8^q6gl-MP)4w6@(J-%*!YdZ9(v^H_DwW4f@byx;yvvWo!2n{HCN`t- z;>BO}S^Jblu8K0y35J=VZZ8|MR1jR=XbYIi{j^-uKv;B#&!TQst1V;8NfW$}H7YXR z&ri#*=mZ(N67vt_k3FjlnP33%rK9?RYVsq4#G|BGH#MR!NVhDXW;w2p)ykE+CXNl{ zPA~w@9f5qosH^t^O;`2IYX2hqLSr3n`jjW8$kL?Ka_x%l>FaaRxxl8>L=J;leh)0o zq!1Idh1#HG1rmO&Q)uJo(AbObkqRPL(e!l55px$&$X*7*O6rR5LRf#YN5_DiCz^bb z$6XHNhPm)q&YJpCtNS!`DWiS>C)a!eOY(H-Pdx^S*wmH@-}j4Siw~>Z8l+_ zboel~;$Bi|8T%`I`3>H0g?b+Tz0zgl`0LzgwB{k`Cd8NH){IoudsC4LPzu#rV82l% z-uU^8AVrA9{dd~9K`CSLB_$*pLt;fmHz!6(;+;Adz@fYzSQ|)rE>$|5uObf#qHkS@ z2Sp3s1REYJ&*kNTz2QIuR#e33AsLoVu9>O#mfUo-*Bb$aZCG*Yjls2c8|>2LpkhEs zU;Lvjw&;4?8vh2w@Ny|ddHiVQAz=BL{YojH+@yIt|qcSel7wt&3+| zuC@E>zlO6jdjp?hCh=}Zw9sKZUxwrdR9NIgP~7)Sc1-R z=-^3D`2`Gh&TJq2g5>N*ETCL`i*iYHWI1Wr;pFixg6Q$}spJgGaqnzvfqnQ`DoN|w zpRZ^nk3v6;QV(^vA|Iw`Zu^C+SU-zc=WtML`gCQBpZSy6a`N;B))@o3U|>zGV66Hz zxwbFyTYls!He46+xt&>30o1Lw;`yxQniili8!95jk0+c@Qq+cZk{QpssAzOBa7)D( zUf<%uIl9=)Jv#|BeEWNkAWu8xIsG{#_LF8JB)b(;@Gc8vx2On-K?lbsYk&3o^6|EW zZ1pYTBqv*fM5S|}&myh)21`63mR5B0Cg257cgoowUj?i89-$;4#oZbSq-gGvLWXT^%Sgs4UT-II0L8o-Id3RGgJ1N7vCq`y6A@7*f;-s&d&9alJu1 z%8mCJ^!qO>Hrj)0lXfMk0uXz$SGE^FyY)d~?qkTQviE66Aoe3b-;mv8Kx8-ME3yOq zEg!p$ITz6NFap~Vi{7%GU%HW5GxK0HE==eRUqiBheoXg=t(9}PSAMij!sps#3c+5t zouoX$b@hkOnIWvDt7EC+Cl7;VBe#})r1FfvpVuvc9pYcj*=q8xLd~=JkV`btW@)}A zT2`{@8hTKU{Q4w)zEH5>7SlgzBy5plnVVr>b}|3T7SGLDnuRfC_uPP=@R<9a21Pwc&6*ZkvQT+S*y<^- z04VQrzV{_?#k!l4(qs5o=`)%@akCS%RZRUx*Pft@F>^$=8_)0WRB7d>afdn z9Bayv){=pKrbuIy1&=9NiQF=Ui317k^YIk-;s{Kzrp7n&fRrqq!8Bx<5)c=pJ+j^=%Tig!i^a20CN$`FsWtu6b!oC^-N-yb0{^ zU{4QX#u$`cpS&o`=;e@Z9P}lUrA$hE=Zof!4We4h>dG5q?>JaDXD~I&%ywLbC`|py z3$zjmoZ1THMPTW+PdjP@E++cw?|UQoema0Q(0t8(1H~}aCmaQ@PbIO}So~5teb1`< zyt$h@yg~Uips(M_CUMB8KJ6gHzYq5q@LO{2=wNeSu_zaVWSb%HO_K3c^&_@(EFH^J zhrO$~MSn$im>eCXv9P8_kB)Qijr~@8_lTc?(tQt+NR5O-Z?fiWsy(D!t#6M-V?YNw zbQ>`4-eJ88sDJK@Qki?#uB?9y$aFJ=!{hHsmNa@lu2&XnpObxpjK%1M$&_LWiQSTgI*`%)Fz>d93nXvZ;=;Bqifj4&jE+SQYt3iF%6+5BhI+?pxQ4}_vwwBw4&zO@&jxFQ6s?{a>f;>k{BSjs?OYhtBYa)TCq{ZGA*q_#jeC6I9Bo%qO|68M%zT=cE{5d;RJN;q$${wy6wWv6*r6^JUbQf&e z`st{3)59S}R=$f)0fGKEFv<>$9Jho254ADVtJELc62gMnWgpFc$7@O4x0b?TgKA-M zwpXRlOqT?UVqT@*xSw}aRn7B#bRd|r81H)wQ$9ax>u1R$5Shqk-pU6@ZdUjuG@ZU7 zSQ4e?j8BL(rE)r;xOpzaw3R;cfvni6+s=_O+Cq(8NRh~JPdq>RzMI@)P3olU9=s$c z>~{I}**X+~TpPlab8Ia@cA>_-Pr!+6>4R`X-+7A6PS_RV=)3>pl%) zr({sWn6QMItZ$H+M?X^u*E| z2J=_&kcYu&o?lUt*D_guG&z0nNESBk_|q0W)sW~771snjzXz;hWmreNJ&aI9`?Iht zpSb%ZXYoYrP%@&yLADVU77dHzBaS(%Z+`cXU760*+HWfPqjH~i#SThm0##L)?kE9+IWwa1r#cfE0b|$q(yY?GRVCya?pY8bW9sx5U zvor;>WQN*aeDrHrJz6b6J#A>(!Mpz{3U>Rs;l790xX0 z3&Og47L~+hCBn+Ig%(%Rn%P?fB|fbzeUAJ96MG+guWr?{U)@2{QtcmYRcu7q6)SHK zNQcrdkG(%i>felcV&*}0!r27O-=SCJP}m2i86wUeJ6KlJU($vvm2 zDt?9cTb2qIJ0C~{Ktxj^_cw^DG~Ez=@M!raza;$LO@%A8LcQD%5i{~Q$4bl74{}b` z=bo}z2@g`7OdcXlHfL5QtA?;NFpZ2)D6V zmofYTnb5@6f|IIrTo9~6f_3U6#eH$SZjnuAX48v!C0OEUUY^|Z$>?kEdA~)70&|h9 zb2p5v9ff*dYc3+=C`7e|le!j_iQr)qrk`dg7K!MGD5{TiKlap_>Db%rOMzGx${*}T r=9K$2{pMl+^Y4E+@c+mGv4+iELYIYIN)j#)LrYyzR#VDSF!BChk3i7b literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/TempHistory1.png b/tiered_vs._tierless_programming/img/TempHistory1.png new file mode 100644 index 0000000000000000000000000000000000000000..af22025099223d9d0db2e3f94efad85c7d62b700 GIT binary patch literal 21133 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

6z=ok-Oo6pvc+3Q;# zlp=PFtZ!{%bO71q)t?c8-2=HU{D{@6a5y`B(jd^UucE4?`YBCS+2R5#xZ~CNPslKp zZyUZ%SP8=|#35`jnt#7Pa_ZD6dS)TnulBoL-7R@TIcoxMnZl4v`AZ5F)t7~ZjjuHv zt>F6#0H!iM^xQw$Srg)&cP~$u73LD!LjA2L7#F{fF;?^&MzPsBZ;1jSN9BN_vGE&U z1n;U@9em!TNl^`c{i>yrt9~{J#9M&PHdj*Qp222u*fVpXLtu(Z@_JtDEjmLI0{U8LCB1A-$D;a@WM~wDqmI^5h(lN{=`6)!;0F zLg;*A$n!`Nj+1ji#uw0&uggp>p)VJ;AlgDe&;i;DBcz^;Rrr!1Nz)B^1{KQSRg*ii z?en= zy8zTdh~s>LwS57$DBRLu^R|@KkmWh2uQ1~F>H;Bzd%FHEP3sGQtGvm|y)l~W%okIO z5?W$(ndv3;izyO-XcwL%hSl%DGIa-&n`-04rhW=zQr6p=MxkBN)cdV>=xmMnT54YH^R z5@)V*+{=>kd_zAfSU)A(5o($eh^;@$L-uUnX!`nHY<{~tq&q;(TnIc+FFA#Itp_SV z;9BCw!5GCEISjrE#=i`a;&np+|L@P8a^z)xnry%u&InfdFs9>{x8N$)yO- zYSCZvI+(Md;N)9|rild7&6|&{@70);75vcP1s%-rxqErq#P@0Lj&7)!^C5PHOP_V+ z5zSoH5atYdl`j5$%6X>^yUsnrTf1j)R&pzXH%=xxxHsL|qHT_Z-!SvJv{8KJw=x}f z3maG@=~f!hqP!suEC^)_k@twc1}KAEWQ&^ZSep8OB=sXGDQo`whmG zyKBFa!{E1QcY=5NCo{^UxIsz_-}sRG9hAiR0zfjWuR_PJ39ABd?Oxl*L} zPc^uPjPep35k2X{>Z6X0`VTz7m=@qIkma%?#4IGSP|Fd{l;dZkRCBR3iGdvY#$$^{CP3o(s1v+kgqSFExsa(P1fO(ysv8S()(hra`3yx=S2;=@s+*2x*z@V zt8qL;dy&$*I@*c92a*F0I}jc&1!xxIAa`!lTi7>b1lab`_jVnbXqc*QukC7`Q)Pv7 z3e~$rn~v_~@RULAkAn?@@=|E4A=-l#>nt^|g1krTzd9?CEJJCV$~;ZiUHiVb_GJ@< g(g9=89)N-pIj^XY4ec-THbXbz?8kawxK2d+zjZDCJpcdz literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/TempHistory2.png b/tiered_vs._tierless_programming/img/TempHistory2.png new file mode 100644 index 0000000000000000000000000000000000000000..fc4317e847cfe138c51555c8a6ce95c09a088fd9 GIT binary patch literal 21335 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 \ No newline at end of file diff --git a/tiered_vs._tierless_programming/img/cwss_web.png b/tiered_vs._tierless_programming/img/cwss_web.png new file mode 100644 index 0000000000000000000000000000000000000000..637522c17b6580b66e2027e3e6c821f4cc2e6a0a GIT binary patch literal 13552 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 literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/cwts.png b/tiered_vs._tierless_programming/img/cwts.png new file mode 100644 index 0000000000000000000000000000000000000000..069915b1d1dc99dc5e04b76ca222d18ac24e09f1 GIT binary patch literal 10157 zcmeHrcUaTOw|4~T2%-o`(HH~;4UmMAM2d8RG%1RLLK+Z(Bql*Z6G4Pf1XQGhRB4JJ zy(%Cg(pQQ!Q3O%x9aQ87ba&nN?)$s%KF@pq+vLe4bLMkC=ggUNW-{MkGZXz?+@jn7 z0ALr&K*yZ<9nJh`azNe7mS*^1HKwjI8zO*XV!^c;;F~Bn8L{5RvkC^=KAWc&CxuA z$yDY2J}U>-bBo%m>5$P$XSE2K-ii73_>GOSrRA@wwRX>1ZEj2~d~vJRh*W=LdXJ|% zS?JM#Fwf16@7J$x1f3h1j35cUe3UhMVxe#4qEoG~?D}%h(nb3kxnnDcv6fSvi=J0~ zzgw|i_1Ea0UoL&}^+I;CQo993UFz-&tlWBu->8O6RAXozRxXJZ!RRYdJYcc@nu~4y zbkeAB757Nm!un@1%P;GYqnS^_IjiU0AYUgI`A1Br6IMrf0<)gkC00zW=6zfK>hs-d zL_Ty%V|9RYHMy_n;eZUm*RH!sO8pVsOvb}Qy?0&cs_3Kf^-waifCOop*gq+pS(c3*(qn@aQjK#SJ*A>ps(u$(a@$RJdKeeH&_|8bFO(b=E zx+0qRdXN5xXPD-k-QV7sdT-KFy^Q*;um3gawK0#_{0f0i+9zrDvz z{B4o7)0lY?i{>S;SXFCDC-}Dh3UzTms-v)Cyl>E{_mxf!XJ_l1xi4wkb$fEaXdbskJNJxDwwoR31^tHo1Xj38;Y*K0M zG5@J?hclr!%_`x_J_)3o>&K!=Vil=ha;hQ*e=N|%TBQ*Esu#r}o8&q0NxvPw_<*N} zSg~9>_-N?z#D#m=nREWjRkL>bV4sxegBjmWuIt>42=P9C%hn_w%Z{m#-Yu*T&~j`# z9&YK($Crc^a=d@+yhBV|UEvtR&t6TYEJ3~SD^JBEGEd2OA>uk~#oNvet}%b@)xBf2 zP179NaaC>MQmULDVxFh5sT**o@j4CFPkr|qHoy2iv2!wYwteK+0=Od^I@(I~No-Ni z?DerStCh-%u_-@1*?qZr`jvyhnJbH@#v|hA8A)GjZ8Wi2&i1dtllj!~^!MTyrjMsa zTCTjzUeA?&DWvSyeV{|o;8|^ac!Ky4p2an0swKh2Ox(fn+&sDS6aJ|y;x{4NTVj>! zs)z|%c`@&W2X8-C%asi0mg%)exns**2X=VJA}wIiBSnhC&Y62(8qKH75XV``hXie9 zS^MMXpjscwOEO?iDK@TI`J#1JMV3`L;>!HD{Nv5@O5&B@?|ii~7U7nJ@u{!66LXqi z;at!ac6&LyXf}BD#$_WfFqZnkh|w*JMs3t`AL? zqK=rC4&#USg1(d%a49QVeyrkt{_Q>{Z+XB_)#3ix6E@x6r8CNBr}7xXCLLz7lW9A? zXS|{$O&tS849wm0HMGwM6%do#!ZZ4q(D$HwEbl%C- zEsXuKNuNp8U`1Y^(TDE#UcTqZsGhwaUY{>X<3D!o!E*XC`vn^4-KVD^CMy+Lb1_}Q z%@38oH_qP6!PyPS_q&A640Ou!;GJ}KWy_3P#k;>Y{8(V-ilGAu1GLOx#zuVz%GDM+!k3{oE zw5<bCx8Ogk0(FIB*=TbR%(>BOscNbh>{uZyg4f0OWQ;PR1xRh(t#8W`` zjNE~i{HO=TjxzAn=yqaq4)-C#6e0Klthg&7Mt2_29TR=C^rOAtW39&9t2$!R1rYYg zd;Fs=kr-4B=O;}yU_uUZ-APz5nP^^q_&Z-~jDqBXpPD`=6z<%A_Qjk(IJG~lpq>8F zuUMw%LGPf%nE{C2DEhcp8uox}jy?axirZb8o4bzoG)x321Xv`e%^-nyGRhi>HDCIC zh;oJuYAi^St9Kk+5OAGPwuWt)A@xHbY} z-KbpfJW?Rz+{QiAR~;GRZrWXb*wWs0KoL=LRxUPrl+K!PQrf>&Z^lN%;4v~Oy(yAS zcnnRmxR>?PsvECO<+HFYE4MOuh8-sL59RtXYLB%=Sxek~W_~#;;D!gQy9);R`Nh&e zUe}{2t`qQ(UBIr;dMf2LnZ>a^Fy!PFY!mU(GhM+$dj@06_>B4UI-41SHMEW`o12!mdxE6H)qAYOtit(_V`F_MI(;{T^PpdD z@YRN8g7mY~Vk_Kp_ML6bFK>hwwxcJO#N*yaOMJ*2ZU!}6-c1-BE)-sEcVC~$a(=*m!w~&)<&O7q!}JjQfo|q$i?I8@z6{Qq;mQ0Cq}mUendg0(UHeb z7#_Xo!8>3+53w;+iY;EH&vXEp9{!?nsKEX#W@DFjmxPjsbrf|ba}Odms(P9yL{sHe z+*5t)DV>x4dvvEzJ2(wtQnwoZ}W0fxd!vKF-e>e3vg(t{L@lcp1`b7 ze`)loGk&z(6S1R<0bssC#7#qb1tYA_jeKd5niAH{UCG6DC*VYmFodQfn7ZoeUAapc z*?Yr^EPhj)h_bwL9;DNc*x47~6s0p+)&|slF5bSFAF%9C zxQ>Krx>PVR3j}S9V%KjvIZN7Ac6#?t&wTI$JyizVK3i*z_6c`PbpvxZvC5GQ{vcW# zv3GIL#$_AH;y^WWp~?4^oJjtOn~|J%5Ebyf^D3UAY8AHy*a(ZkZx5Ri=VEw+$wtsq z+zC!^)Tk=F!RW&GQcj>|B=w7q_0f#8SMRhqRh$bM>x<%h2pom1GCnA4N$&wo7`3bM zgLXJc&!V1Z=oIS_E~mg`wR8oo#vwL?yLGdvn6C{IS*o4+S!RzwdUAfJm; zyuB~mA@8I0DfqG8wgNwydfBz4S;nYl$WzWkd)o{db-ERlCH4MYr87FI9}hf1Uwe6k z5dhUU(|LR}uj8PEa@CEl@MB_xS$ekLJEy3!d~0BPo$^i|KHJCD5d-ZPKAaoCI!l+I zsVCxngCgO192apoto`}zk(G}(Wej)*{oD@0kN1LHo+U6G=zugp|v))u- zVf~(zu2uvfBzedwgsaP6U0v@u{;XhM>8(P6x-YvsNrYv?OTihBJ~})Wp^IEi7)b`5 zgIL~9xm7fPggHooqX-&N#>Z|=)i+c}#ytr472lGj9G<{?#{+ZNmb=k_S z-KKzDc36$YooO6xS`q#QJb*id6L&x5sK|!L7uUqaav^aX$SP>1LS;WX&G~Bj#Z;ES z26EV#iK?h9By+z{UWPzGyx%R49U2B#QAxo)B2(V(V2(%_fC+Y2ua>JDBSe4kDC-8nYHhG|3={)KQTK=M>MX#sCvgL=5WQ4!}p-O z#V*|_jK&(od~p)Z%Bo+hT&-xPWn6LzU{n|c5n}i(?q_M619D2sZll06&EJe7^0;qs zdGEyr^BOBi=Lx7Yq~c_B?j=ZPOI-O_hCcJg9n!rvOgl~IFu!^Hj$RpO_gYi;Xj959 z5$cLqo@T{(bcjiFN?IW`3+(dsRsExbgEi$9>dD=7I7jdzYH9EUUcvbw%^xp9b z{fhk=^+7`2_uf2RE1B5sOZD4q&=RSF@C0tM+<+9k<#d}$0|0ge5VW<;P}{#(#SUNO&+w{s~z&P4i|3(<!?1%4Na?6@Q#Jr)rrq%7ll~8LG#C9t)lbn^GgnGZ>vqk9i+}l zsUHcC>jutC_U(%qfeT9r(H&m5W=sS(Ji`=*-j#EZvXD#$h3CebtZVh+?=A{CJ~Vfn zR$u4Q_VB^SOU<6J@0<|rX2M4cA?wr$LJ?q(I=gI=Rm!X0@zr-o>nq4mc zMEqk8+ZlkiX`su?@Ug5t+-z?*!fItWc;B%2IL{0XOu&5rP{q9NU1Tz6n2?Ou@cZGq znTidsEVU;GYsM*!aESFh0KgwgU_K+THa0?HNv?8e90`M$qq~xs&kz6rRSh~BjdjM; zfEc_Zfv5(Wt$G3i5^!puvr5Ja#$;{06T!ffg17KAvBY{hV-YxzhB~(@9mync#naG0 zx~mJ3ilnQ7wt11v-&ONfbO#QBF}#0jx_WT!Dhrxq+$_oCDHa zNAD*Ev!@1fqS44md3kqtcR6>M9Esv64?!Rh@(NISC=|>@fT+K1_f-R6zj_ zR)B(`2>D<2nWM(We`ph_KcmQur#u}^mWRkG$h*4!MT1Jyz4E8Mztx~xG9T5*o8ze@ zHwqT7dj(IVN&ae-?BYiK)utO2za`rC+Xd$!&va_r@~=AjC}Xofbhg6iNN^=@Yiyx^ zMdGl3;K*(imu(CVE01@0p6S4R$Dkixcfytu?SA;9!naSgzqM!g)R8hf#;ZS7=SQ!h0KrjfH3LNI} z3xz3#z^nwc%dcK-QQ??WXe`13f>u!mD?t??OmEO=FdB!4fmL7%cn2I7j#0oUZ&Pip z15(orr3Qk^Df}rhb3xM_NEBB!kP(6CM*nlblHiKBprN;d22qA05Xve_5JkAM3LNnZ z-x)lG%1rVtPKbgW6uPaB!y@&VjA&-E5nR!ZczH6>aeH8ES&+=hFawL;stqRdwwyT^ zq&5YQrjaO?B$A67XvTU(B?G4j^{ zsBUdZNYqy5S-6qOE(AQ~uYvhJQT{KuU-W+_<^QDqE9{51Hi_)PELta;sXOsMn*ST% z4+bLw7Eh#-{*&v!LVkqhmve{d^A8#GJYyb@@_(Fc`PzuEO~xc*TD{t@`!?E3!}F77{X*mxrIkDfd8{tN|8hcoZq?3h#f zI)KfscS=px9j1hfY;cYW0PyVH`s@J2CyFqI95j@%F2^{hC?}ZDi1W)=rozpZuDc-Z|W(@4`bor6Ni)Wf^ZSGv$syy zN$E@J*GOJt8J|eZ_i~h&Nt`{Gci;HU)W-NB@2cq!;fD`#`YQO|+QSKo24c9F4a3@> zA;oNd^e|jMdJL&w0QL9Gj=Ni4$2O+sB8{p7lB>R=0to5XENz4G6Uee^Q&$DSUPt?- zX;%6}6f?1h{CoODdR#ubE1$0`Idq|AHpMAH!FaEOY*5qu7sK|<$%hcn);g$h?0vSX z?mB4YZULkD(Px(()i55Gi92M&gUjL{d^l>JTD~!MvxCWn-TtZuXgF zhLf%4xAyv$g$7lcL@u#j?qXb1#I=dJc%x&e-XrR$dv`o<8{S9VJ3R6-Y(Kxa=ivr6 zJD4cUIAY9yIpBHgr2iq*>_a2%=AwhQGn$CXbw)KWd4F^HQr)Vuu(;9I{O&<}KxvCc z+|$O%8yl)6xTMhG@&(bo9igun zfS}57Tsz|c8pc&UkYFgGz32*asJn&McZ=EpaVL|5B+qx>G3u>)aAak1S^5H>@Yl0F zpAo3>t8^G9$@f^;;L&~NX6_Nw^PGN3+S~#|QAlR z-^Kz`8VnnsykGYKkLbz4^dC)tSaut6#C}G=dn*!K`ijIkMBEkl06KE)tit{NKAtI; z4&jrztmWRt=WM8=>!DBVKd}RjcYCUJujoF-;zJCx{L_!V(vvAuJ4)$t-jyQ6onTbN z=$+%5m86Ir-6dX}Y<`el>80+ zau2-G-gjyDp)Z}+1$kJem!|AeH7>1*exi$bD<8bJ;UA8DKkM6* zDq{!uy6=_wx33)$EIV_98xG}G`X6Ngo}tGnUL1CYBEra6o2P3=-Ng>0q|I;q#WacQ zw~CrAjo}qO2YY0d>`S5xtc0(>G7*u_v73+ZJ!TN?C9-cxqbav@df&UKUb-m1Sr{pK zXXTfDb*Z|V0S0GBcqG6!FAx!(HWtO=8wsY_7d3YVZZ(!5rPahT6{W?zf1K1BAdnfhgWW#Cs!?Eoa`}t$#t*}@u!AiH6-c{} z)>Fwo5jZ$jEeA5VqLP8rv$%teX-y7#*e@PM<>%ZMIWS*rd4p`%CWNJ`KB$SSn}v?|U$}8tJHOK7 z(!h%D-uyM?#I6%4YjLI7qFhbz;+NV=33U<61)spO<7ZyC?|B;ZXgK8f*qBlW&L~|7 z7MsJTqHA3P^`P+4M@DL2c8nznPid*6NY;2|bf*HZs9yYPTmQP&#j1;N?4o*2n?mf1 zGp5Ne#g5FHI!DsqaF%{9N>t7!h+>;n6HfGZJmBsK*8TDoL4;j&H(iJ2)l)GL+k%bA z`>6!W;@9II-+(i?&>EocZvr~UHJ|O-DR63c;a0QVV>Ul}g*%yJTO#D!)tQ#6c^^`J z#BS%C7u)MXFTH>7>!N?1J0x9@{giP22|aLjYNvJb;hjl)m?9+cnvJGmIMX%^)Z5u;>^(A9+GkbUQ*mOM=h+yJ>ZwCd_9wNW9PLzs>4 zJ|1PYv&L&93oTh4Yu&ZggTt%RL$7n^s9zU|^pOOz4dy1troWXe(d)Q`i3~>=$B_hZ zOgf+5ASt)kyWfK(40}?h3J_V4dQbG-fa{HvGx&U3Ty WzEd&JeH8O_2B36Jbn>LQOektvP|}UH`E~tp<~}GTe2k?`%*$NO!j3k zw#IH~jA6#|+@DeBoaguZ{$9`X|MT=mFPZt=*LA(`Yrn2f&+lkmXJ+JLq@$x_zIo%S z4jmmMf{t!)z`+CHH@DtiW1ypZOn39@mHXa93nM0PbEbX7*F47PgIIhg9 z>}aI*%}3Vlo=PygtDX^DsJjsZgB1h1FGH(@BagjYVYkms;Rxh?b|>y_(cTV8+kAaT zp7HYsupfFpdS@|Wo7SE!!VjGr2uWUfvM=AQwoA#kuaFv0HyTB%!w{*To=U>(YWXpS z^Ctb&z@q6o@)}_5|Nr^_2>d^UK;P2XSYhsxKbe<`=m@mmS=|s9&W_b_dv_0Ugn-4V ztS4~o^==m}AKu^&AN@Wbq@y7uh2z`s6?Z1KPmkunRK?!K>S%mZf57NiH@V11 zMIF@B5IQ?gFYWqSX>SX*gD+rmEvV71oZnaxJf7XtlzERKbjO{V7K6FZ&mC*nuERvp+WjI*VqCJCI7hnXkS$4!mu*#TdOeFr!G;^N=d7OrjcJ~|w_X4kv2H%sJw3;s$9 z#5I3^{`-8&=N1JVvLz2(%FlB>Y*)a;_r013ZR;aG{Uc-^5;5I=#RN4c2zHzn4GW#~;+ca?ews+};mr}crD`usKj+zy`YJ1u+S zM1qqAaTeb^#f8Badfxjk1@5RsF0Jc%jXY9Tp|oTuQYbiOkJT?`Dn9N@W;-eUTwOtp zfn7fDH3h7U<(9sD1RQ2J_h^dOy02F63{o9eTRK^OXXv;rHQf_n|`uKB3*bwzf-HS24=eg%Uow z?WHmYG4aiEE{VTM$N5O>-HhV>b8`XGu*P|MGIITznb%I}&ddxJw-H&uQZ=P_aF?#TlR3PF}? z)UMkF860I$7qAx3gO1R>WQF`bIYou^wu_}>x_`!&A(*b@eJK3RI!w}-!Jm^@Ggk5_Kp+xwv7y@+J*7P?7&ZugD4>dT^ z#|KWaLpV>pdG9NOb6G3z5}v&azX=?DwzNv3(7Xjo5U0({Q`e)oA@&&36>0v4gNPQpFvm}o%qjKj;~=-cl6!jRtY;}p#i&Ra6@O@ED_d`-*D7D z10J^Z`_H;?5$%9rsqaK97Ve5LO%p-R1HW9idYd=@)UK5~I6=x7Bkrj!n5W4 zJf@mRoL>E!On@m33w}tBq!>bZTIF)>YWwCaW;0LsC3rTE_aH#k{#4e-xJ++v$p2aB0z+u>#8mVeM$J91>ycW!Jsdv$b-Xy!YBc?T(G zP*BnbWluNVta&FL5S;>l#^jq`rh&r*xG6Z5W$*aod=|~`7loGneOj!KQNdrMUlr>q zW%VniwCs;!4im(s0PjeF1={W^Oz1xfbI9%=qp897q!H>eD>W!E9I}JP$JzOy_TsSB zuNi@Z;h_*;lm8e@@IPdaudQjN$<>IH{K>=ACz&*Dg+o?hz;FLZH>+Q}?)uh9H*R&} zH4x$UNnrY?XuQY1hyQKzm%Jc*U4PB6YjNKw=592;ch&T^;D3I|h=IXL$-{YF$CqV! zLtJTLnwFE2K3RWBd5Qn#wI>TOAyxQ~llW}-MD$n6)5;?X0&&GMCXYY`UTrHCQtl7R z1L$vL{JR@a-n#3m&T#kps)ch zCj2W_+#3D#$%qyfjL(|jA*%&6Pt(leZ@zu@0ls&`=O2BH_CMbI#x8cmwJoi_1WNMn z;m9Dfr*cA`-V*tKL-(cf&#{&?e<=J|LqWpE(Ehisq8kmL6w-V=NN>-@`$)rY?o{X2 z&mw+b8(iHs-9JkAWz8eVFXrdx)~&2|&U)=E!5RMMWaxg=7&g#lhu(;v#uFs>U*VUS zK|c3i5VTms7_Vzl@NTqVVd!w0OOV_}7<4!SY$!NzMSQz^Crd6-XxEP3&HL%4t5iAH zijO`8dMQGKDb_gF#yBFqj{V=7X^FJga%4X3Of9?M0~O(8)hyJ2??$9ayuN zFL(&t(Jmezu#UB)u|+CFXn$AJjLOD0U6p+3lLGC&7V8CqSxsK0e>MA2h{?(@^Xcx4 zjc$wEGk&8~CojCPfWQ>mud#HRUjtWewl#!XPlAJIdo+aMr|l1vu?G-p6-s^o0?GvG zI*7Ll0arRcHRX1Zr)aJt|F=BfSeMz0D&&nJL5d!FeB!WdE1%sM$lacr@x$zx$!u?u z>XEjB$#(^&6t~v$4%ZKEZnNE|A(tdFotdz{nZT!fqG!~DtaRNhaBem;RCyz*DTA=H z%)fXw@B%O(=(`$Xt&t#|$Bc|_j($w5{7qb<-ip}@a%9&Dl@+983O_`HBqzkL zd1^o!AGwluSY3T20Ehx{7G+Z*tNS3|GIzU`(mv} ztkb>tMl(iJHZyR3b?aO62ztApZ-HQt#&rlH(R2PsSmnF-VsaF{)_)g8EV z`)|)G%x)!0Q@&Y0={h}-P~uYlfnrfFG}r0F5X&9O+!eJf0Bqi5oYttvbMv3q)`@9^ zg93wwxl6KMiKCXib@f{dP+WZned*Harn?WJ(JjkV3{NqGC7ye9z^tAEISsQLR zbWy;I{Ro&|ZBn_R7fMeze@t((nSfQQZujH-!w%A^wqnnR~zxA0Y z&VVxL{dARYjblmA(*EqIL*4rx$8Nf+c8KnSvH^ceozBeXIQ$<=bPaRaqAPq`Kg|G} z&*Oq@v3K^+6{r^Ia45A@25vcd7O9*VXjR`s2P~q8n5OLIHzahBE}Ha>GVs>ONy)pK zb(!wHX?vkx`Zm>xQDAWN)z6MbDi%fFL#H42vAy&9&Uy?K%jr(C$Ay1r9!ED~n))S1 zgXm~%aM#IiZmO-clS;I=p6fBv>BoSAn1CY^JU?)cD)bLJOXLS-E&RSsNHmQ-basCTQYXlZ2$h|)pum|g*EU&iUu~WQ zs!a+yOjmF__4sXMODRTK1SErubRgWFw=KFy9HF!S4Aj%3(`!B|wv*ZFF;`S$&S`lCm-)$ks3AtG}c*D`Lj}Gd237nxj8T`fh9NlBuM<>~vz|Rn}CxiFV34mg!F$sJG zMK|aQT<=2v1Q8+h=pS^!AizST_ZmTlOcxDu6N%Ja15mv|cT|;80Q%?2zm)-S0I?4- zbWq@FG{n$8)LtXN5Tw0afT90JHQe|(jVd7Xe@FH5!RJ73I*1|o0z!p4*x8$}7u73L zTr<%Sv6^qT)w;6pe-q;`hiC?mU;O9^XdMigH^RyLE|j!5#>V^!m}diqe%1@4ME-*5 zEBWhQBs-y&M;kH}snkmOmxxv=AQJ=kVFAr?txXgD&I)`6x0F}5h0Z&#nn~X9_dmO` zHLq(cZ%j?R`}z9eom0wW6N0ZEDZsI6HYZcte}XmBk^k~RP*Bx1CUqjNvK&*=G}30R zy|x;)_cq@x&Ynj=$S+|6}_Yt{dOu0@|GbY3lrsLC&Ng=XaJ9XoROje%Enp13QsUebkf}=S) z7JfE~2e{l9XU$-sJ7~Wj1%8u}&DCMNwUwRff$j(D@z^-l=Ln*&Bft3-J`vXs?hbNN zM^(i}E^u{RFjBV|UXyyJo7Y_Te83Oc)S;{wNq;ifGQBa$f&q4~srLs>hr-9v0S52J z(Y-h`Tq+hi^mtuF$`>dlGe&kuTYs%pm(HLZ)A!n#$}rQK zr0Se>Nm75isq2jc9Q@dY?(V1Kv$F1mf8l`GO8AD{MzXJwF$rHeo#s=jQUiYMs zDr+}4atI^d1uoTjdi-6Xd%sf5{{&XW)B}IUpruVAf3obrCVH6R(DQhUj2AOZ-inF!eX~`_PFza$c zG=lLnMNFLk_WfB@=n!{hubbQH1cdn8+&b@y<&nU`Uo{W#<434yuOsd)t1Ix?@e|EAU7I~bRm9Y`9=TmcK0bTu&Cq22Vxoa>QJdJ@zLWDo zyqp~cQYt3xw`@3nDvRvv<;t{f&^0=x$p6s3`hyZz@+0ZV?Pf^{3qbXWG1iSACd)|k zP7byL2BRYC&yIi6cMxgpT3qt5KV&f9`IF6Y2v|>l*NORK$xU1FOQ062abLO1HxRd^ zqLO4hr1joC!@=lCbA9&W5Ef3^2W2a8F?lUfC#+q8|7e+&x8e9X%EZvkfjYtM&~)Qs zQugiaD_^^ws$`Frx!?7+krfEk{w}?Fr_C#&@?e2vs)2&?3Tc7D_ch9Ak$Q&EX@?WZ zo;0CU;B9ZZDB7|kQM7Kq#B`~s#z&f(_-ONbG)CDDSP1J>_ z*4eDd+2K(?@3?-oy+%t|J|vB!H-jGuC1@g@l@s;3z88>ck-mMXx{H*a&8dLAmJ#j} z;@#Dn?3n6Ka!$Jkpv-Z)P zp3}XQjINcAdU)BWVtwtpTgG_7JFgMVC9jn9%KIjQO({yZyE0PA?XELs#f4D3;S|&1XZ{(1m_Tbs;aj4dl%av zl2U=XT!#5>HDh?_?MFrg_RgcxdOZ7H(nu>WEklr&Nlls#Dtl6`qhe5Xel|ap&vue)*0kI$Piel_1A2R!J76iY7%O(iCT~&Wm)pLD14kI zwc=dw;k9ofUPur@h!#eKu5v;V>16g~no6!t;C-XVd8<4>u_A?@a(JIUPiNbd=QD0E z+lBeK9~ZEkQ%p6mi%x!_C#inyy9cw~5l-I=BZz*YsqWFTup9*zWlg=A!yUBzx=$)K z>8kc0pWyxQX_F`S@?^NXTBNjx)&@1+YQIfjxe~8@j=!eBp;6yYY{R9ETJFK{mZk%( z>hrd>CO2_x&hg(26Be1fJwt4yGVW(@%d3oIQN98G0X2fpV)~FFLYkON_f2>&8O4kU z={iJ^G#-=!mh(wj(#h#a@EYgQM{|_*A&UhnU$#Ru>u!!OM~H)IBCm})W$B)&zJ#yc zgRS#QW99$QWo5H`slHZM2_vBP)}hvP+c-q*KB$m_4lyJ8;7to|{AFSJiW==#3s-n` z+6A7x);rHqg0?7d_yId};Q*8dOQu#HIi}OJ|8(c|I4x%svlPf|3LmPk6zNK63OwKo z?k##V%Kd)7zh1PgwZ|!1g8bu6BeR^3;T)D??Tv)BNC@_yCM*o4CcQpAUY?*!JTM67|t>9!nXu#*H|Iq#H+3x&A8m zB&Bvz`%p5t`AVwxqR)kD;hyM8xcq4LG+WE7kL#C-5^-Wovm#&UvnJgaMjhcIsE3eh)B~) z6m>sTk)d_-Oq52MWI;}XQ+Cv4ADj{_PPt;6k)Ld5w9GVnQ;&^_mRXCin~1TGfQ-5d z-f_X|sZGr~w_%hyvW;~vj{(F**+ua7*@Nv}_QvE^sU>0yW;{gTfA#s*Yjm7-;SNe_^DSP@;y2xVkg@3oY!)2SWGlM@@wWY!9C&iu%KQXFLrMLH8LiljY$TUR-1VllyvE+GSHu*;2`iTuN*2 z#Jp`422EQtsv~_I&VDyMf+dZT;Z!MP3Fsj7{;dC5M& zk80i{)vlW>>rR`M(uoH0pG>Q`D*GP&pby>%Q!hJkmhWCE=Y{>oKIW+W#-wbKniRd0 zQuU_Ciqz?hsOtho-|3+?&aFUDsGO1@adwJiD;Evg#VRWkCT*2&@p;C<88O;LVhX7S zerTlLXQ8x{FQ((2=*_A!{J;193lxj5tx26RIT4b4*Jsx>kTybsg+D^FO}%eLDOirV z%(%=O9?C;0`7I{)Uz+uf>hU)%SkdI&SxWH_D1R3GuXiBMjd5qrmE?z#B zvtBSo?eU62Nxt@5lE^(CpseiKx@z}wQphsMj`oC0y*ezhW*qek&er|#sWwH-(6G7? z1EEya_hRZHsP}ct9CTE^Fy%dhYwD5Xxe9w8OQww0ebU9oX}F|h=g2uK1lm^vAA0yo zD4eIIL@#p}2{+l&{C+N-?6@;_$Om&&jV*JV{b^RAFl@*j?C0_v!#mtjGQM3p@8OJ2 zz|laxB@l8Jm2ESOxSKV%?6Dd5;-uHooZ?M0I-EZOIR~EjA<+H$AJZmv)qiKhStlOg|hn|i?Ee|82&QA1C z4E~N?p4T_=F&m@D=a+InR^MGz{R=Qgw7B1vJsB{u9SSg5l&X)i-7!rm{|$nrEKK!H zQT`KKT_a|gl%WOJXxC*c-&6}Mc~Di818$uzS9YSYMktwL()7k;__Q3p#&6Llva(iItju@-bj(1zR^laS!_W_u z3ki!#nRcUUJ#Btu6=4@jd95Us%FbE$1IeECPs>U+))<~VNGoZ49!t8jwI6JvFrB!T zIM~aMO8aWu1YDzE(%U-0^OKW9@b5N!30+O9WhXm#6?+jisDfNtn~}+!*kMLEwg64L ziCZu43GE9JPbpWitSGMBPafbamzI?OSk4bi9YiGuV7JJ%(S?gjmx&wYyaY)_17CuU zUj&jkA-h!8bYeH@4Cttu_wp^gp7_}rAI&6563>nkBPthQ`ZFD}yTFZVZcV()n2si{ zn<$uqjw;krJ13o*l>GEy{~Mq1b7w@0M~1@`w~^?$vK60M>3i!Zb~55s2;F1S^oZ?u1*|A#)j}UdM1})W72^kL^6tu0y2GW4jah5E&Nf zqo;omth(Y8)JD0ba8B7+8%G(HH9y;=VV=ukRlc1#Nou7{6=3-AA z=Ca{;!&&j7f?p>0QMW&hx0#f)^0NxIVzugW{heLbu7o+X?U@xt)Jg%v%Dwh zTGLKBDNk*#2h3d`I=@;Q{sE1RMzW11#V*^d$vdzUztnq>v^!%+RVUxNq_l@SRQWck z^Glb2)~vay0Y5Y`5Xc(8MQizEIhhg7tyL^rpoE?hNn}ZhNKk*l@r1s!I zv(`=a)#@&dG>}HDTB}jAOxXvAeY|%Pl`n|Jb5^V7f|H|3oE^~k;r9^2Q{VvIoW3uY@Lb=4DX>BIsjS8Cj zP90MgxRS%o-e9~_(bSs!)U>20l#@0b*%ejwMq|?Ms6ynhJ=M`@6tO?64tob56qeol zGC3%wZ2ary8D!m%b^klf_87{>*z9-Ejcai%A^D*et$7a9<}JC3sY&F3?85;XwN|9b z57_YZqP3ECQ;GT;=R>4HETCO6LmL(bNKv1jzBJC6`F~1U&TLbhbt%PlK6U z7=OQPiJ5#}ecw3RzD#geA`oVkOjl*XMO%u=mrWX@+m-X|eh?*$VscF-#AXbPdEEar zN&ziE(EX+X`S>VUyaUuOo7>5jdgx{fG{&eAKYc34=^rayl#>e8)TB?fhz{ODVocFi%4X_rDBx^!$N-&=})X@TX~21;Uo8hx>|SN+L+WjE z)~V?j_8?OulX3K50Vua>wIPT$DSwVvbnRT^?XWM380_Qk^OXg_H4K+3gCI#~r21>x zvs4_>Ubb~ zu>znID$Hza3I>c#%T>lbAaBoXYP#T%Z!3n9#JT+IrY^3;sO`?$&ca%0>$jzjURYXk+)Ghs)=YwH8h2b+?*wx#thg zJdRl-nr;4^X+12?$K4lkg|zNh`F0%LVf-D9o^%|4*{or$Nc zn@Ro&sQX;lmLfRsq=@RCb`)np)RoNXI6OAbZcGA8RnJ@gDo*5N6S?|LJ$EPh54N4a z#i3%}e?o%YNV8(&yGB zHIW0?>;y^df;(nrCZ!JV-Df}r6Smkx^Z%}$vth3@S4nH6edoj3VB$*4V=vewWy;>Y zH+ByP^Mh0IV8s8fP#BWuw})9cvpWRchXO52Vqs;ujjWr?o4WVR)_>5yL~6|ygY<1t zwoN@(0RHt>{--8sJe_^NU5>H40^oT6N`-kg#@rgWjRyQ)Bp0v%rE7@ab;y^^6|805 zbg_DCyd4p2Vwr*$bnTyTHojTm_$m6i+EGT?Nw+bn#L8z;q8ZtY!iP`xT#^-LPaC!S zc24gJ{eV?_Z-~sxov-TJ0kSYTi47)?WE(6>?Cw)i@Jl}p$ z)t{{~Dc_hgPwvj3G+GV}49F!h;T`x|6!{|EB<1~jF;D>DCOcbK;xJ&>WxDPsX1;0$ z8t{T(5*$tE{O~v6kz5@$MV0%1%#42v3M#(x?pec3_3M*1v=Q~*@IvUlgE(on>EXU8(CkG{!kNPgJS;4QE**hpZlh75I zk7>Tf1+bh@ka~g^Mq?7>8G@rfh6IE!cR8QCbBxf$^g&2!i)QR9J5A!XGwq7+O{__; zWnZT$%N!65P33V)PZb{_8-~DAM5H_lx-4bgyqe|>YwCO)7zUJV5|zb{$A)X!$-)R* z%}3PnpimB!dDOesJV&@|ap3B|pm=N$5`8SE=}?!hZt-P8q+94piO+lX!16%KvRk;Q zt8Z%75;gIZbA+kQ*Laoe_a7^D?gR{Lyq=1-;Eocv)g1?pdLY$5Q9vsKxptUEd^DvA zV_smncVP)b2HP2mRh#RqPKL~S+m{Fpo_XWw`P!wDm`Q}V@oYCeKBJst!QLRr&8ji! z#e=RQz7c11|Yj=O#KD-JG` zQ&$(aI54IaAMD3$Wm%<9Yb_|eW+A?0v1r-hZjeru%W<+ha$Z{7UEH^|K>I~~n@Sxj z`^URbSW5ndxR5K%h$WQwR;yVzzQQ-F-_yK5Tfh(K0#`@G_&1B7*tRhHHB#ZX6i!Ry zt7dgOZsjuKU7V$J)xcR6C}on}|G zH0aMW&(mS7J_hE)ed1bESVmTSUS+Fs!TmGu!T5G=%6szEE1f9g`6w)9K$is}tvA0w zR0OQWf9y)Om@eZ@Y@SaTN85nG^W?R5u&7s)(o0D6^JZfL@hejoC z+uK~0fEQgTWc(<5)1*RJVcVE-r%Dy=p0eT;?$CZ%FSI-)tbeBvrSlyG6_mNVM1!He zf%`(-N(k)1Ru`k@ikW#p!0KeaOn_O-&S86IL?lgs;FzXsJ>`7@Mm8sOb947wgzR<`*YGP(>d~2 z9d43zxOlN)36^Rj3t{<7)Wxwj7O zS$O@k!0CbzY87L+!HGi{z=LOb10+wScr+D*3n7t!7m!A^?49C2*<2RGI= zLwR!;jE+Wq=RaYi95_vV>{rOM787pLa;bwnOfSMzxI2RTzX)Hm5$U+^HL_Kwu78y9 zG)I4BctTD(!;ObN-{jMY1M#qSOK6YH>pIui^9-XJ6n(d^gUo-CDh*8h16ivVTBGJU zIwGQM9N9dLExkt+}0clpU-SybSlPbuFON znj^K+a^2l!DxnK|f%V?f>)_ET;j+Shw;;;3m`}e0ilfvFUbI>rc{k#G?jF0ywH$|9 zexKEnOg&Si$6Cvo$SXYI9}B6e@S{&1EM=iLX?o`4EcRa{^^5EVO4@c<*877%=Z!9< z4jS)w-2uCYl@0%`*GU<1=W{MPx?0;5>W=32hog5n_;}9211tQgX zVq~RVA|A(B{9h0lzNWYxIMSFzMPO8pM@bcb9PuGMXqo5lH?IA#_5kE;no;7y@M&Y~ zI8Y(oGH_FH!(m7`O_WS%jMe}7cprPa<#>S>UErr}D_jDhwgP;U2bNm-ZS*_9=kOje zmF?i5yT@9Z=aQU1FwxfaXmICj`&#|W1sp%I=kZZjO^`u;`l8S4+Vg%YEtK41alX*M zGJYHlvd*fNL{M~D%Cc(3>%yozj;^kIwIauFK^tksdXa1mJ!ZwbzG`>f=`)yOsXBgh zwwCn(Tc%cUj3SDH2lYHHmm#qrOeTGkli5xCI#S9~9U#_65vu`@YoKkRaaY zl+Fwem?{b%Q0lLB#kb33_!(8zayat*9A-j%o-^?oZ{mKvZ*hX7spNlTpssEhlsHTX z@aAMDfb`2lXOmw$f2D^HF(D$k|FAz|(0tUgf6SsFc5t)CzZVV6F1>1U_(4@|6MPOh zWf855O}%eEhFeT+olM=FkNcOL_jkdI(G7o{$)T)a)~_!L8#Qa5H>km<_T2fSA*V?r zsbpDoYSTs_%5$Rs2j!!xdmEmEJ-V9bFRq~dzhBzs$$!**(UQy7n8|XqCD#-2sx?cKgInw%*GydzjHPF#&|I{L&%Z)Z}bH>lBWv$?fqCh%2KOJ0Q zu|ME|R}l0TU%yBTqdBEmF9ar$`b~cHdh;?^_luZS6rK5Lt5CfJN(SJ_gz8=OH|Aka+72`uS9$@nw^ZCwICQL;C28v>9C@j+N3 zBB?H3g|ec{uX8kQKTOK2U+Y;d3I0V1&iY&t_xFIK8 zYbpn)>kh2FlnRP|xB&c5O(PPhbPqA?Ge2x5V+F03K4v`~Y^lf5Vab?!)T^KYGv;^{ z_)?PZ5B)v2c1RjxVc@~>QZsMwNs)#<3sv~AMkq)B&9Mno5P!zY{!8F0zhXTXom5X7 z=LRy{E3i}gP&TIb`D^s^B?tDMq`8}D?`M9rO= zVk0l5)o++#Zvv?^RJm-8>Q;9+@h|s1qJkk@t9DbhU4x{m6UAu;b0Dyly71ELpL8=nK?_ zh7?_8cUN~|-knZG(VTiOTVezJ2~8<(**#0}f&<6&uv3lwD+s~UP<^ zBcd+jR+MzFV|aWdM(hY8o{xB`tPs=he9jjvqldt9FLX>d|EU0fp}3u#bmEk29rwW5 z5bz%0L4lgt6v|!1$q@35r5+}ju{?#aYk!(OIw=buLpWC-0s(j_{o^G|Ra zt#o_C>%UEZ#u1O44R+sT;{NWxn3&aH>cLcKTI<^jHRc9pcX1i%Ha@lq8aDDLnOzhM z&ao_T{W|sjP{*)m^W%PcsIl=NhKWZWVpQfJ#Apuw8^t?AWjdy7Ww`tOT$R>$!h|!v zIDnMjG+Cr;Lsz;uIk|=ciQ_8R2Vg>Ib;|4Q%V5m^Mql0R4BkH$IK%2O`-H&(ab(yV zmI3cdo4?6TqvFGBkN{d!ZA+Y2h+sdP7@XO}}$233&^wxwt1U$UdKX-4iQgR$aJ zv?nm!6Tfhs!4nL9A+3=fxYg3{b1%;HBj1i$#_-oIn}7$^*)b>FwveZxjdy!3W1d*l zP?nkg#Gk^loFTNgfxQe;V;zs2&j|~MO%i01)EwVT$YmeaPGJjF@pKjlVIm6~`QY5U zZ-?*s1m&6en4vrY=QSrc&{P(vd7V~9WDyl#e4o1#*BN)Rtbmk72mT!w|mnC5+{*U zoh^<9=5h&P)7%(rukjf3mh>^2I_)HjxD)tW*ONkH7GE;&-o^)giAw?LDIzvnwG)-i zZl=~{=&p;FHs4EDT>wFjy$dks0UkyBBafPQ5|oP^G*|SkT+!dhp{3lBI*bE>hh1q_)_HYmjN-E>I$5F+Mug z(e23BFJ2eFMg{zR6Me_S;`erXOGFeN&UNqgRm@mDl@XfdHloaly6YwqA*T`uWt_q7 zAw_S@)n@_Q!&4#~q{nmqMr$ zr$XPN;!Y94jj3K>Hj`#x1gnZc&)dU=HPoWBdrx*RE;0`vK-z1=eTOA(3@%h^s3mV) zwzBc~?v36!im>rUx$_Ju=eS=W_G&z6t$oDR=agRD+6EO5SZYew8_5)oo?GPdu){hz z7b3NBg#4Kl|!O) z$=t)q6Z-8<;N1lB0sDl(T;Nd9KXz*(s{lDQ2kLScV_X@VG?BG3`%1@9-{3}TbbC}j zvrqg1MonyCdEo~+l%NRnlX&>d1!gro_GLmO!tE=J;PP^Z`=q}sg!m|}t+&bdIAYteq1aIssauyUO^hRdzgR}@fKt8={ELs-cwBUR zELrIY(RLGZbs%4`ZfcUZ;m$d@?|kSPmk7N370|os1yw*Y8T3~m1xwQIxWhf1FXSMV z&Vq=C#}{lVcQ}dH6S`g@Y%~d78gcEqvN9tvB!k5d(leYGAM}{z?DoS)lKjpuRLFx% zyq+cOyz7H1%H@M{HYI800$%sMdXPjM&Yf&;PVh#x9mJHHuCpJgfm^y;qu32BoNPYcr!qOqGZHO@BFAGx{ z&rr^}4}i^?&Iqg{uEd4#*kLosi!b9B=P8cgOu2+d{E&V`{a)epodJRFip8!)ZnULs z?aU>5Fwz1qHq_U1-t!tkVjkWhg7^|y#{rr>wo$sPd#a-e?*p>=xN_EZHQ}bF)1MBw z#r4O{P71VnU24R~TA%yD-EM|wFR^2kBCp8vxeaw}W_`JQxllvx_==Z9Mk$!fh_yIF z|4qetVjCxg$w)dbM2;8*-m{P1^zs_boyxb1=euX)(Vi>;+T$Orn4b5Ah-m80WoSgz zN*8eQV^MFcaV?!*)m{U5Q+M6Jc{WgoTA(a^Jzxr*Y$|DTS;sK0#^=dRqvB&hX)6-# zhaD)EVlF8gPcLk2eQ{`6Y5G8PcF*D(L)Qf=P#Z&QJThc1ZTYkP`CguH}{Ie3- z)8D5(hxm+$E@dYAtmHVe%^r`P+3lZ;i$uaxckb-Tfwjag@=a{Nf@AfX#0n0-VowdY z!LBYiR7%f|MiE@V8%8{hwEq?XEso$A zqK`$*I|lgMNacVzznx%YjQ{0JAu^%%hn2z1X-NSm><_x=i+11PWpTHu0o&gv>9Jkm zMHVMPPX}xzl4bIX>VlF(V0zu*k&BHwf&Cs=T0vlbx22vJc#FO3YKC5wxhy5ey68B4 zXj#jh>hrmUPA^)F{KQ;TOloyD{jd&M;dVnm3%VpOD4}$m_yYTTqpo4}Tk(_t@hqw+ zZwo3Mr71EwjngaJ6ytN+uF=57NYo6HHcg_ZYD)`Pf}>;NQD-CA<*NdZ4RrmHDk%q= zTfi*};$S#v@WyO&?L03bXo89iV*{-!3%B#I$WH?SvMdyx^NB@8j@y1iCoZvEJzevn zp_CKfv_t09hRJP;4uYTuf^ z4oebWAWxJ|#(?J^3XbJH{k_6UJ4Mqk`HU8)RP6o4xel9r$>^8*+u%Lm*jG8grL4ZO z2!(|jU)ABZEnvRsS$Hztx2kKJ%=x`w#K|bVA8{Gx+gqn(s996&g zCe?utEXdVJtH`8l8Xc%ypzh5f@2b}~4Ws|X-n&0C-G~3PgO%=s`K9d;}+W|(4D84KBB*!TI`+;zV{@B8x? zd_O;?*IuvZ^Lk##$8|lgYgISynOAq4Nup~1qt-l`7}lSd+VsfU~tP_=fXLeKWEZNc<`-`ShV8Hdss?LxKUkg1S!XPriPie+{-k&1(bUJ{rhyq z%%kwn=PNQ_)5ST}*)yARiknXipY>DCJ>f+N7}>8WL1cLnY|nakJx;mj#Qlf)z_kJ{ z;xlNq5ql@9Jg+Sn!MW*t`q#4ZvY{@q*Usqptdg+x=N--^RWKBBV^dy{#|;>_nvc~9 zW&m|I&VXIBVF%4j-@w(YacrbAli825VrRa3mtAe+{nU*I*z= zoaVRTa`)H7hb`ArR-^i_r{*tLy0x?w02{dCm*HBoW2-*?v=?7)b{iV%%xci0uQ^NF zDsm#yoU>J}_svBd+BQ_Dq(;}bmb8)Cc5Zb3^tws4V*k3vw&48}FSWYzyuZap@QqY& zdN_C9t(3sA$+?%MTYFkv_aGhj2rc_oI;ER|HH!JNZf64f#y}hYp*^F4b+a?kNoRmBZg>WALNj80 z-9SC8*MLR4d_+c)sf1*J-GFCAqah?{n`G}g_TeL{&CTl-gWColt%a&Go((rD*zZ9o zYQA4R6K!1?R_OH^vA#>s>qS;2=hp3KVU5`0+X71h-nOZ7_2TJbXH$@aT=RDm?{#B` z>rU;fRk`BC=hjQA&PV^YFD=l>wipy&=l%nbIm1JN`ePQkx3nAA=7%+oeIGy7(0%n4jjccV5d4{BfmniR5q_+gD{NnZ3#=+% zi2QsyCji_6+Q8_JzSUN$+kkc#?lle*$yA&7pVD9#piDsHpNxNnk7iZg{mqIgZ}dKO zN~e7!WMRY3+v(S@VeQ@`L3&z{AzFXRx3gm+;F_`-D40Y%dAjrYyVb?a;xi1pPv7rx zn=3$VYuM=*9TWeM%1T_&y<{~lIX?h?Xvo?wU|H+Tz@cp~*sdY^lYZE1hopQqiK4xD zUo9aO7;za5Bfb}&G`HGT7Niv|*VeD&TKPX!^%4Q?1i7;!v*EQZGeQ_6bhP-R=NG_j zq(zarF?lHg9hhe*hRg7t@yiV!iN|X5D;f8_IpTn5I?bkJhq^oaM(zd9)TNUFCo4+K zy+OriP*YU`s7$m=$?YKu#Mesox`<*yCIqv5+ZzwXxlXsBFD``2Fqfp~KC4vG?p(;W z`sSc#x&QCA9rc*lGr#N#Gl#uwx!bLnf>qi;cPOxWbKapjM8SHt$mKOS)Zk4zZV3F5icXy4HQ^v=X9e_RWpaHe6gl+?CvA2CnDZLW5cZ zXfBN7(e$aMbD!*U6rOnTS8A?em`-lby?nh*ID$=V)~$kHPv-CMG|rcLZ6mX^tqLZY z&F%=J?(pABzzxU)kCgJ=bLaB$oNui?-P2{xB`oyt*Nvj}hhC+Ds+SAdV}e|twr%L) zWH;d*lUfw2<|g3txk`rUk0*yzLyZ|Sk2GrI8wgF@)&$w(%R0(v;c`Fw%buL$8sbmu zJraRxTXH}5@>S9{wp)e4nPR>BD=IGEE;kvvy@1>{@i*J3$N`y}Zw8Y|4#W;S6Dv;9 zY^-11X7>!&^qwq2u;G}xmm955j%X=0j>-b$aaABv~_SR ziVDT@jDX7l9vkjEoopb3SnRE@PQIro7)9t$@=@1ZFX}-5vU!ECANvi@jd9>>PsNqp z0c*p92IF%=WVwTsDWTiD0~cmBoC++2BWgKL`9(WwIz#MRJV%7%2CuHKjT*1?yGkAU z(owJ^A@%Ixs1y^VSvP1^MU)F8fV4}p@wq6~!do8yA?Xvq!;53J+H!Gtn8#F&fUp@w} z`7=7}|HkcC{VDR#BO}&c{+hl$EEULz+dIMXo|X9qDkC6=-E6$|S3~PLl3i+a!pIT( z4>PyfYQ*F1?el&~-|X>k&ZUZuA*RjWCFQHbr_(<<-CNz5#(sTpuY=1@{d2iT3Ob&7{TAL|1(A~CvBSLS8? znWwf_ilIG~2D%^tD%hE^0Ig$w>xda*Vm1GA-}_>lMXMp2R&@WiG#0Z8B?#vJoaa~PFI)er3QgpL$Mbt zI@V0^pBlKF8~Ot~K_XpKUXODcO))v2SKelvV^CYS@4VF`)8=LM_`;ko_w=v zlS6+#e}KjOv>bAJB(~9__q!;m_iwmsK5X2Fjc`2Q(vxVy~zxzXJt?{z7 z<-(V7*N#rE{qR7(JwfUHLgRd$6%A{{%>om47u?zLvg^+?h-C+FemuAFMQCFc*6_i@ zRT7iU1A>X&_n$_`iqi0R)bPIvA}7=ba}K24-HrMqqjqM9RcRGQJhXtm|1mEocCs^e z;#*OyaGR6lQ(9~x;Ra@CcT9QMMq*^FrxRCr+JdcebF|S}BMqktFGPg8*cTQNbP5v6P12dFA;X2*?#I0DQ5c~Unb8z{ z)esh2b8Hk*)t)BquI+U_Uy(Y6lyum3>gq5NUt>-UQSn9Df;qZXAF27B$F+-J{5E>L zX_;R3uE?ms$er%by;HP0!MWw)sU{OXA=-a0g!2bI>T>H}+jHyJm0XA279rgN^<{g8 z+5Ste`lZ5nfAv;?&xRf}`EU`T%~njT`w-^0vyHSpf=tEt&Zdex6x+n4v$3XRX$*Uy zBhvt8Z;@9WVH!zAvKS^ew_XYXkU1HDK*V)J*xEM3>>}Vody5s+xpjBPy$TA`{kP%| znc1D4^>4j&cR7~_&u!S%$zqoc^}h7xI3yW;qpIvW_MJMi4RMZps;F&X*)n~@l6pG=J@h#GN9laF0@sE&#x?G+bxFHg!|eJC3QYU{EG>C% zT&=co3mJb2Gc+Sty;^STC2GJHIsUR=#H4`Ob_@#fYo^=|jw7SdZ%Jv9xZP}(ogeG5 z>#v?^y3J(#ojq5W0YU>mV+6V|UF*p4S)^#cMs%dngvUYxNEscaTT!MC>u5}m zAB0ckI1Ar*)dcIU`b@cUH(7~miDkXDj_i0y!DC^&D=|4Ft-IboJ=jMC?JraKhmh04se?P!TJt$7TGsH;1rP8%q8vO=bU*qmg(kUK$KU)*4b9Q4~G{8k(`!Z5(g4ZH^1!Amg2`6 zG&4>NIOMmdt#g@JCVZgDT}XT(wSvk7s}sQ`vZa}1bp^q z_$2C(afo*8y?b7?)+NKd(}kWMLch^iL>ANZTMttl!Z%Jcvau~AxNET6?~b%{S|gif z>gkVo?2^P6G^4Jox3$q%7%v`n=MXHAO_x^oD`UkM9e=6o#0;Id-MgH79d}Sy9C{91 z{L#+#p!3B|u^du^A{R=qzk3)tn_!mRFf@VSuYV4jGpTT?6NnP`zWQXBP#kDujNhzx zr+rD);0|ofpD0a-u=l!eQnhl$TN+y#7pj;_8CrHvW5d1(3I%q0+w`h3VzVW^SSuuc zqVzOMWb@5HC(B58+rxDpxw#~Xi%Gq63_s?#T@p*iVQV|zvXT^|=D>%7insU9o5Z?G z`~x?ONhwF*jKd916B9lRPFIY!eM=QdC2Q7rGIFrTXBC7}Ms0pWTG-r=`U`A&AsPQZ z295a6)?LPYf!O=f6;CwBSP&OKDQb3m$zQpf*I0A~h2YYP8%K(G7$hCDeQNbID*l8WoM<}S>Tz2(a^_~Rkp z)^uFUmAgxY+~Y}Q$OXn#4QWaSB0IH-6DiW9nER)M_A1;Tjw``6jOy=K{0QGi?m(KL z|5J7xGK@URR9rlPo@7ie$t~hosC>d2F2&I zaKAjDU|UHB@EB2-k04qdE6JPePRFcA=gD+oiw|>d9Tt&onY{8jo*~tH8quB)RaO!k zCWV%1>yzjMv;jl$?_#^KzU(`_(^{zh(x2@;Zni*t7S~6xgX)0Yeiz z(@GqEa3H7`pQ6#gHMU4RB}tLuyvW<*2QCq_WkOk5OGqC9ZLFfFGr~F1S+{34v)j0nBEW! z`U&l~m~g12L?Hr*h2kA#{4>e$Fit;ks5 zw=fPCSk!zE+rNJ9S>y1OX|YS)RqCktB`$jk>IPNibuY-rv*O5UHfvo;i&L=j z{ovAQJSd1CT&8WIaJZ>G&2|G;w&!nGGd=_2HOfd^<3f7kl6U(t0v|Q^j^jW5;kss4 z=0!RyMk3}!UkUygj**g@{kFPJ>FB~M1%DN2Z5LeQvQ)1iyRIKt@waHTNh+W>;US?0 zb(C0-K<*5@hSY3jFOYGkMW1-J2qK^}Jq6U)4LUkyU6jl$e>q`(u`SC$>^HKCp~Kdk zd7)`#xo37HC{|q9ztnMtzW*0sdHuz6aNO^;<4S)-@_V_D)p^gd{W`QtxQ|t2pDZCv zeagvOa9*tVHAV~M33bsQXW}L!cPe|CiE`($TsJ@5qaBGf~=b@+h;*k*)g$vGa#R`lzdo0 z?AH$yYA{Xf=;=GYh!nLQ#H33jJ+S8~K2yxSd6>NCxZxBSd_N6Nzp3;$+wGD_4`{bz z7OQw}a?OtjI-sXk>)u+}zI$q)9upT9Sv)*bKyb(D2L*uKsZrFjdsERrK9wQr^>_0o z*Ev-bafFI^SnR%yE*78+4KvgOeHY1LFDU*7 z4sO46m+W~Oo|?RMr=)(mn~1zQuFl)^{kmqXRR_=utx|cV4)kK=-@(cFv8q^c6^#Xh zUwsiJq(Mi`2okT5d|h!M$ZY@XnT#2%;{9H>{lOivb8OCBu4O1??k`%Hj53HkOP?F`~3G0%1~J)%vqYCNU(W0dtNJ^aC5I@ z`$f(Wb;OEYe{kg9KU{`~+<_DrZ;k2lzd4dV<=_r*aKPg+Z(P`glQG^3o1+b1Dm(n9 znHUtxgRmKzj&hGw!h92K4M6D zMf}~GB9l0)SLDJ8c+BMm#f3`SXFo^B&LtoJ-G66BfD^ngd)!9LE=$xGh*;29G6-Dd zk28uVSERsFVMpn&4~{>f8ldy|>COnht<5B@TJfR3?5fzch~Cp^4mRS01o5RFexWe7 z`1qy`_wZ$ghbtA6kxgXR^ROgSky(2IPD%>Dyf-T zyDdh?mn3;{o%SMt>i{jiP(pGG3Tl|8zjv~ge0;E9PJ}h~JH#vP&b?q=~`!LINm|blDIP_g<9U;1)nx*SCG{#)g zQLDoCxZ7a*3N^fQqF%X|r}{LPO%W7IGFLS=6TTnb@YDF%ia(wkvv#)35_nJ~b%^@vtrnIR6Y^=h(*Wp(v>6#VAh(I(#NQ#L6m zY(8tf%`;WT*^YOea)YjspTJS)sW(2{CdINvg6UBgKbGK(0i)Nzp>mESuKTjm*DK5+ zvQ$rt9Hsefw%B>^$Qq}*ZSBaNG~9GpE$jlb38gTihYqtZv=Y8HqLiTUJ^E>uq4y73 zxIk)oxKTjUS#>DMi5hcX?|<)SeV(*Lr*J~=!bj^w}(_3v`jWh zU|qJQ-?Kf^(sOLBXKnryDQUe+2$7T;T!=jH-zt4Vd!e!m{jW)FG#PZ*`?zK57)~1< zhW^{1wvaW=dcY;ZT(~`I8gQaRSkS{P_cF1#7D;h_UFh_;{S9N7TOv(vSNTkIO@dVu z&{KheKAsPMF{f2LzAeUmXeXt&&jm78(4kifqU}=@Fpew_@AnYps;7-l(9<|k;th~H zO~%K;`?ih8+z~D3DFM~byaVH^qtyqdnN` z=U6^`g|{-7H7fAW?C+#hgs^XLRxYBF@sNdN^=-!WUgUOkW&AL;B5@y-23 zymyd}t@#v5!HXas?fN$*t6b>n9NXT2GlkLdI$Wy55Nt9GW@8NAnn{(-aM6<> z%Is&HP8v9t?CUz)zB|~CQJl{u>H6xT6@fqK%N8{p2*}N6MHQ|4HM~#R%~qaA-CZI* z@~p=M{D5`ytn*bWQ+zze_ElLD0kNQ10SfasH9FHhJKKD!Cf8PCwjKa}F)-{mk_TOC zMEmMYqfu2VY9SQ-WUDmN?eo}bg>30W#5UAijGVQkDB&mXa(!S?Lu`ANrc3<2-q|cM z)2*6N8>$Ix>MW$KVt|-1a0OW3$OAvvvZyq5)5|mj7CRMklsD49*1uKkgE$IVVm(#s zFbks1il`LNMxGF}obl{#h;Q}+bKpwl5F%aOSz8f`SY$}(nVu@$U`VOXs2>`?yKq7=L0P!a9Y)Ht#?sRzPgr{Mdx_f zj!wt4+u!d*(w_iKvnn)pcy|0HmD}HG^`f!+2ExJ^9?kv|7O*peCd@AMXrED)j5Ab} zGppi!o*mFRhmt=HShmRXTRNAj-sq=dQfFdb)V|$FeB$(O&3+{w&{zOPu|uI4x;x$0 zqg#Q;KtiIX9~ckZx{jKB;qc6*$#sG=Gkav|_EkaB+O~o#sIsI6-CO`0OU6g<1r&6T^FCNKvJPU&$2V4*^QcBs(fswwzx$wC{jYSNc z?eJX2%xLK>JL)hsvgg^i(5JHUVAaXT!A=&$~vo~1e%pH z&U^S+;Ek<1L(yyxJrZ|}VZB0Q9V{@xT{&U7YDm-H@G9G#Vepu(1I3fnJJ?3_nTl64 ziKH8tyu`;mk^>9j(iGU-H1@c#=fvD$zZtB5VO>Qxk`uB#sX8l7+9mX3&YVi10U8(d zrT#7Po3LnG-@B?u;ha|Qg28m#f(pl7&3WOP(^E{dI7}OXZMd!1j-zod^FnyzosL}} zXxWn^apMWOGY;7CVnPl720}iKseR6a>G?~mIprSlo49Y?RqAxcu;O((`-O3Y5)}0) zSffTt-iam+CKN6;WXhtvViPzj{LQ_3w5OIOeSj*BCQs7!?_qtKCI`*1a6e|N>%sH% z5hooz)U9$;SI;!V5Qz!XDz~M}gv-OM2iIr=jWIL~%EA3cS;6s$%(|yrdiKifH8{|= zT~8=C+#TmU;NkHiQZlrdKLuwpZr82pY+7 zeX@hgoc^maYr~GD2cc~l*?O=uLue1x{gVN@Xq(a3M*C^?;pHTJJ^@V1ut@f~nwE5; z%*sBZQV~zz4{`t32&mdRX(|iZIyz_dkgr*yGmm`0yojk|sRnM|UCtWe4Murq64W{e zQtaNmVlIXioo8B9+2$5@H6*Fojb!X0l8o#IdW%@F#{dOwsBt7=b<~4Si&Eti<*rXQR`E^+~>=hxTTd*A{LTR&!v18L-xKH)umK|d+6)E?^ zZ^o(B(Pq`*we=3q-s7IeHLcfRtUz|U)3rMC&93PJrqtAR6I$52PIFl$aJ(a>!oC{-JRcntgUQ>jCmP9OhDdlRd-J(!I$@!g`}=WR5LEdwDt5Vu(tV# ze~(4jUb7I>Zg8$N_uR?>Av6SBF=ILKg4>@x+ab_x3{s04ZsAS$RS{8BckR7~jCrLQ z#}((nm_mG(+6#6q?4~mJQwTc7-(UmjI7lA^vTI|DZusS``Mo&?HM-BjC1&n7E;avV z#U$V%);^fGvY+fMe7UQ>m{!J4&Napeucb#g$iqxg`0^k7<{ zjlqM{OM|VoA>>FOL*ML{F{iQXn^vytZ_f-zLJ#XK1{9|1UUd;5wmv`Woo%pmH7}fg*7-{G%`BA3*9$vJ`pideR(+R`|4203z+w@Lzm(G3?khF zEd>%Kz3e-QkzLp3m&dig+v~ogq>@{T)|9K(NP&EVHEJ%#df%%t%7obt^ts=jRRhhS zwq9J0W0NWh%_rw3dl?``cYisf&7~F=pO9R1J;xWuve){i97+l ztb^k!SYz6$D<>!3HRgBlXb9zFC3Kj@5jM4`jYPdggIrkiRR7nIW5Q(T1^#vrh~W9n z!2}jnTnF3T;A;52Swb6TB)*W0Cn4Zm;ds~hT7$8r^J{fQ_H^tse^nMsu8z(IsR}z7 z+7Ta#VQ{IN4g54F%LF=Uf5fL7Ih@$3p#fqJ5S!h-iu|>{jt~^C^8hw%Xmm^?TKMYi zh4JSWPBX%34K1L?Rxw?0T@Du6l_1Pk+4gL?6r4Uf3PT=IzZ6g+b@eptS#G3TCi-GD zKXmeM5c-n|9_y%WEVLdvFSwiM2C#=bE|r?X(mln5UBb0(^&jgql-@!0UC?{_wBged zkHVG#!$sphF62c#%Q5z__%1}06AXAz+*9EPpFgcV z0;GL7Hm$hvvxo9^a)q;0kT@jG65NeK>af#_xqv5d8|Yubv4HZkCpy0?E0o6<^ykDF zy?87=3Ad$-FgD*m^AMgfvA&uqAwJwCU0G78(WZEZq=l$YX+MvVIsO_qu@ya}D3CRL z^Zda$()#_tI|^PWLugIX5r1HU#7CSaB=x@DR9AcxK z>ZG3(Q)9OPqHoO|M`r3NGkGA{asf%PDdlhTcan-l3YX(TQ4JYJ@R9aKN7V`?v^s$`{N)I>WYVhAs>zCJVo6S2_Vn2SZUc}a zAfPG8N4Htlf`c0AJhRx*n>x=s%32ycS4eYYYsBYju#@>1ly4;e!D*Cxlvs&NU8{R0 z?^}8^yPG3QflXLmN4-#QyVn7;&wa(>u%U7zt0Ix@_phuBJHxWiX|u_*DYHwe^EsP- zT@5iK`>DckNhN-dqVO@5AKhW}8+2)9{Fh195CA06Dn};ogJhAzfVo?*TkiI*-fOrD zI;X=HaR`UC&3=i9zo%mq13*AqFtW$qy)pZoWveFGWF7N zsUp3eYdlmsWSn8JN+^msme^51AKD5P%5BC@jD$0?*ea&>YJDgotGIlGE0yBB^XlSw zy|c7&yltEw0B1lBFml?=Su6hRf=kK1!4Gu*f+GE;UTW10zqxm8#EfR_6d(Idvtg>> zI>%LGRq(BeSJcxNjzd0kq0XB}rt~TQX3m^I!joX9W9KF%NJN)%-N?w#j}^4&6O4A? zc57y2uA+~}fXT2MADKDx^@5cYK{r5lr*cCHq`h$ z6boEK1|wmjvE&e7B9$)aHuFdu3?3&%+am*nsn|Cc5V5nNA$ioY+`_X=2M9#|Uu(<* zQ2vzFh2`>{DacTl?=9lpC`P>rbVv7O$y5SsbPqK2ie9fPCX-IrKEULi-s%R>kDs~! zt6=m6NRouq2u*x6JYC}PT8|v|z$6kfX;)lmE&TQhug3-64Y@~8g(6(pWcecosOp)`xpJ{{pE9s9UMxGkH(#Wwhp_RTM_ zqYEsse-;`$1ki?6won3jFBlj?#s@1-Iz;ulNA*eiU!gnC?#vj8fRoc9f0mIL0OLxB zlZZRK+Ik#1=NE`oKVV}u(m)$lG;afX8JZJvH?#3hx7#J3BcQ$SG5TU$T8^vyl{))O zwtwY>zs|{R>BmN)YoAMmSjV}K_Kh|C)g$C^3W-89ZqI4lwd2m>CdFl@Hfs3x3PggAo(_7lw}h+-e6`59c#bbcunv0 z-TkPS@=ya@E>*AfkRg(*FpZS>+9G2Y@H1t;kV53ubT&fw%EgpGS2Eq$)$xH zmJGIv!u~uUJRrQOMZ3IN=6nwR9`pzt>RJ^rgax!OJsCgRb{`QlS+U^?bQ|NDnDOwz za+xfaY#|;>L)IZ;2M$|4+AMykFV31>9K2YD*{BaD09RSc4v#QfUV+JqoEw+h6X~c?_Z5R*f2Lb}!to)ycCAZeaX!*IbAu>6c z{xsmUH5Fz6|7S9r!4Tr%jSy}5?(X+4_!A%fLtL9{l$AU#%vjHN@Ft#fQQWJe8KU8)fzUvUJU5E> z1S+eKSs$MF=N4|^w5hq0dbR$H8;jA_R=9c z&$d|zc_}6)`Ab{&XYSEKd%L3$6kqenTX)etWTgj@_2|rvD%ICa#rtH2{@!8HW}f<6{9;HUQn9- zQI~)HpZ)rsIT)g+CLJZjZ|%{dQHEw04(8DB17z4SoGNNf7L5FQX+f{iqoUMSGGqgz zdV`d>3BoV?Ut7(MDkKISeIZPNLFQ>;us3&EoLxpP?Kep4REAOR4k6)wO=^%h9HkHP zYLi!UVeWfY-5&wS1jvu0phNK98=iOfqFD6wO}y3UXjL{5ap}j-2u(kC=IwwVi9SQz zwW26QYG8EXmCrprO&~ac{41Q{hG*&k%Zo0+CdBc zu19jYeD9pS*|t zOS_99+nMHU_Hj7ZZ9E*!8jtWug2nQ-s0$xb^DcC-?n>)SKx3Li%B0=brMw+#6UsoP zZk4`Q=xlyyEPsyRXmiJpMi^lG?_}evJk!c+P2k1Pq>Q7*h1XjckLaDt0u>U}fyohM zSN28vpgDGUBz#^d&F|D`UH|Kv^sM|p^l8!TKQEHLJ;vn5Ez3}JTRF?WQZF!9k0|s9 z!0@ko+p2%@_R|aUkjxP!&&VSS6x1RbKJgMDA6kz71$Q^@xUy6MSAGTN!PB>YA|t4g z2-^cCq%D*8I=gpwLJrY0WLufFR|ZrB)%r(J{aN0kPTUJoSv&XmGK5rFm={>s--CCn zOO3pqTD9jn*L6IT-=Rz==+Xpk=pWX)uN&m4sL{VqU$Dg8^)%&4yUfflIKc!g_m472 z)sL(lyn7kUE&}TV-P!j388$W)&E31kGc!jTm&(zHaX%lwsxM0O>n$zH@RUCMd+5tSVuqF%rwS3t!a^Pe-v!vROBYfJTPmd;n1hFuDp9D%)^x`3up z+CoXkl{#-TQZf7tYd0uHm*a&D14gE_BWZ6lLG``aiz?itJ}#ugyS6dDrM3F zwdXaA0GxTyK4~K)MgEP2D`b{YMj&->TnS}=q<6I1ZOZxz8p?7=IH#a#lQH?{Mky>I z*Li!QF_+Zkb2daa*X-FgMJt&fvJiB816@C)EhoV~GEQJj7u#nnldaDBf38k8#|&7L z6J98L#MAV%KVE0{e|cR&^!T6{oxREjzO<|<#t`WQO)-N^qW1qdD%sdIaNK;{3nNI7 z7x1>rxJEWQOL5}@XygHa3ob2Do7oGg@?hmfkm8u1%m#+9f!;e(BA>YZ|6cJAEz$k3&8TBwJNy*XWsDoSsq*%ZDa^d8$NI8#PWxl}@B3+04CG zUh-3(K?hrDsP()Ia+lwbm)p*Kf4D(c+EHwYE9Ar(VdlmmXKkzOjDHTh1Byf=B+%#J z5!pDr;4StSUu=Q>4a5+zC74_EuO(eSae7F{{@y$*n?hk>cy{BXe&9+#eDgow`O!>3 zLLUUa7Bplp*c?AKo;8sMmf!8T_&?U|^C zAMk^%<(zHSr+yg@HUw_SrPMn ztl6DQodNnMR6bYANxSFgE&>Hmh@$`e{!PeHqjG*KDyVZkR<&2Z+-tmfWoG6ODZ18!i?V-r@W!iL^`(QAA|dY zT5up^KE$rutbCa#Ok}nVfl|5$8~%p{`?0SEKzbhf%{A&DOJugS0=F|fKd6d@mCdPv5I(zEr@ZYOQ%QvuZ5_7`AIPqC_tVN390hR|GB-u3u!y6=C^mW9+WdM zIBeVL@2f2T`_;DOAG~9J7qBF#kPN#1Q(^s!&G-l0yL;x(<3MsQjkw@HcV_9{Z3R0c z4FrR?xYK)79scXQvKko7coBj-gPT zXS2rsw#@FoFr`}qgh^pCbE$~H|;TB(a zLBr}_K@;eTjKoGO+yQzzTu|@?uEFR#v~rU41-D7X5^|_sm?rwEcbY>d3Z(y^VWg04 z0eDu(MW+3SQ2V`pDi1w~6_Yf~=_CH#6BeOsvYEI3O45$5I0Wy_UCv4i{7`24X|AQS zrHg-{2oGjJ=GkVupmawvJ`CT>XR~;M0v&sy$E+97d?m5Tc zMYiWM0vF^NM)bM-{fSO>k7dd{#hOuGlApTg0HiViQYanu0~8V%+k+XhOMTHwjd4X) zX27qgWi;@C=RNU9)8X-McZ__~xCc$34bxuN&X@2Fh)YxPIk>FlpFlxo`9r)xNk%Su z$1ur}a?4jX9yXC;s$6{Db6}o;&)-4btjtAHFhZk#)!vUY`3gffl?K)vDvfXWjH~#P z!)#}%Q!b$r@8~VBOvAbfS?w?SP2xa$KBX-;XJNFsXBcNr0R?%icNnV_Mx%AiDAc3r z3bdQ*raRJjZtf&qH_; zu+#niKaB6)MJX_sH3w@R1?}FNo1Aipj6uh{dV1-gx#=yX@7$@j zKWKK9KTCW>{J3xi%i7p%rz5uEWoj4$6&%{tiu>H1g%9y+PS*W?V&1xBuJDcH&mNIcEKL1?GRX?12scKZO zC*W898UDOXDZkKN`LbS%@p09~)>2CASjxat!#%w3@P}Pc zct^%F>O2Q7`GG51KqQ{0{yb4jki}AI+pxRU-y2nPshMny^C_~tR8#fRNB%^emN6ye z)d1Ig7?%^G4rvaE-vJ%}m$n$Z#HAAAfY(0}`#pYv{R#KP8ujStdJX*rEr?kfCo1P8 z(qfdkt{O_`aBuxFuu3CNjR^~;L8 z0|j-DYCvuWsHFdp8OjLFM?Yp!tCF7A>@xUb=L=(MI z3{*p>YN(^RDN6z@c4BS~p3vFzX9KiwS5!JH!~!-R;r#n>wEk3`m4=qWS{qf``MU$T zf{>lDZm9g@(jxE|rpnb#G7$VeYvp;~qxH0`)}}Yre1qUoJ~#{1c0Gn){g^aa$v)pdQXGSR3Yyj2v>lkPl{_xO)q7 z>u(R-H_bTa6-Z}vW@k%F`Lv}R|G!Kp<|PI-yjFLA@&jkr@Y{JQMDqQ-D{BrUclxUl z^h+cUUd#l3cv?T#oXFh_25BMPhfIPkk&P*3b~=H&R>3=R%a16gb0=*liN?0s11SHn zozjA_|I4}8?6x4fl69uS@soc3eLR~&7@vw! zO4&oMDdB8RgTYO@;KH*)+S|g*ST4=v6I}S@<03yD zSs<+j1iC6XL6*Ca#rHC*y`B3+ z70&U;L*%!B3U?E8cX?LYx|6nW3!;-wLn;q>gZBs?lfUd&zlQ5&l8MIJM@LjwkIr8F z5@TrKz6n(Pf--+_!jL-t4@Ysx7kTN4z5?6eZ11jWmRXm(Dkx|5l((%qzG4?s>*;hT zhVlF0k=BwPNB48lMV+sYlkqM#kLxIUxVBfDvxY}^UqEc!`yxb>7dYu^i|*}g-E4D! zJp4%Ct8T~-R7*jV#5>KQZ~q5}t>jYQRN!z$3ME7O#u3A=xV(UX$>$z^eyKO}{F6L| z&+2-5djiNlqijS7u8I_@XaBV#>tTaoQV}7N?N?=4-D~hEU~JcVJuu_T$$_OY+dV=O z&{-b)<4RX@aRP2H?+k-N`$v?Tf7orw5BF%d$Fb8Va}!Qb&JkciWTCAd8O3p zvd+C7?ujpmO845YzA}OFj+_lnaQFiY37e>l=@U(;UyGLgfa03;NA3A|^i=fM2K zARCbKzfEEa?D8V@IQhf<>zeOF!4#L0gUy?^bFGYdP-`#r0wn~b%Ag@~Wfdv2^f?^y7paMC}{xPrO-@_Wxs6Q$Gw z6|jkWK!gK9YUT?64tUL<8=rZ*xcIyhgiV3k{$M4t%maIF@zdOp@z25UzVN{xoy2>5^-Y1+N1!ruNfXE3l-d& zE1`0?sr#qptHQ)32iZgjtO^`^BJqtuuBr7Bl$A*YJnwUA~bpHT6cZkVVqF}m3Ju#?W z_hihFkFA&zO$x!2!&VIuj80XMQcSrPH6kk=k#XnhDw2?gbAlt^88Bi~Ve@M2 zkIDp>8Rl`G);AP<@7_DRg`b}?&Rd&jxudW7J})!9 zkH1WRQq^&$2g`iI(nLps9oUO2Ns3Y2exAT<-2>5nCNKw^{R{B z4ONtRwZ60S(T{VudlLtP>(cCo&ggh z!-drq3gFhK=4Qrc{LSBbeFEs`cXF-w-WdGed~!G<-5K0?*$1jm_K{fi*YAw*VnX~H-{9{iX zEuhgkkRHH{VNlk7OOuW>j_ulM=a3!sq@Hw{3Mzj07bxutb7+sdU8SN27oSVG?7*cq z=c705f*a>p27^04j-nXHA!`Fcf*mnJ2MwZ^cRaI@s@(W{WPCHW=$kcqQdJ4#W#Klv z|Ajvm*$T>I_A90qT^V|-yZERiqqIXg&(n!p-TftUvd?hdy0Sf!bu1B+eAim`Q9GU2s9K)@ghkTE`7D$xr2EE+|)8DViNs`qUxP zkyuJ%{I?rabu?)9nw)gU)QO{E&v4E7>eW1!&>p-* zdQCSVpH=oq#y!@-H;w(-+;0G66o;SnXb$&Y~;YHy?6K4`-H!e<~fs zn#X4G9@T3O)qG+HA#X4++2moJMj!s%1>3qWoep!wR?K=s@TzNlU}BlPzyRFG0hNBA zCo-ZdqvP)#&_fHoco$0aMyJ}2h^F(RN6!yW1>!f9%@mJ@xZ0o}$7nbjpqZU_s|rtSOhN$ zAY+(Cd)_NuoHQutbql2K?(CXfS8E%3qbNm9EI&R(=bvCGCvzexa-1T@q%~~1Lh&AU z(alLlpJj6Yy%d-vM$^HX1l!IL)dm>^ajGU8nuody6eQRCR^(|o)ijif(nbXV)=f_& zF{8thEX)wN>M<&2q;Ptp^j-S=hQ~*{R`yL{?XJ#E&ldKGNGxm+HlQb3X~_7|??mXb z?W!7WI6=bDIp;XLiFpU|;s5S=mt|+mW1DMbU(e3`l z^LyW>qrm7-QF! zglSS~6|g#i^yrRu=cyvWjVZkI$@J;kFLN2CB4P@_8a#2jXOuU@<=(ca_!D%3@k}YA z2WgaY8-o0sW;TOzLACP~i@i2=dDOqmMfXng38+!Qunod4`??FbPlXo0Eu6N`T4r=~ z%ehP+VPFSV3= zRq~bBai&4NX+3|4I4N3XJnC!Kx?4tqQ&VO&nz`RP?@c`uM^iA5i!d*{!PD^^?kuq< z$*P!yp}!q&=yL->v5BLoq0)5KaZwF_beM!eaZJ{lXTydx-P?xu( zh{F~wDPa2L3M?psQE^+(X2#Vt?Ufb9$MbMU{=fFVJRIuv{eP+xEtcxEDbaEy*-pkb zX%MFrrJ}M7rm{>S%Af{A<+Pj>oiM^66%u1?V~k~_Vq}?-m?6uQZDKH=FeWpW?=v$U zbv~c(xvt-Tzw3AXKIfmV>zMcZ{XF;n-1qCgAD+{zZgC1qoG=TCgYN&9rU3`u;3lPh z@A!yYUfX@-7YpL!gfjO;;Z)*-Hlu5aB1gq1C17DkA}p6YB~&xhl}-u0LPFo50T{T5 zzv;7yp>xgiZ0O31L-hlV!qQDiP8tzzW;9Eph+=cMWJMd6cE)G=9kpdYHjNhjhcKKR z?(b6zfU^l%VROZImtYxIQ|>v*KcMeU3ab{o7zV>WEgn`Ukv3F+q=T^t%p zZai7?8w@?#DMm1;-AzKIA&|WF=RAKuR6S?3nR*dBl)H6YNc^YQwMO9CDiP5kkX8iYRhpO-|fE&IrIUjeEf{`6Dxkw=zGn?lSf z<-Yy6JQv^>-B2J9&Pihztn#-0bcycc`}uN-%ImHc6lT6$P&tq)7$|Umq9b<%J2q^0 zm>t^P)r;~O`dUEyb%6g)h<`Nx;d#^!EOJfhz{Wr3Ri(E=%w7L6VY7|kMwtUXzS>-%_ zzX?x}wG_2333g|kmC3Vzl2pFWZ|n;DrJz0B^$Ffd@lp(&J|f7DOypy`&n=(S)b*jh z;imiNV?k`q+>hHy9WO@1vrZUZ+;fF1 zC`!+0r}eN@FUy&VJDP#nRipdky4=Es5+ZLlR^pNOQzBcT*BKgLVw$$Q&ClW)c^Rm4 zxn^l1YP%sB%m6}Fre*n34nA@|<5Gt25Zd)T!l$*e9@|rY$6-tP-izuJzhyS^K@Y`3 zC3EoEqHIKcESCI!w@$a-GUKcf1I`z^_CY@U7R-i&vtZz>sdAI|oXM>Ab6nLNs};=$2pB=>$l^uJeAbbbR5n;a0&N=EWv$ovuQ&%rKd* ziSW}^%d*OpcpQ*e8>)%Ucpf{V|bjure_e zR<%ha_ne3x?4iL18Y#$2$!MJxIFW7`EdK>)95;NR!Ks7h&iRv4WywL>fVU5{`@@(9!P*4T-KAMgtp@%e7vJy&BHA%Bko9C1E0`fN>3hx|udksq}bPz=K{H z^A}3qC+tIeP$!hF9A-bAE8-}M*EF(v-YE>f>a=Qgv zV%;0=2(}PGI3;;nW8l-w5t)A4-6U+o#W9eaWz2bZ;}W4fGnuSi2bv=O)vGEw_nhSz z`K*^Le@f|i!esQXXfJLQ8l%&I!faDkIHjs4 z^qL^}uk6BL62L|*q$)x9NtvAOe1cDW(gqhj<6$q}-+tCdrh#dSD8oA?u=F0y9!jK~ zAG+RNxg`=E(-vxqz8%dLUbWT;sK5O6vu6`)S3i@+Y}Sh-3>XSd)5H2XzXuHVu_NoT zv$6C1h)^MN7TnM%7NPZKEIKNz{$q@e$JoG(_XzZ3k6v$c?l>RS+g#X9PG!YAsUnbD zDFezrpl`U9;&<_B`pL?|gU8oW=VOHehzwUpY;~?-5abBCzr*l_Q<&fxBGv z7LhQTCp&#>>V(Yv*cM1`)ISQ54R2wx_Dce2aBzP{#3&-VjqG3gIT}cx)4}=X)1V-iR|>qF5S&+@TE z)Vl66pjKz*<7N%W`Gw$MH7xgtKTF|PI!J0PH{Dak?zh;>J1ryy>S_2!hz_Yw*fq@V zob@HDGUBiwgcePpp)H%W)V@`O8aDXgf~{$!PTXJ`G{cc=av1(B)Ae!RlVd+r76$tl zWrb|LG~6=id1+51ICc;^pUW=Fl5@^GMaS!HJ_3KjQ` zlgkC$XrJTGA*0E{AY;QmW+n7clQycyIh9e>fNjFLmk}NJkmXK*=p=0&=z7iqLl>Ox ze=Al{%HRpma+W6ARMWY^og98;mSSx9-jiFA8ybEpBJXG-tSD%-S#UE-qaleU(iDBd zaR*>5dC+E7bPTk_6`*^B%D-0i;cj?URxuklOoiXy@y+a`)Wrx{X;QNSgjTy0no60w z-S0O&Y)P8FWDOb>`-rkiS#jxp8YtZLQYxFBbTh->tVCvT+&_y-70Rp^t*|D?L80b} z9D>Tdk@W+$Q$bwzV8O91jg529k;yTRc^F07$CEKys1i4UWd@mf89v1uX3ZV{RCwx6 zW0h)1cl?u2%_4iQ>AgxE0vz|ocx!IM%XYh@0 zQ9tSl!hWezXDJZ4L=EKnVUw6TEI#DuLs4_ttO4~>aNG|m$%QITe=i6kl_+-C8q80P zS;CuH!s!{Osbflq8miu!pZ3}Mf_GW_1RX!F3>X@`@|;q8Bj|d3Cij&zb(oDELf8_! zPEUo-T}-T2BgfCD&32Tf6nNg^&L&mAk(1#t$`RpLrmTFLr*IwToDWdO!Wm!|*zPJ# zv$Xj%8k-!ENpB4)cE9ujbj)*E4yjejue(|2X7@I-$zGHZ74-w`#zWH+Gh|aQXEXK{ zxk1v2sveNF$~p8vlpMj{;=$lG&0dIKB)!|Q=|R-JlTPft#J8gZ zj0xU2CBD-eTb-@5s>E~x9Z^xg{*`nMZk9dFL>Zvp4rhhO%!Dmm7hD(}A0ZE~&S1CiWC#}CvYh(u=YEws$9 zti4kudu6gh0%1_S3mZS|5+;9CZryS)zKXp@V0m+(U~x|u8|KMumn&9Wx0JOD zb@0k`ONRAg0S+p<%GZ=QR z(2}KYiA)_1opEP4O>y7@H3hoK{FIo+?s1nU%4r|?6+u|FUz2X~mZ2Xq&9XaLK5PPQ&1vId{Q~lsLr+ARO+EuQReM){T9i$* z(6A0j4<;cuX^EF>9EA{1K9;W&xKbKCT6oa^3z(rV4{SsW4u~x1MCz< z=CkNXs`L5Ai}4fH>AH{O(NAYa;2bM=go^tV+G%gNh9v`uRe6XlXvNey{g7(-(QVhn zj6O{+Q|9eZ^^ut!7d13qLd|LI>U6^w;4wUOF^zR5`cE~UL%4&0f3>7fC*yausO1Qi zWOpbAK3pKh7F_D~!Q(gV8%76aGYB)$1ZtN)2oL=Q7l%0c`{@^~z0<0omLUQuI?N@ooG?U#!eOfZDm-=p{^`tf=0>n4(@QwI^Qt5!! zf57G~Nr0No&O~uG?4?_sb0LsMgFXi+0S56buZOQkdF^vuJ%F?(?2>$5D6W6Hxrjy zRWI^O=u@Yih|W@W;B$D+P^K986X5j?RVgkTSTC5VhbcJdjst&+VUOxXu7PBi)&aZ$ z6rOp`a=rW(qkq|XH8-%U#Hjr!Cvk_5k+RMziJp1%3CCdAxz$~6PCEKR$B4rr z3uh$IRd3!q@%9#yf|3ac(hBo~|HM2l+8n);*a0wqZu6Fr)7`I5VP?}XhHneC&`PB# zg-Gj;^tDFoRE(4CoOdm492ceuJ07JmE*B*@Wk`Xi)F%V~ z5Z&G=G%$R6(C17MqQ&}zTGg==Q3lAWj`0uN^|_gHN0?B}fsMN&;~XMpz4FN;??;l; zotB8|lRcZsBlb12%&=J;%LOBkd-W==#rDcnd*Knk=-cqBa4C%bZz%8|KwRn?|A2XP z^HOy;!N><9f9_^kYn*OUdf>ZGrs1Q9l82Ew?C*F-uZeX0e4EwTeYaNH6CR|C|(a})p8UTKeu8hq|-V?P!DOD28e^c_zv)ykt- zEqCZ0=F*=Uh*JDF1z>)EY~+Xqv%tS0agGG5HH>>Lc^+vjX#$2w;FQw#3%iAMQrAcE z*>M|2kt~Fu!@LWUd8o<+QG(g-P5~ zBeq-8Ccv9gjK^*ipx0|KA9Ggv2xvxXLj9jS0xURh`lk1s(aTtMwpj$S4mYnT1|35F zqtBwFX!gqd*N9aXyHT%>RY>|_PEJ%UG8KM}O#`Lt`A@mmFOHGL&~k{h$uByMKih_! z2j*3>D{^N5d%kLFOkKYos`&A$V(6}spi04Dc6$1uhYD{Sm5&UPKJNeR!S<8CAWvYR$JBpKmyn%<)G4e;4fiy>v;GT=oJ zg5qxgbh*u_VrtCHaehAk>G2MCSx@7ior(HaNU&9I)RwNc!G3r<{UnMDtf}32vyR<{ zrI0{y74_n4%!FB{(a9J4N7@nyWu9Ch8LM+q**BI@+4f!<1FI)(^j#QeVu zzb(eKJMzU=^(r!C931m0~_O`}IA83vS{{Qv~MUJ|XYxL$|*~5CS`o6_XB*ggMPU zJ}GR@lais;=xKrPL3z}xmKGv+)62W-=H(ywCuCK*vN#qqVRhd5_j9!2hlziw!L<=G zl_?t_bN6st^fx;C9&C79u_gA?5yw(2svBHU%7#o&O{eNI`IJ>=s)d_;)fujV-kCp= z!&$X%h^N})MU(Dmm}OAAdd%?YE$Fsfj+7*hJc%|mR8KJlX8Oq2woMDX5L1OK53_Ch zO`=L|r2NwMu6qh%av%UXcxbUGY@26>N<<jT%o=Ev3xOn@_DPK!+l!X&Wxkh!*?t_BNVe1yFXUFJK-KrEF*IC$D^fvu6T2BOSJ2#4 zeLA;oLD)>4k-6^bJCg`R;_)88+fvq`Y=0WBDf)EebzDExx;9gFqZL=jo{hzry~el3`MWKA%5U=~#p_n>?b@f|%C%g0>o2jU?1`GYEV+NZSVq1i ziZ+weTP=R@Bv_Qh*qDns(H?5(j6|kabo>24!6WnT~ ze1++=b@R3PTAJ*f5Nw`O_a^T6B-wQ1knqfAmh)ZG=O^EMS)CPkv)Ha*$J-4Q#I~#! zi^NFdALca$_Q7Tw=^mODVcw~pPL*VQs?F&eqpy0OI7R_+l=$sy%EeS?Ldp1m!)@e< z=%Jd_Hyxsp-Hl_roSlUvQ~bbh`x}N+NPrbpMs-K>FWx6zCS*9~L;;bM`qDa3!d)k7 zJjms0#*sUxw~DpABeAcu8d!klzUry=Kb9A)2aK2adaIuxwVyht96Lk)_6^?>sv|*aJrcybezs=YmT#}Wh@{yb(XV>8!RPzyyQNaf?L6^( zq~P^_pdWUBJc#zEf&Ff6FCo4~Z%8f(&VO{Tb09rxu`~+W3P>azCV6o;?~YC>ESEeJ zweUG}W&KEs_SJs`v zzJ18NE#CY3?|Y9S5m?Ss0!9C#qVFG>0y@rQvK)5#lb?RuJAp=4#67$n3>DKi1m3P< zvgh5*L$}-m5|)2k*$`ALC*p|BPX@@zAvKE<753PRgW%7Q8>3aHcQRaEqDa8(L!sQGtYLHw|LbM6wrxAtethQ0<%nZ_lOMkLYD z_YZ<7i)w)>Pgw!~d0P&P6J`f7m)-Hrh%751Rx$0qNrj;vemV@(k-P>{_KYvDz|(5a zXtrOi*YgYHCG%jNW3<2e%GZf2$-Jw5K;wVvETy)Pa1y&Z{KS`kDO0v(kvTWA6|3hs zU3X#(l27XWqpOxpUKtgY=l#q_US9onAL%Mai12rToUy67aI=7SM}3feRU$JPQW@Bc z-8!4b?jFzl2^^933W}S7cL{Tbyj(vW#@J8=tB2q4*kNAw;?KN|bY-PkEw?Celn8yl z7=qYsI~?A&E&)g;>CK0FR}*~+70>S2q@H;!HEsNs_N)Gky z65NUYa`LO#@@a-Dvu(*=C*QZIZX&)l?tnnf66&0~B0^tZPneh@>#A+LD&%q{=FNoF{A^9K5~RKO zIHJ;&6&}!XX#A*)!TF!1lII)0afM%nN*`(Hr=x&MTlu=5HXoDgh+F(p6t%yk;XS(q zzS@m_M*&C$50R`;_%XJ+-s--lihGS&F8;}KNJUJ$<(oea6OeS4fHqKH*^X|@reY0v~f%uO$Kuc;a7v&&pV^Z!J;S@KD|1KQ8 z8@qJJ-h+*Q{A**D{D%V%jJ}kqZ2G{zTtVj&ryrg@D*jQSn<|Pcy7{U9(#RGU)bBdp zPGAvbyFAh{AxMOHJxp21fB*Y01^$1hfH^~`>P!q=`p2e9P{{ytG B4qgBN literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/cwtsDiagram2.png b/tiered_vs._tierless_programming/img/cwtsDiagram2.png new file mode 100644 index 0000000000000000000000000000000000000000..fc45291a90ad6457576333ecd0bc6345254d46de GIT binary patch literal 60045 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 pxQ#!@|NHmbqq9|*dCCf-cg+UnmOe&_u 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𝔳4ZOo7OML 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®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Īx3fwiQpns-+|;B}E@_dp%n5;)$~z zCsS`M`I9~XB>k#hvGJgK=0Fx@x4bqCox1?)>IG8SDWKh??D(k`56?83k{|>>U!&sF zad12v$`N7x@#6Xa})XTKkYaUfK104^>8mwnN7wM%o zd!LRnKBA+evuaGBm9_DgyIKyXoV6WmbhjnpcgVWo*H)LwQ!i2gy08j>KXC+{h6XwQ zm)5#pUwyO)_5-af4Z!+hHjQEixHmBQ0u2q77#?V;xV~By2Fz+|YIr0h%)Ax@@c>8n z0Aw2;_4MD;jT{Q1cO-W)@`M?)}30PJdK(S?= zC{G)##~8K&xFUPaS#ZUk8Y(KNu*OLoXCmTYTKT#P-cPi$x7QqG> z4h;>>p3jntB8#BQn%o!E))x&kWzS1#kg>={PO9{ntQiBH+ek@Wh7U?>r<7CNAeto zP4Cs8 z2Wo_Y#87AXTa@+JsV02!&7cdQG%!K4c_u@Mz6NXXm4{-qKJ|A>9-x%;rm&_}(9Y*p z2tQ5uz$qOn2@~chlX_vq8*mKuudnQ@#1noO2X4EWkG}zbnWRA#ZBbBofw+;V!6Bifzdj-{yju(@oV*3)ITm)96buz#X1>;6Wry#5N>%fN*ZNWviP-hbUcpM) z+93a8a$X)4v*w3nUm#GQ`NguTeuwG48ydik*`9Bxo^STi232X}WY#4m&NRn>5l#ia z?T%q&jB)*fCs!Pp7;8)IA$svJaRsmnGXTo)C@3oC&g4EO{Wa76S2Az23=~gxlox$?lX&KO*u}LX6Xi)#yw>ML*2o7Toyn^5+Y)Vl(v3=ma6aoc?qu)fOhY+s^3hzs4 z%pm?JOyk`$t5*5@T)=Rx6F@mMU3_)6r%S?R6bMdKQ}piIwH>p@eRmQbF=}7G)-HiD z*H=9t(@=CC9iKr-)jZ0r+2@Z|KYV%sur**cUl3Sp{LdFR`?-K1tP8{ksZ*wxElql! zRYyjrj*BfXkg&+!Z+FF#m)S>9Zo#!){ralj=4Yp-sV^bnrntB<)4hE|#4Z&Qu&LR7kG=ELlgA~LH?s;kI&EecMAm}In4a*$pK|HP-O71~16e4#&zmbpu|;$Pgx8N5>qHw%(Z@JS5Kq ze9oE?=?R!gAFPQu4cWk05$fa;Grn%yk9^hSvL1CS6JBaJ^SLpWvtCVEubLb5+XbKB zB0)4^WhsF9$Wa9zqcnfgZ7NgR>IL7G!ECKPD~zWxwSxv$W{XMR?6e%r(!=qh5v6?a ziN`NF(8SGFyJGZk>*sOe)qtdSGgui-4|zkbH3vM^eMU*-jp**n+RGe7!U%4w z&n#cTLhBLC*(oL=r6M^Nr(p^)|M`}S?~(XIL{^V|uMfMwAYo!~G-p6wep{OuTzwK6 zQs#EHH?x!YP1zMt6dv12wvUit79&kA9R|Nyd|z%ugROlU=A+ALD87CzU2r1b21Uq-O! zjUrh1Bna!7O%@)8n5!%DA3Cc(2H<5PM%D1<>d%zBbfUxT7v>++d4hNqgIilxH>mu4 z$pr6YxG5qIrR!yvMMFn3pLkR>oz2<``5|f0rE>#FDnE z+z0*0C~d46ooAb#MjLS#;_155{Ltu3wC1w`JRPRDYcUtrv8(dwniM%xf^Y-;(ogc6 z^R5#`ZEz*H!H*F6hT7^^)o5ZynMbzXJ-}(_d)OT@e$tcX6(7h8e_#PEp1^ZT<*w6B zgTPx&e>%E7>%MET`tgnfJqks&UMh*!QxY>2>YEZcMC;~@7h0+Hdi|aN0LX%el1HP& zF7z+J$A-cK<09O`jQqa2sY^kG;-k3u);ux(B?u$jlA_+5fT*e4wtY6}+M_xYx_8sNjZZzZex%_uX$0 zfP->wnqvF!*6i>*q%~S8y88F~#ybyzEHrj(;|Clpk=~zDC(06c0r;LfNwX*J!#!Y~ z0+~CbcE0;<(D6nrWAv&P%6a~706}GfbB}SMpsqx^UtV^v_t)ASS1;TjHcPbKHW2C? z4>1q~f=xV#6qFRnZl;nOlvvd#Kq+YMTWVAdib1RYizO_l(}q|388w0Ds`l9ALUe#w zCjp7LH&?9ni|y1ivN?2x&tOXM_?|nZ)yx7-UCMs3##TFRyCDP?7>dPRd1Jy3e{r;) z6oQPsV+s0+o)_ET(5E1ai_71pKgZe!_#CJ3nW<0=g<>yOOSdCX5dz@f~K z)_Os6yT(IO3wMqcA>@5Y?(Gnviu!=qm%4(EeZWClUOf+Swg1EWD&!R_=g=yd`FBSbu)oOn0c8=lv4C>d7sIb#2-=EJ;z zLAS|r-9|gm>b`&f-UD+$Jb+8E4jQHnrpdRH?Xe;-Ha6UnYM@fcb78sfO>+E>Y+`rU)sJk(Y_Z*(7I)1sFQkhAF7;j@WtBeXl1paENbk-Ta%ZAz!{_c3kpeKnulq z_*hBo^4ppF_9#6J$&OdNn6pa+O0;w=r5Hy9ip)VG$>vkNZm$r>ro*r$DQdVfydINX zTu~-~JT-TJYoB&0W2=MK|7dC#q%CZEsq<+5Z^m*WR8N~Kc*RAJq*5Yr1%NcaE86l( zIhaM`A}DR|U{aj8w2u*(M7)>61B=M0X8$mltq7q`<ZMdBdc9 zD(MG%rCyH%=pl$G+DzpVe=)n~6FA}!;Fa!wTr*t{q4}Pq^0%@sp+l{3FC|$&Mc=qKuKV^3wg)e+~%Yg=BhU%P$mM zKV{vow5<$tsIz3>F6gA+YfFKZII3@OUfxF;;P9$w;FK=Vs!Td{E&nOV5FjFv@b$g< zN89Ox0xs0|ak%lG3ytvgfl3N%CT)#CJhJ(@Q@wG2C@sdosqfC0uO}+uCv#zIuqi>} zNH76)L4OHXF7%h`WPv))?hjXW3EKoX^_S&pWl}~r_g7f1DE^`#OV;WqdYk6p;q?qC z3XQXa`-YNBKpnAW={?<@S_dT61>A`x7eET>0bJeSmxnhFe_~)9pz6TlJ^Q4k7{0QC z6w&2zs#|N94sLB(pbd>J+YQjrqU_DqD8fVuFu}iA{w@~*mXyV!qt*yQg?drc>({U4 zLeU86v?~lgTm7J^)_3^XNDnANF`%{brRqg%)x)CIzg-PxVD)}V6$mxvAl-p&FFRwf zzWSDNO1^Cj$|Xa*wVib2o329jvc=csU`c|#2Qc0u`6LDq&?E&?&y+nlMk4u>SMPZS zu17yZi-}xdEcpie)UKLdPpD44UHk? zbFs$FaNYm;Rr|B$a7Fh!1Vlui^8@3Xm`b3i$bsbsshv6TtaS0HP`67cg@D2*BDgPJ zprf5?R2T?;^acH6Zw{tnAs}JkG^MW{4~spRR|WlpT{UmI#k`-$>!_FUv~GL-TQ!$) z2UN3IZVH5vYS`j0KxU1##%3ZBSZ=!LZb%caMhoSE@^cyP!ucQC^3CKS@Fa^LK6zDM zOYPq#W8dN= zdMqIdV=8xDXMiBc>*&1wVm;PH)0u{l9>=aaT~fs`c0VtCVc4DJLQj8 zzI?ecoXZL81pr|6gLz}VHIi>54{Ih_g03gkF6#=BQBjFKJ#rvj7`EZOKg&0Wy$wVl z$eU*ANIVDL;CH(}3c_DG#N!YxfVzQC90sl(S{*bOIPE-DEW~U{ zqWhRF#FZgNz`|JY+RP3wmneJ)+*IJB^SG75i*{jHYx_n)@YTnRCeMa zAlN$w>QF`M5kxdRK(VELB)MYijlUs@h;=<|z1(3XSL_mvMpwxaNH7fvlsNQ;2Ss@6 z)IK>M@sU=xZt$W$ow&1yn`BU~UgONos`!opWeefRT5oPI{^*3JE=g#JVhCUXk zYy?V2UDuDg4+{rau!ncEAn!VVJhS3tYAqalk3)cuk6$omJRkF$rh_<$$I6ju;v^o- zRGY^@r&W&Idy9-(PahcgNxa3cgPrylh=)N(-bP+93n%xA$U!I|(c2A)V2*xxGCtv7 zO|DXu-@)^!{zMbr7c;4{maJd-ujvqP0l!6X)Y)X+)q`=*TL9USi8<=!X_@t91JQDz z#EI*n8es@ief$w@%?^$GtCIoAc7R6w4Oex~anpTIGL!;MRISn)o#^%7o<)U^GQyXE zI^v~p-|T)<<*5~r(VoP188P1nSfjNUc8(Wze&#JlRA&rFB2 zIDx(>=)N;9HP--Icbg!b-{kw_7xO#A(2AF>99F*Cxwcak7p|v%jSe8?oe10rc`K{; zYs0xOfe^@8+zbRA7CxsODWrn#^<1ymsrDLZ9jHg0B(zt+EcV5PhfAGH~Rc>5OiL7U2)864_#SZ zH3y_D_>~+BXw&1$PD$!u`WfJhcXQ)R!i7RHg3@^{6<}>(s`H;V5S(cPq9u=d%XO>W zW814PpY+UEr6_b`Ap6hW|I!sPY4`7hQJDyn@5CIY(Giq<36siaa|+2KSQ*{DB$b${R`eur^>ZJ?a5&NrxR?{c55D z2v6hLcQ|T0ysF;?S%|#tYB26w0=IJHfVaR@ouBVea=2ZNHOOs%kuG`(#+kU%^ zL@*B#;pXe$U+k?~yulNHWCCWM+4cEhBnq*1=FHo9Dpt2IOIYMQW)XtP{g3c;fKaKo z53686aGh}tai6ZW*YC}KQpcuWtJICQ|D*wCNF)a$^$Yy`7L!WGn+R4yHQ8tJ=LKT2G;`9uX-NRN(aTfy8ESt>r6D26H zyj8zGjGUxh!N`dw0f&K3Vk~lFKbe-9s%re+^d~8WR5oUi=yv+kfsoAf*CJ`k7Kd!8s)Fb_ia1;cA)0MG7(sFP zg=dg&l7GE8*aF;@UdF$C01yaR9sWYlFMnT$e*w@a4fxKOh^d9#-;c!MTg1h4`T7|9 z&m}ef!&M|8T}FZFVyU={MmhI&jc#cW@ELE{-NJWv7A=$v+8S~oi~H7g%AmhR2RU`- z4+?aIZ^tKQ}7j(^O8V z@)`t7Cmu#Ml%A_#>f*EFpkQH5KET$`uP8U&z#s8?4IZjm#M#yj25D2Y9JFH)OWMAI zj`2EfJcTEbhx}623Emn}lWWreI32Jguc%t&;gE-@jtmsgA&mqG>Ny)+4C%VCWUjp! zQPzFCh=D$`A^2~uBuvE97DZ^8{g2xO0gk*`6$a-&!V@b#aNAkyM0fwm(M~Z{{u3eH z#Z#Sn?_M^Xao-<+H);5cvTYk*s}(~h;BQsufD^Vz=G>@pxVk4)|Cejz^?I@e>E0x- zdh}QG$}g&f)5`hFwv<5-2>87Er11avL`E-QIoF@HmV@_aYxfTW_@7uSkp6tt?)#n` zaJ{&MxH&7K_wBe04|t`bx?LXz|6Sfj zjPY9cEwAOX(SJHGTt9B$Q(}}i@ml%ovpIzKx+i!jg+EMw=oW_&b^M^1jz_NaKKhaPqXW=KIACC^I3KY-S^GFTZA z@?;8h*vfa(n+ z$*0K2Jij%X&X7$t=i8;LA$@Dx5{V)0OymF4#DhRE3~t7FFR1UK{~D|LS&EDI$__6Z zNP?uzEJY?Alfmw{rPx5ug*e}$ffn^=9#gX3`@C#M)I0cfgJCB^aL50C;f@SOCpmhr ziG?3MY-$)`dk9W~59NI2rboLEoao8-lwUoPo46SgQYu+loBtx60fwdbf3`>m_a>Jv zz&ygkb=oUsoL%k|yFZ%BqZ;G<3bm{eyMyn&URbd2(Mgu7;ZFh3ShFt)@$gKBIjE^6 zCM#aB!X9h_cFs(l<%xnze^#Q4w2X`b5a1A1B;`5f9R%A!68Ninp`GvwagscoIBB#mM z*T=)&Tj2SNBA|i=KWwP$0WF!{=WOqp*h|0DlztN|U=;zk%HY><1bOT2Wts4wdDlK7 z{Gt4aI=h*~9gV@a+~3w$kMho|7JL3I25{R?_f?TrOJrRuO}^>x_MN<9_0ef;v^a1q!E{Q1M$FJ zt!HOEa!;$XNDQu&UFWl#=JI=P08*KH;{Y}!fVPTCK*v^++!t`W8KCg9(LGx))iVm` z44d?kT(uu~;;;yi^liPD9_xH;c?bxA4iNhH1WrLJg9ciV=6}{#IRdry(yIFI_V-;X zJR+JLcxG*_GT^4{WN$_TjP%vWvL}TV>;V<0<&M!$rn2qTN-@`~ly~urIi8X!%%cV^ zzPcVUB)l>pIGxY$H2-~!MU{$)RaDit3TyE9qW_h$<1N$TYMdCy@#e6HcjNDtt7kc0 z8zh2WM}_lEUK&r}1(4!i@y2<%dK;nf|5|K)Ny_g~ZlLz7ZowNQsdZ^Q;YrqV@2*Q= zT;1!{?}eX3d%#`3gt#zyC))xT(?`_(1!PY_;37`*>yq#^R(o|t!1*%r#bGxkU^pC& znBBly(*-Hcg8dM8Pxv;-g_QBCUT9%zc*A5q0z!Pkw!4#j9dRX`Aws$rrtpqG)O;#W z0>O`}j+ycQY2nPHnmW@kE)W8SN=PY?hy*goCSeS+MuLNkjx1smMF@%tT5_5Q0j7y8 zU40f$fo6x#$v2p~&Spg=@QnfK!Sn{&@SH}`z!yU+VP zzvs(eQM~(8qCOn$l7y(s!qS$P;1`^#F|SBHZfM$d>dytU6_}1ypfnc%wV7_4dr{~( zT|c8}zK^8Y+}}jWyA=O+2>j<&$$3A69D~V|4XnJk%E+m*Xj{t)!P%w*BH}SyntgKD zB@*Y>-Y_IMm_g+XY#WQtI&amxOy#B@C#=AH$QYK_0z!SS=Jk8vhZUv zJpP72&>W+14})~NH55ubl1XSYx3%A z7{GV#q9=PwypR7wM0BDvLH36vxc;!@c>mF9OIhbf;%)-8^_pBheJB_G;Jko^Fa7|S z`^RR+61mJD-xwy%*2#G6UhjyGO~ZOKIKEK#i_|n4NbO)q)nCziRw8idGOZr8 zx6WhaTL)CuNFJ8X?FN;b|7|_=&1?elhtv_~+(iJ@3t(Z{{35cPB2=x=Ck)Mjey&y@ zFrH06@qAp!XI2>vnx{D*_5&%-W4A*egA+2)_yq=20A9qj9)=(mBGGf8DVHUU&CAHl zoZjJi!-Kj#DyCn;%JQ+dzPKsVTP^~;(UwzEsQ%e-_!xu_( z3RRN*yMNys0^p3rW{nluUipWGrqc!!>ZFw7?OX>4NU@;#(ZS0FN6-oE2vX-S`#Lbs zcR2>%E>$y` zJzDZxOk+4MVhA}4z_OO$sw#N$*Y{)?qzEv%Su>oCNM4XM zAN8Rx*Jji8P?c7Gs52aTg}HmQA1|D9q2tA;k7FXYTHUelBhWVbVAE!!u}*+`$+YU$ z*EH`!qp}Qzj;RIDK9(?c=TA{s2Jx>M@dqcl-cGb0et!Lw_3L7j{^9PHjl#~Z?39PA zIP#{Rw)9m)Qw+*O0k3y`!0%wW-z7b6qx3SCNMnA|{B}RYFwLiS4LqRNb#BUMk!wil zLS`6WJZ9Iz=Y_IlGzw85^2ZKYKext-kzsB1P3g}fo3ECk?BwQm8_G2ZjMZe6=a$j> zq{nu~*Hb^*g^R}hbCw#n+cXLI2j5tBV6MGPKv#D@{sPbVMrx+MAvb%98Hdvo` zyyh8G&Ourlsw^qf6Rq}U`c@TL3&$d(d<%}Vf{IlJSIx*|roaIw-NjI=XnXA{$1}>( zoAM52GU$?Mx|JvF1ub&h=D-T!l0ew(Y1~LsD*b;NBiB5PaTre(>cYqsm)mC%riO0W zoTt{nk?#kyS?lamc-7bDHKAJ^CM_N>M?t=DR|7mu9cG9&Ig%O8dI0 z^8I`1;N~T^xa&g|W{w7r3?$i=J1?oSzZbWK5k_sZ_4eG*EGC`(EI_L*lCJ6DeAc7t z+RnUSkrvzzmT>e-gs`7^!~Kifa8K75CGT>~o^7>$dIJ%ji@^rF7bug#IhV5gMn+&1 zNA|t|6ff5(0DcLO_qKip+VI-d`tt%|JK{iWT*E<8+E>@Pz7Ohu)xO||9NXf*|IogB Iz7c8v0~AnF#sB~S literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/iTaskTempRemote.png b/tiered_vs._tierless_programming/img/iTaskTempRemote.png new file mode 100644 index 0000000000000000000000000000000000000000..850666676d9a868b0c884d4d75fc91dc374e881d GIT binary patch literal 43217 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 literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/prss.jpg b/tiered_vs._tierless_programming/img/prss.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0450c5327b8b40101a118bc3277fc23afb61459b GIT binary patch literal 186450 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 z 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 z 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

=A->Uf& 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 literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/readTempTask.png b/tiered_vs._tierless_programming/img/readTempTask.png new file mode 100644 index 0000000000000000000000000000000000000000..0e813c3a30e8bf551473bd2969a67130144dcb00 GIT binary patch literal 5261 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 Ks#TE3VgCd2{=d-x literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/sensordata.png b/tiered_vs._tierless_programming/img/sensordata.png new file mode 100644 index 0000000000000000000000000000000000000000..cec7e9383420411d5bf19b46b328394e491c8486 GIT binary patch literal 29845 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›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 literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/simpleTempSensor.png b/tiered_vs._tierless_programming/img/simpleTempSensor.png new file mode 100644 index 0000000000000000000000000000000000000000..60359c8e41ac73a417a4e2678f29f87807800bed GIT binary patch literal 11299 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 literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/todolist3.png b/tiered_vs._tierless_programming/img/todolist3.png new file mode 100644 index 0000000000000000000000000000000000000000..18debe1d01f46874e26e2d3748a81f64648b6f3f GIT binary patch literal 25030 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 literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/todolist4.png b/tiered_vs._tierless_programming/img/todolist4.png new file mode 100644 index 0000000000000000000000000000000000000000..29210ad7a6b28faa914453ae71e5d196f6284f7a GIT binary patch literal 29525 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 Q6yzr%Dl1YYr04g)0Ck`XZ~y=R literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/todolist5.png b/tiered_vs._tierless_programming/img/todolist5.png new file mode 100644 index 0000000000000000000000000000000000000000..696a57b6e3f30692d75d7da310634581034c3bff GIT binary patch literal 31242 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 V_N{>*cLoD{FDfHaF7(Oo{{T;QZtDO5 literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/todolist6.png b/tiered_vs._tierless_programming/img/todolist6.png new file mode 100644 index 0000000000000000000000000000000000000000..3aa7cbac3c459eaa6ba4373e0096fa936f5837f1 GIT binary patch literal 25825 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 literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/todolist7.png b/tiered_vs._tierless_programming/img/todolist7.png new file mode 100644 index 0000000000000000000000000000000000000000..c7098763e0492b24cd109a725754e35f6261930a GIT binary patch literal 31924 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
    sD3_A zR1tOp#^PMp0*|MAg?a`DCC#d4=Lwg^we_Xvl-}XZRU1Xki(co07_Dhpk-gGOLtaK& zQ^vgw2CfEXtPO_TY)TmSn8?)*`jr{k7ubFl-Ewdt(`dakl%C5nQAT6gezHsMlLr@{ z1~y4HhGjU6W#hzVuR6RR9LQ7gkuWd0%-~2zyNatCQRjb06ueH(QO-v{SecM<8GWsV zH9t3jgm|4X5rf;d?UkG9y{48#-fG#*Fklu|;N7nF$y1Bh&^J;WYjNfs(zW(}WNPCu zu~l<778bJkcI#K0+dE%UjkQn8x>xbF@rrHQ3b#>BrUlO2l)r<;kKkqgT={%_rytIMWwm90nA)`Hf#pErVACwZZsA_>faKHS`17Vh_JuLx z&vlv)$3uqpIX{_1LtEQw_=CBF=k=kt?$uf%JyXC~>AE^$!Grs@2)aGfn9L`iz&-9P z&0ihSJ>%9%5MAk%C*=M=e&LLA+xl0O-nkj?->>y@2@#!l^m&yl{T3TDPxuj{(fahj zEnLJRu1?AS{LP&!imfWj3j-`R#~^tQ@88Ed_7Zxt3keDFLq1dhq0Q5l0!?bGqq8;$aaBd7#{`f9!aR`228AyTZqZx96B8 z>FUcBP`!;)c6d>cyR9D?10GoYiMtsSx7JNIcbbx#bapu|HXw34f$6pM#W!4=bVKe= zjE%I5Yh6FCMEm?z6=^)GP6ZocW5X`l=D3q+$Z17RY5&J-3}M%85$w!1Dds1JCqtu= zwAenkCskvf5zIZX0i>4suuPY2dU>+1#V?(WUn(pb6^$~WIP>hPcei4~uq}G7C+i}H zbvawu_+VRQ@n&kNEcKh0@5M@tr*`c3`BfI<0?$SiooRF#yz~KWWBSTP@NFZ%zR%6g z^;GKy%gTYHl&WrAdEw~9%sl#oFWx>x_@Twtk|`VVh=t2b^Nv#SeD(Ze440TlbVvDo zlW)qQn_3%5+#}VQ(?@T7vQqeJYMl9$N040Iuc6*QS7*l6q@3$Mv&(gZlR3!Eif2;a z;_EvcI?H%d$S1S6t+3OqvzizvE9`Km)N zB1!O&Y3&7M>6wk&S4vNw_r9fKhy@To$fbX{p2NvtYYkcETT;6k%~BBD!~nB!Q)5pL zj7rGq!=q(abY_k}YJW<7CgJ}8g^bIrrjo^$tNytp9Ax2lL@3FyYLu1`wy3K}NjPD$ zI0Ra%DQoDnF!^IV^BD251z*T$)zOzC?)V4s$iEtD3Gt1S8GGU?(a@nu0`_Y+iqO{f zUf9Db{;S)`oPYy#2_O5{PcC`b##wL3j@_%9*_9YkH&GwUh#TrSh>N_Kx4~djrL;oI z_cs_{Qjsl^u8jMr-g|D$&X=*QDgW~9h|+K#{X8xlYP?^6Ia;poe~5*S|5P~o_vA{!RAZZPs$<$ za@PwN9n~Sjj@`o_9}%D2f59q&@bLb?Mm)8mF?|d`z#}ybMik@R^LpSb)*E5FdHA3vm&-}6+~YxQ6+#l1nCW@qp~^2qTb!?~g< zJ>7c(Vf~!8*H)g>Pv=rnRc%aj%F4axSkL!VRt3;D0ilC%n-`z5A;+} zr49gYvy)yODOll>N-XCUlOYm+j z!2{Tqz!6Z0gYBK#>lF2=w%g4ep=KDlUNK6o52o9+7D$V=YxXEH1&1>4YP;-Lf5dLJ z7Gp-e@M**mnx^CiMf=xFxgA&d4Vqoxw*0;F|Kq=cYAxHm(`MH7vakOmk0J*Z6j0Yq ztRv%)9i@bixHw0`cT*{;sL1;HwaUQwhT~#C`I9@rV6=Su?OCBK1T6l;Ljv&4@eAv#9{5PQ8`t#rM|>%D|3V= z(y5XTp}^#wT*xN#RU_1|)8edCC9hK_f1FnH%dD%Z;UGU4PylY+5P`9^wM}tK9PV&q zYgcD{E`;FoUd=lt`ow|jEzDE*bVqhycB1~O5?TUaW{7iRF%7*W=c&|!NZ^FjI4&4Z z5(zKuG;&P#B>$32ZV+H~`q1(G)r zE0D~Hh~iHDYa%8v0g8b!kab>ECV-pyk~8R$35?nNkg)qdxynw!7U0!#p=sZLGu!mS zabcY@K>IJhzycjm-|dtcj`Ol!FTlk2s)wOxqnEQ=qqYB`Oj^Pp{uP+a2skdh?icwV zvH~yc`t;_fT@}U=&)7@$P~O4(69mf-q!ppp0?S4JwY^k;as7XHS!`fepeHbOVsaAW z%zXptZ@NO50$}ITUGcO1H)1$o#1fOy28jPA>ns#VYpL!#8~tk{AOVUF$s=gS1imcb z{tZN+d-lZ7)_+Y9_6s#fhRcQKpJF?)fbJrY0q=igA#(Z`{w>&QTj9S<2_4YgM=}mz zU%rSJR|B|2_}HU^$$zsv?9i$RXL}36!0lO};?CG$J~hWT^`LRw%0A(d`wyi1?r&t) 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 literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/img/web_iot.png b/tiered_vs._tierless_programming/img/web_iot.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7140b1df755b00a43ef9c1e05080e32e8a49e7 GIT binary patch literal 32816 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 literal 0 HcmV?d00001 diff --git a/tiered_vs._tierless_programming/smart_campus.tex b/tiered_vs._tierless_programming/smart_campus.tex index e422e1e..0db7732 100644 --- a/tiered_vs._tierless_programming/smart_campus.tex +++ b/tiered_vs._tierless_programming/smart_campus.tex @@ -6,7 +6,1211 @@ }{} \mychapter{chp:smart_campus}{Smart campus application} -IOT2020/TIOT papers +%\title{Could Tierless Languages Reduce IoT Development Grief?} + +\begin{chapterabstract} + \Gls{IOT} software is notoriously complex, conventionally comprising multiple tiers. + The 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. + + 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. + %, with two targeting microcontrollers and two targeting supersensors. + \begin{enumerate*} + \item We show that tierless languages have the potential to significantly reduce the development effort for \gls{IOT} systems, requiring 70\% less code than the tiered implementations. Careful analysis attributes this code reduction to reduced interoperation (e.g.\ two \glspl{EDSL} and one paradigm versus seven languages and two paradigms), automatically generated distributed communication, and powerful \gls{IOT} programming abstractions. + \item We show that tierless languages have the potential to significantly improve the reliability of \gls{IOT} systems, describing how \gls{CLEAN}\slash\gls{ITASK}/\gls{MTASK} maintains type safety, provides higher order failure management, and simplifies maintainability. + \item We report the first comparison of a tierless \gls{IOT} codebase for resource-rich sensor nodes with one for resource-constrained sensor nodes. The comparison shows that they have similar code size (within 7\%), and functional structure. + \item We present the first comparison of two tierless \gls{IOT} languages, one for resource-rich sensor nodes, and the other for resource-constrained sensor nodes. + \end{enumerate*} +\end{chapterabstract} + +\section{Introduction}% +\label{sec_t4t:Intro} + +Conventional \gls{IOT} software stacks are notoriously complex and pose very significant software development, reliability, and maintenance challenges. \Gls{IOT} software architectures typically comprise multiple components organised in four or more tiers or layers~\cite{sethi2017internet,Ravulavaru18,Alphonsa20}. This is due to the highly distributed nature of typical \gls{IOT} applications that must read sensor data from end points (the \emph{perception} layer), aggregate and select the data and communicate over a network (the \emph{network} layer), store the data in a database and analyse it (the \emph{application} layer) and display views of the data, commonly on web pages (the \emph{presentation} layer). + +Conventional \gls{IOT} software architectures require the development of separate programs in various programming languages for each of the components/tiers in the stack. This is modular, but a significant burden for developers, and some key challenges are as follows. +\begin{enumerate*} + \item Interoperating components in multiple languages and paradigms increases the developer's cognitive load who must simultaneously think in multiple languages and paradigms, i.e.\ manage significant semantic friction. + \item The developer must correctly interoperate the components, e.g.\ adhere to the \gls{API} or communication protocols between components. + \item To ensure correctness the developer must maintain type safety across a range of very different languages and diverse type systems. + \item The developer must deal with the potentially diverse failure modes of each component, and of component interoperations. +\end{enumerate*} + +A radical alternative development paradigm uses a single \emph{tierless} language that synthesizes all components/tiers in the software stack. There are established \emph{tierless} languages for web stacks, e.g.\ Links~\cite{cooper2006links} or Hop~\cite{serrano2006hop}. +In a tierless language the developer writes the application as a single program. The code for different tiers is simultaneously checked by the compiler, and compiled to the required component languages. For example, Links compiles to HTML and JavaScript for the web client and to SQL on the server to interact with the database system. Tierless languages for \gls{IOT} stacks are more recent and less common, examples include +Potato~\cite{troyer_building_2018} and \gls{CLEAN} with \gls{ITASK}\slash\gls{MTASK}~\cite{lubbers_interpreting_2019}. + +\Gls{IOT} sensor nodes may be microcontrollers with very limited compute resources, or supersensors: resource-rich single board computers like a Raspberry Pi. A tierless language may target either class of sensor node, and microcontrollers are the more demanding target due to the limited resources, e.g.\ small memory, executing on bare metal etc. + +Potentially a tierless language both reduces the development effort and improves correctness as correct interoperation and communication is automatically generated by the compiler. A tierless language may, however, introduce other problems. How expressive is the language? That is, can it readily express the required functionality? How maintainable is the software? Is the generated code efficient in terms of time, space, and power? + + +This paper reports a systematic comparative evaluation of two tierless language technologies for \gls{IOT} stacks: one targeting resource-constrained microcontrollers, and the other resource-rich supersensors. The basis of the comparison is four implementations of a typical smart campus \gls{IOT} stack~\cite{hentschel_supersensors:_2016}. Two implementations are conventional tiered \gls{PYTHON}-based stacks: \gls{PRS} and \gls{PWS}. The other two implementations are tierless: \gls{CRS} and \gls{CWS}. Our work makes the following research contributions, and the key results are summarised, discussed, and quantified in \cref{sec_t4t:Conclusion}. + +\begin{description} + \item[C1] We show that \emph{tierless languages have the potential to significantly reduce the development effort for \gls{IOT} systems}. + We systematically compare code size (\gls{SLOC}) of the four smart campus implementations as a measure of development effort and maintainability~\cite{alpernaswonderful,rosenberg1997some}. + The tierless implementations require 70\% less code than the tiered implementations. We analyse the codebases to attribute the code reduction to three factors. + \begin{enumerate*} + \item Tierless languages benefit from reduced interoperation, requiring far fewer languages, paradigms and source code files e.g.\ \gls{CWS} uses two languages, one paradigm and three source code files where \gls{PWS} uses seven languages, two paradigms and 35 source code files + %\jscomment{check out \url{https://editorsmanual.com/articles/numerals-vs-words-for-numbers/} - do we agree with this?} + (\cref{table_t4t:multi,table_t4t:languages,table_t4t:paradigms}). + \item Tierless languages benefit from automatically synthesized, and hence correct, communication between components that may be distributed. + \item Tierless languages benefit from high-level programming abstractions like compositional and higher-order task combinators (\cref{sec_t4t:ProgrammingComparison}). + \end{enumerate*} + + \item[C2] We show that \emph{tierless languages have the potential to significantly improve the reliability of \gls{IOT} systems}. We demonstrate how tierless languages preserve type safety, improve maintainability and provide high-level failure management. For example, we illustrate a loss of type safety in \gls{PRS}. We also critique current tool and community support (\cref{sec_t4t:Discussion}). + + \item[C3] We report \emph{the first comparison of a tierless \gls{IOT} codebase for resource-rich sensor nodes with one for resource-constrained sensor nodes}. The tierless smart campus implementations have a very similar code size (within 7\%), as do the tiered implementations. This suggests that the development and maintenance effort of simple tierless \gls{IOT} systems for resource-constrained and for resource-rich sensor nodes is similar, as it is for tiered technologies. The percentages of code required to implement each \gls{IOT} functionality in the tierless \gls{CLEAN} implementations is very similar, as it is in the tiered \gls{PYTHON} implementations. This suggests that the code for resource-constrained and resource-rich sensor nodes is broadly similar in tierless technologies, as in tiered technologies (\cref{sec_t4t:resourcerich}) + + \item[C4] \emph{We present the first comparison of two tierless \gls{IOT} languages, one designed for resource-constrained sensor nodes (\gls{CLEAN} with \gls{ITASK} and \gls{MTASK}), and the other for resource-rich sensor nodes (\gls{CLEAN} with \gls{ITASK}).} + We show that the bare metal execution environment enforces some restrictions on \gls{MTASK} although they remain high level. Moreover, the environment conveys some advantages, e.g.\ better control over timing (\cref{sec_t4t:ComparingTierless}). +\end{description} + +The current work extends~\cite{lubbers_tiered_2020} as follows. Contributions C3 and C4 are entirely new, and C1 is enhanced by being based on the analysis of four rather than two languages and implementations. + +\section{Background and related work}% +\label{sec_t4t:Background} + +\subsection{\texorpdfstring{\Acrlong{UOG}}{University of Glasgow} smart campus}% +\label{sec_t4t:UoGSmartCampus} +% Jeremy +The \gls{UOG} is partway through a ten-year campus +upgrade programme, and a key goal is to embed pervasive sensing infrastructure into +the new physical fabric to form a \emph{smart campus} environment. +As a prototyping exercise, we use modest commodity +sensor nodes (i.e.\ Raspberry Pis) and low-cost, low-precision sensors +for indoor environmental monitoring. + +We have deployed sensor nodes into 12 rooms in two buildings. The \gls{IOT} system has an online data store, providing live +access to sensor data through a RESTful \gls{API}. +This allows campus stakeholders to add functionality at a business layer above the layers that we consider here. To date, +simple apps have been developed including room temperature +monitors and campus utilization maps~\cite{hentschel_supersensors:_2016}. +A longitudinal study of sensor accuracy has also been +conducted~\cite{harth_predictive_2018}. + +\subsection{\texorpdfstring{\Gls{IOT}}{IoT} applications}% +\label{sec_t4t:Stacks} + +Web applications are necessarily complex distributed systems, with client browsers interacting with a remote webserver and data store. Typical \gls{IOT} applications +are even more complex as they combine a web application with a second distributed system of sensor and actuator nodes that collect and aggregate data, operate on it, and communicate with the server. + +Both web and \gls{IOT} applications are commonly structured into tiers, e.g.\ the classical four-tier Linux, Apache, MySQL and PHP (LAMP) stack. +\Gls{IOT} stacks typically have more tiers than webapps, with the number depending on the complexity of the application~\cite{sethi2017internet}. While other tiers, like the business layer~\cite{muccini2018iot} may be added above them, the focus of our study is on programming the lower four tiers of the \gls{PRS}, \gls{CRS}, \gls{PWS} and \gls{CWS} stacks, as illustrated in \cref{fig_t4t:iot_arch}. + +\begin{landscape} + \begin{figure}[ht] + \includegraphics[width=\linewidth]{arch} + \caption{% + \gls{PRS} and \gls{PWS} (left) together with \gls{CRS} and \gls{PRS} (right) mapped to the four-tier \gls{IOT} architecture. + Every box is the diagram denotes a source file or base. + Bold blue text describes the language or technology used in that source. + The network and perception layer are unique to the specific implementation, where the application and presentation layers are shared between implementations. + }% + \label{fig_t4t:iot_arch} + \end{figure} +\end{landscape} +% +\begin{enumerate} + + \item Perception Layer {--} collects the data, interacts with the environment, and consists of devices using light, sound, motion, air quality and temperature sensors. + \item Network Layer {--} replays the communication messages between the sensor nodes and the server through protocols such as \gls{MQTT}. + + \item Application Layer {--} acts as the interface between the presentation layer and the perception layer, storing and processing the data. + + \item Presentation Layer {--} utilises web components as the interface between the human and devices where application services are provided. + +\end{enumerate} + + +\subsection{The benefits and challenges of developing tiered \texorpdfstring{\gls{IOT}}{IoT} stacks} + +Using multiple tiers to +structure complex software is a common software engineering practice that provides significant architectural benefits for \gls{IOT} and other software. The tiered \gls{PYTHON} \gls{PRS} and \gls{PWS} stacks exhibit these benefits. +\begin{enumerate} + + \item Modularity: tiers allow a system to be structured as a set of components with clearly defined functionality. They can be implemented independently, and may be interchanged with other components that have similar functionality~\cite{maccormack2007impact}. In \gls{PRS} and \gls{PWS}, for example, a different NoSQL DBMS could relatively easily be substituted for {MongoDB} + + \item Abstraction: the hierarchical composition of components in the stack abstracts the view of the system as a whole. Enough detail is provided to understand the roles of each layer and how the components relate to one another~\cite{belle2013layered}. \Cref{fig_t4t:iot_arch} illustrates the abstraction of \gls{PRS} and \gls{PWS} into four tiers. + + \item Cohesion: well-defined boundaries ensure each tier contains functionality directly related to the task of the component~\cite{lee2001component}. The tiers in \gls{PRS} and \gls{PWS} contain all the functionality associated with perception, networking, application and presentation respectively. + +\end{enumerate} + +However, a tiered architecture poses significant challenges for developers of \gls{IOT} and other software. The tiered \gls{PYTHON} \gls{PRS} and \gls{PWS} stacks exhibit these challenges, and we analyse these in detail later in the paper. + +\begin{enumerate} + + \item Polyglot Development {--} the developer must be fluent in all the languages and components in the stack, known as being a full stack developer for webapps~\cite{mazzei2018full}. That is, the developer must correctly use multiple languages that have different paradigms, i.e.\ manage significant \emph{semantic friction}~\cite{ireland2009classification}. For example the \gls{PWS} developer must integrate components written in seven languages with two paradigms (\cref{sec_t4t:interoperation}). + + \item Correct Interoperation {--} the developer must adhere to the \gls{API} or communication protocols between components. \Cref{sec_t4t:codesize,sec_t4t:resourcerich} show that communication requires some 17\% of \gls{PRS} and \gls{PWS} code, so around 100 \gls{SLOC}. \Cref{sec_t4t:Communication} discusses the complexity of writing this distributed communication code. + + \item Maintaining Type Safety {--} is a key element of the semantic friction encountered in multi-language stacks, and crucial for correctness. The developer must maintain type safety across a range of very different languages and diverse type systems, with minimal tool support. We show an example where \gls{PRS} loses type safety over the network layer (\Cref{sec_t4t:typesafety}). + + + \item Managing multiple failure modes {--} different components may have different failure modes, and these must be coordinated. \Cref{sec_t4t:NetworkManagement} outlines how \gls{PRS} and \gls{PWS} use heartbeats to manage failures. +\end{enumerate} + + +Beyond \gls{PRS} and \gls{PWS} the challenges of tiered polyglot software development are evidenced in real world studies. As recent examples, a study of GitHub open source projects found an average of five different languages in each project, with many using tiered architectures~\cite{mayer2017multi}. +An earlier empirical study of GitHub shows that using more languages to implement a project has a significant effect on project quality, since it increases defects~\cite{kochhar2016large}. +A study of \gls{IOT} stack developers found that interoperation poses a real challenge, that microservices blur the abstraction between tiers, and that both testing and scaling \gls{IOT} applications to more devices are hard~\cite{motta2018challenges}. + +One way of minimising the challenges of developing tiered polyglot \gls{IOT} software is to standardise and reuse components. This approach has been hugely successful for web stacks, e.g.\ browser standards. The W3C +Web of Things aims to facilitate re-use by providing standardised metadata and other re-usable technological \gls{IOT} building blocks~\cite{guinard_building_2016}. However, the Web of Things has yet to gain widespread adoption. Moreover, as it is based on web technology, it requires the \emph{thing} to run a web server, significantly increasing the hardware requirements. + +\section{Tierless languages}% +\label{sec_t4t:TiredvsTierless} + +A radical approach to overcoming the challenges raised by tiered distributed software is to use a tierless programming language that eliminates the semantic friction between tiers by generating code for all tiers, and all communication between tiers, from a single program. +%\adriancomment{Also referred to as multi-tier programming, tierless language applications usually utilise a single language, paradigm and type system, and the entire system is simultaneously checked by the compiler~\cite{weisenburger2020survey}.} +Typically a tierless program uses a single language, paradigm and type system, and the entire distributed system is simultaneously checked by the compiler. + +There is intense interest in developing tierless, or multitier, language technologies with a number of research languages developed over the last fifteen years, e.g.\ \cite{cooper2006links, serrano2006hop, troyer_building_2018, 10.1145/2775050.2633367}. These languages demonstrate the +advantages of the paradigm, including less development effort, better maintainability, and sound semantics of distributed execution. At the same time a number of industrial technologies incorporate tierless concepts, e.g.\ \cite{balat2006ocsigen, bjornson2010composing, strack2015getting}. These languages demonstrate the benefits of the paradigm in practice. Some tierless languages use (embedded) \glspl{DSL} to specify parts of the multi-tier software. + +Tierless languages have been developed for a range of distributed paradigms, including web applications, client-server applications, mobile applications, and generic distributed systems. A recent and substantial survey of these tierless technologies is available~\cite{weisenburger2020survey}. Here we provide a brief introduction to tierless languages with a focus on \gls{IOT} software. + +\subsection{Tierless web languages} +% Standalone DSLs +There are established tierless languages for web development, both standalone languages and \glspl{DSL} embedded in a host language. +Example standalone tierless web languages are Links~\cite{cooper2006links} and Hop~\cite{serrano2006hop}. +From a single declarative program the client, server and database code is simultaneously checked by the compiler, and compiled to the required component languages. For example, Links compiles to HTML and JavaScript for the client side and to SQL on the server-side to interact with the database system. + +An example tierless web framework that uses a \gls{DSL} is Haste~\cite{10.1145/2775050.2633367}, that embeds the \gls{DSL} in \gls{HASKELL}. Haste programs are compiled multiple times: the server code is generated by the standard \gls{GHC} \gls{HASKELL} compiler~\cite{hall1993glasgow}; Javascript for the client is generated by a custom \gls{GHC} compiler backend. The design leverages \gls{HASKELL}'s high-level programming abstractions and strong typing, and benefits from \gls{GHC}: a mature and sophisticated compiler. + + +\subsection{Tierless \texorpdfstring{\gls{IOT}}{IoT} languages} +The use of tierless languages in \gls{IOT} applications is both more recent and less common than for web applications. +Tierless \gls{IOT} programming may extend tierless web programming by adding network and perception layers. +The presentation layer of a tierless \gls{IOT} language, like tierless web languages, benefits from almost invariably executing in a standard browser. The perception layer faces greater challenges, often executing on one of a set of slow and resource-constrained microcontrollers. Hence, tierless \gls{IOT} languages typically compile the perception layer to either \gls{C}\slash\gls{CPP} (the lingua franca of microcontrollers), or to some intermediate representation to be interpreted. + +\subsubsection{\texorpdfstring{\Glspl{DSL}}{DSLs} for microcontrollers} +Many \glspl{DSL} provide high-level programming for microcontrollers, for example providing strong typing and memory safety. +For example Copilot~\cite{hess_arduino-copilot_2020} +and Ivory~\cite{elliott_guilt_2015} are imperative \glspl{DSL} embedded in a functional language that compile to \gls{C}\slash\gls{CPP}. In contrast to \gls{CLEAN}/\gls{ITASK}/\gls{MTASK} such \glspl{DSL} are not tierless \gls{IOT} languages as they have no automatic integration with the server, i.e.\ with the application and presentation layers. + + +\subsubsection{\texorpdfstring{\Gls{FRP}}{Functional reactive programming}} +\Gls{FRP} is a declarative paradigm often used for implementing the perception layer of an \gls{IOT} stack. +Examples include mfrp~\cite{sawada_emfrp:_2016}, CFRP~\cite{suzuki_cfrp_2017}, XFRP~\cite{10.1145/3281366.3281370}, Juniper~\cite{helbling_juniper:_2016}, Hailstorm~\cite{sarkar_hailstorm_2020}, and Haski~\cite{valliappan_towards_2020}. +None of these languages are tierless \gls{IOT} languages as they have no automatic integration with the server. + +Potato goes beyond other \gls{FRP} languages to provide a tierless \gls{FRP} \gls{IOT} language for resource rich sensor nodes~\cite{troyer_building_2018}. It does so using the Erlang programming language and sophisticated virtual machine. + +TOP allows for more complex collaboration patterns than \gls{FRP}~\cite{wang_maintaining_2018}, and in consequence is unable to provide the strong guarantees on memory usage available in a restricted variant of \gls{FRP} such as arrowized \gls{FRP}~\cite{nilsson_functional_2002}. + +\subsubsection{Erlang/Elixir \texorpdfstring{\gls{IOT}}{IoT} systems} +A number of production \gls{IOT} systems are engineered in Erlang or Elixir, and many are mostly tierless. +That is the perception, network and application layers are sets of distributed Erlang processes, although the presentation layer typically uses some conventional web technology. +A resource-rich sensor node may support many Erlang processes on an Erlang VM, or low level code (typically \gls{C}\slash\gls{CPP}) on a resource-constrained microcontroller can emulate an Erlang process. +Only a small fraction of these systems are described in the academic literature, example exceptions are~\cite{sivieri2012drop,shibanai_distributed_2018}, with many described only in grey literature or not at all. + +\subsection{Characteristics of tierless \texorpdfstring{\gls{IOT}}{IoT} languages}% +\label{sec_t4t:characteristics} + +This study compares a pair of tierless \gls{IOT} languages with conventional tiered \gls{PYTHON} \gls{IOT} software. \gls{CLEAN}\slash\gls{ITASK} and \gls{CLEAN}/\gls{ITASK}/\gls{MTASK} represent a specific set of tierless language design decisions, however many alternative designs are available. Crucially the limitations of the tierless \gls{CLEAN} languages, e.g.\ that they currently provide limited security, should not be seen as limitations of tierless technologies in general. This section briefly outlines key design decisions for tierless \gls{IOT} languages, discusses alternative designs, and describes the \gls{CLEAN} designs. The \gls{CLEAN} designs are illustrated in the examples in the following section. + +\subsubsection{Program splitting} + +A key challenge for an automatically segmented tierless language is to determine which parts of the program correspond to a particular tier and hence should be executed by a specific component on a specific host, so-called tier splitting. +For example a tierless web language must identify client code to ship to browsers, database code to execute in the DBMS, and application code to run on the server. Some tierless languages split programs using types, others use syntactic markers, e.g.\ pragmas like \cleaninline{server} or \cleaninline{client}, to split the program~\cite{cooper2006links,10.1145/2775050.2633367}. It may be possible to infer the splitting between tiers, relieving the developers from the need specify it, as illustrated for Javascript as a tierless web language~\cite{10.1145/2661136.2661146}. + +In \gls{CLEAN}\slash\gls{ITASK}/\gls{MTASK} and \gls{CLEAN}/\gls{ITASK} tier splitting is specified by functions, and hence is a first-class language construct. +For example in \gls{CLEAN}\slash\gls{ITASK} the \cleaninline{asyncTask} function identifies a task for execution on a remote device and \cleaninline{liftmTask} executes the given task on an \gls{IOT} device. The tier splitting functions are illustrated in examples in the next section, e.g.\ on \cref{lst_t4t:itaskTempFull:startdevtask} in \cref{lst_t4t:itaskTempFull} and \cref{lst_t4t:mtaskTemp:liftmtask} in \cref{lst_t4t:mtaskTemp}. +Specifying splitting as functions means that new splitting functions can be composed, and that splitting is under program control, e.g.\ during execution a program can decide to run a task locally or remotely. + +\subsubsection{Communication}\label{ssec_t4t:communication} + +Tierless languages may adopt a range of communication paradigms for communicating between components. Different tierless languages specify communication in different ways~\cite{weisenburger2020survey}. Remote procedures are the most common communication mechanism: a procedure/function executing on a remote host/machine is called as if it was local. The communication of the arguments to, and the results from, the remote procedure is automatically provided by the language implementation. Other mechanisms include explicit message passing between components; publish/subscribe where components subscribe to topics of interest from other components; reactive programming defines event streams between remote components; finally shared state makes changes in a shared and potentially remote data structure visible to components. + +\Gls{CLEAN}\slash\gls{ITASK}/\gls{MTASK} and \gls{CLEAN}/\gls{ITASK} communicate using a combination of remote task invocation, similar to remote procedures, and shared state through \glspl{SDS}. +\Cref{lst_t4t:itaskTempFull} illustrates: \cref{lst_t4t:itaskTempFull:startdevtask} shows a server task launching a remote task, \cleaninline{devTask}, on to a sensor node; and \cref{lst_t4t:itaskTempFull:remoteShare} shows the sharing of the remote \cleaninline{latestTemp} \gls{SDS}. +%\mlcomment{I think this is fine} + +\subsubsection{Placement} + +In many \gls{IOT} systems the sensor nodes are microcontrollers that are programmed by writing the program to flash memory. This means that without extra effort, physical access to the microcontroller is needed to change the program making updates challenging. +Hence, most \gls{IOT} systems compile sensor node code directly for the target architecture or via an existing language such as \gls{C}\slash\gls{CPP}. + +Techniques such as over-the-air programming and interpreters allow microcontrollers to be dynamically provisioned, increasing their maintainability and resilience. +For example Baccelli et al.\ provide a single language \gls{IOT} system based on the RIOT \gls{OS} that allows runtime deployment of code snippets called containers~\cite{baccelli_reprogramming_2018}. +Both client and server are written in JavaScript. However, there is no integration between the client and the server other than that they are programmed from a single source. +Mat\`e is an example of an early tierless sensor network framework where devices are provided with a virtual machine using TinyOS for dynamic provisioning~\cite{levis_mate_2002}. + +Placement specifies how data and computations in a tierless program are assigned to the +devices/hosts in the distributed system. Different tierless languages specify placement in different ways, e.g.\ code annotations or configuration files, and at different granularities, e.g.\ per function or per class~\cite{weisenburger2020survey}. + +\Gls{CLEAN}\slash\gls{ITASK}/\gls{MTASK} and \gls{CLEAN}/\gls{ITASK} both use dynamic task placement, similar to dynamic function placement. +In \gls{CLEAN}\slash\gls{ITASK}/\gls{MTASK} sensor nodes are programmed once with the \gls{MTASK} \gls{RTS}, and possibly some precompiled tasks. +Thereafter a sensor node can dynamically receive \gls{MTASK} programs, compiled at runtime by the server. +In \gls{CLEAN}\slash\gls{ITASK} the sensor node runs an \gls{ITASK} server that recieves and executes code from the (\gls{IOT}) server~\cite{oortgiese_distributed_2017}. +%The \gls{ITASK} server decides what code to execute depending on the serialised execution graph that the server sends~\cite{oortgiese_distributed_2017}. +Placement happens automatically as part of the first-class splitting constructs outlined in \cref{ssec_t4t:communication}, so \cref{lst_t4t:mtaskTemp:liftmtask} in \cref{lst_t4t:mtaskTemp} places \cleaninline{devTask} onto the \cleaninline{dev} sensor node. + +\subsubsection{Security} + +Security is a major issue and a considerable challenge for many \gls{IOT} systems~\cite{10.1145/3437537}. There are potentially security issues at each layer in an \gls{IOT} application (\cref{fig_t4t:iot_arch}). The security issues and defence mechanisms at the application and presentation layers are relatively standard, e.g.\ defending against SQL injection attacks. The security issues at the network and perception layers are more challenging. Resource-rich sensor nodes can adopt some standard security measures like encrypting messages, and regularly applying software patches to the operating system. However microcontrollers often lack the computational resources for encryption, and it is hard to patch their system software because the program is often stored in flash memory. In consequence there are infamous examples of \gls{IOT} systems being hijacked to create botnets~\cite{203628,herwig_measurement_2019}. + +Securing the entire stack in a conventional tiered \gls{IOT} application is particularly challenging as the stack is implemented in a collection of programming languages with low level programming and communication abstractions. In such polyglot distributed systems it is hard to determine, and hence secure, the flow of data between components. In consequence a small mistake may have severe security implications. + +A number of characteristics of tierless languages help to improve security. Communication and placement vulnerabilities are minimised as communication and placement are automatically generated and checked by the compiler. So injection attacks and the exploitation of communication/placement protocol bugs are less likely. Vulnerabilities introduced by mismatched types are avoided as the entire system is type checked. Moreover, tierless languages can exploit language level security techniques. For example languages like Jif/split~\cite{zdancewic2002secure} and Swift~\cite{chong2007secure} place components to protect the security of data. Another example are programming language technologies for controlling information flow, and these can be used to improve security. For example Haski uses them to improve the security of \gls{IOT} systems~\cite{valliappan_towards_2020}. + +However many tierless languages have yet to provide a comprehensive set of security technologies, despite its importance in domains like web and \gls{IOT} applications. For example Erlang and many Erlang-based systems~\cite{shibanai_distributed_2018,sivieri2012drop}, lack important security measures. Indeed security is not covered in a recent, otherwise comprehensive, survey of tierless technologies~\cite{weisenburger2020survey}. + +\Gls{CLEAN}\slash\gls{ITASK} and \gls{CLEAN}/\gls{ITASK}/\gls{MTASK} are typical in this respect: little effort has yet been expended on improving their security. Of course as tierless languages they benefit from static type safety and automatically generated communication and placement. Some preliminary work shows that, as the communication between layers is protocol agnostic, more secure alternatives can be used. One example is to run the \gls{ITASK} server behind a reverse proxy implementing TLS/SSL encryption~\cite{wijkhuizen_security_2018}. A second is to add integrity checks or even encryption to the communication protocol for resource-rich sensor nodes~\cite{boer_de_secure_2020}. + +\section{Task-oriented and \texorpdfstring{\gls{IOT}}{IoT} programming in \texorpdfstring{\gls{CLEAN}}{Clean}} + +To make this paper self-contained we provide a concise overview of \gls{CLEAN}, \gls{TOP}, and \gls{IOT} programming in \gls{ITASK} and \gls{MTASK}. The minor innovations reported here are the interface to the \gls{IOT} sensors, and the \gls{CLEAN} port for the Raspberry Pi. + +\Gls{CLEAN} is a statically typed functional programming language similar to \gls{HASKELL}: both languages are pure and non-strict~\cite{achten_clean_2007}. +A key difference is how state is handled: \gls{HASKELL} typically embeds stateful actions in the \haskellinline{IO} Monad~\cite{peyton_jones_imperative_1993,wiki:IO}. +In contrast, \gls{CLEAN} has a uniqueness type system to ensure the single-threaded use of stateful objects like files and windows~\cite{barendsen_smetsers_1996}. +Both \gls{CLEAN} and \gls{HASKELL} support fairly similar models of generic programming~\cite{ComparingGenericProgramming}, enabling functions to work on many types. As we shall see generic programming is heavily used in task-oriented programming~\cite{GenericProgrammingExtensionForClean,HinzeGenericFunctionalProgramming}, for example to construct web editors and communication protocols that work for any user-defined datatype. + +\subsection{\texorpdfstring{\Acrlong{TOP}}{Task-oriented programming}} + +\Gls{TOP} is a declarative programming paradigm for constructing interactive distributed systems~\cite{plasmeijer_task-oriented_2012}. +Tasks are the basic blocks of \gls{TOP} and represent work that needs to be done in the broadest sense. +Examples of typical tasks range from allowing a user to complete a form, controlling peripherals, moderating other tasks, or monitoring a database. +From a single declarative description of tasks all of the required software components are generated. +This may include web servers, client code for browsers or \gls{IOT} devices, and for their interoperation. +That is, from a single \gls{TOP} program the language implementation automatically generates an \emph{integrated distributed system}. +Application areas range from simple web forms or blinking \glspl{LED} to multi-user distributed collaboration between people and machines~\cite{oortgiese_distributed_2017}. + + +\Gls{TOP} adds three concepts: tasks, task combinators, and \glspl{SDS}. Example basic tasks are web editors for user-defined datatypes, reading some \gls{IOT} sensor, or controlling peripherals like a servo motor. +Task combinators compose tasks into more advanced tasks, either in parallel or sequential and allow task values to be observed by other tasks. +As tasks can be returned as the result of a function, recursion can be freely used, e.g.\ to express the repetition of tasks. +There are also standard combinators for common patterns. +Tasks can exchange information via \glspl{SDS}~\cite{ParametricLenses}. +All tasks involved can atomically observe and change the value of a typed \gls{SDS}, allowing more flexible communication than with task combinators. +\glspl{SDS} offer a general abstraction of data shared by different tasks, analogous to variables, persistent values, files, databases and peripherals like sensors. Combinators compose \glspl{SDS} into a larger \gls{SDS}, and +parametric lenses define a specific view on an \gls{SDS}. + + + +\subsection{The \texorpdfstring{\gls{ITASK}}{iTask} \texorpdfstring{\gls{EDSL}}{eDSL}}% +\label{sec_t4t:itasks} + + +The \gls{ITASK} \gls{EDSL} is designed for constructing multi-user distributed applications, including web~\cite{TOP-ICFP07} or \gls{IOT} applications. +Here we present \gls{ITASK} by example, and the first is a complete program to repeatedly read the room temperature from a digital humidity and temperature (DHT) sensor attached to the machine and display it on a web page (\cref{lst_t4t:itaskTemp}). +The first line is the module name, the third imports the \cleaninline{iTask} module, and the main function (\cref{lst_t4t:itaskTemp:systemfro,lst_t4t:itaskTemp:systemto}) launches \cleaninline{readTempTask} and the \gls{ITASK} system to generate the web interface in \cref{fig_t4t:itaskTempSimple}. + +Interaction with a device like the DHT sensor using a protocol like 1-Wire or gls{I2C} is abstracted into a library. So the \cleaninline{readTempTask} task starts by creating a \cleaninline{dht} sensor object (\cref{lst_t4t:itaskTemp:dhtDef}) thereafter \cleaninline{repeatEvery} executes a task at the specified \cleaninline{interval}. This task reads the temperature from the \cleaninline{dht} sensor, and with a sequential composition combinator \cleaninline{>>~} passes the \cleaninline{temp} value to \cleaninline{viewInformation} that displays it on the web page (\cref{lst_t4t:itaskTemp:viewInformation}). +The tuning combinator \cleaninline{<<@} adds a label to the web editor displaying the temperature. Crucially, the \gls{ITASK} implementation transparently ships parts of the code for the web-interface to be executed in the browser, and \cref{fig_t4t:itaskTempSimple} shows the UML deployment diagram. + +\begin{lstClean}[% + numbers=left, + caption={SimpleTempSensor: a \gls{CLEAN}\slash\gls{ITASK} program to read a local room temperature sensor and display it on a web page}, + label={lst_t4t:itaskTemp}] +module simpleTempSensor + +import iTasks + +Start :: *World -> *World [+\label{lst_t4t:itaskTemp:systemfro}+] +Start world = doTasks readTempTask world [+\label{lst_t4t:itaskTemp:systemto}+] + +readTempTask :: Task Real +readTempTask = + withDHT IIO_TempID \dht -> [+\label{lst_t4t:itaskTemp:dhtDef}+] + repeatEvery interval ( [+\label{lst_t4t:itaskTemp:repeat}+] + temperature dht >>~ \temp -> [+\label{lst_t4t:itaskTemp:readDHT}+] + viewInformation [] temp <<@ [+\label{lst_t4t:itaskTemp:viewInformation}+] + Label "Temperature" [+\label{lst_t4t:itaskTemp:label}+] + ) +\end{lstClean} + +\begin{figure}[ht] + \centering + \begin{subfigure}[t]{.2\textwidth} + \centering + \fbox{\includegraphics[width=.9\textwidth]{readTempTask}} + \caption{Web page.} + \end{subfigure}% + \begin{subfigure}[t]{.8\textwidth} + \centering + \includegraphics[width=\textwidth]{simpleTempSensor} + \caption{Deployment diagram.} + \end{subfigure} + \caption{\Gls{ITASK} SimpleTempSensor.}% + \label{fig_t4t:itaskTempSimple} +\end{figure} + +SimpleTempSensor only reports instantaneous temperature measurements. Extending it to store and manipulate timed temperature records produces a tiny tierless web application: TempHistory in \cref{lst_t4t:TempHistory}. A tierless \gls{IOT} system can be controlled from a web interface in exactly the same way, e.g.\ to view and set the measurement frequencies of each of the room sensors. \Cref{lst_t4t:itaskTemp:Measurement} defines a record to store \cleaninline{time} and \cleaninline{temp} measurements. Task manipulations are derived for \cleaninline{Measurement} (\cref{lst_t4t:itaskTemp:derive}) and these include displaying measurements in a web-editor and storing them in a file. +\Cref{lst_t4t:itaskTemp:measurementsSDS} defines a persistent \gls{SDS} to store a list of measurements, and for communication between tasks. The \gls{SDS} is analogous to the SQL DBMS in many tiered web applications. + +TempHistory defines two tasks that interact with the \texttt{mea\-sure\-ments\-SDS}: \texttt{mea\-sure\-Task} adds measurements at each detected change in the temperature. +It starts by defining a \cleaninline{dht} object as before, and then defines a recursive \cleaninline{task} function parameterized by the \cleaninline{old} temperature. +This function reads the temperature from the DHT sensor and uses the step combinator, \cleaninline{>>*}, to compose it with a list of actions. +The first of those actions that is applicable determines the continuation of this task. If no action is applicable, the task on the left-hand side is evaluated again. +The first action checks whether the new temperature is different from the \cleaninline{old} temperature (\cref{lst_t4t:itaskTemp:action1}). If so, it records the current time and adds the new measurements to the \cleaninline{measurementsSDS}. +The next action in \cref{lst_t4t:itaskTemp:action2} is always applicable and waits (sleeps) for an interval before returning the old temperature. +On \cref{lst_t4t:itaskTemp:launch} \cleaninline{task} is launched with an initial temperature. + +\begin{lstClean}[% + numbers=left, + caption={TempHistory: a tierless \gls{CLEAN}\slash\gls{ITASK} webapplication that records and manipulates timed temperatures}, + label={lst_t4t:TempHistory}] +module TempHistory + +import iTasks, iTasks.Extensions.DateTime + +:: Measurement = {time :: Time, temp :: Real} [+\label{lst_t4t:itaskTemp:Measurement}+] +derive class iTask Measurement [+\label{lst_t4t:itaskTemp:derive}+] + +measurementsSDS :: SimpleSDSLens [Measurement] [+\label{lst_t4t:itaskTemp:measurementsSDS}+] +measurementsSDS = sharedStore "measurements" [] + +measureTask :: Task () [+\label{lst_t4t:itaskTemp:measureTask}+] +measureTask = + withDHT IIO_TempID \dht -> + let task old = + temperature dht >>* [+\label{lst_t4t:itaskTemp:step}+] + [ OnValue (ifValue ((<>) old) \temp -> [+\label{lst_t4t:itaskTemp:action1}+] + get currentTime >>~ \time -> + upd (\list.[{time=time, temp=temp}:list]) measurementsSDS + @! temp) + , OnValue (always (waitForTimer False interval @! old))[+\label{lst_t4t:itaskTemp:action2}+] + ] >>~ task + in task initialTemp [+\label{lst_t4t:itaskTemp:launch}+] + + +controlSDS :: Bool -> Task [Measurement] +controlSDS byTemp = + ((Label "# to take" @>> enterInformation []) -|| [+\label{lst_t4t:itaskTemp:enter}+] + (Label "Measurements" @>> [+\label{lst_t4t:itaskTemp:view}+] + viewSharedInformation + [ ViewAs (if byTemp (sortBy (\x y->x.temp < y.temp)) id)] + measurementsSDS)) >>*[+\label{lst_t4t:itaskTemp:viewend}+] + [ OnAction (Action "Clear") (always + (set [] measurementsSDS >-| controlSDS byTemp)) + , OnAction (Action "Take") (ifValue ((<) 0) + (\n.upd (take n) measurementsSDS >-| controlSDS byTemp)) + , OnAction (Action (if byTemp "Sort time" "Sort temp")) (always + (controlSDS (not byTemp))) + ] [+\label{lst_t4t:itaskTemp:actionend}+] + +mainTask :: Task [Measurement] +mainTask = controlSDS False -|| measureTask +\end{lstClean} + +The \cleaninline{controlSDS} task illustrates communication from the web page user and persistent data manipulation. That is, it generates a web page that allows users to control their view of the temperature measurements, as illustrated in \cref{fig_t4t:TempHistory}. The page contains +\begin{enumerate*} + \item a web editor to enter the number \cleaninline{n} of elements to display, generated on \cref{lst_t4t:itaskTemp:enter}. + \item A display of the \cleaninline{n} most recent temperature and time measurements, \crefrange{lst_t4t:itaskTemp:view}{lst_t4t:itaskTemp:viewend}. + \item Three buttons that are again combined with the step combinator \cleaninline{>>*}, \crefrange{lst_t4t:itaskTemp:viewend}{lst_t4t:itaskTemp:actionend}. The \cleaninline{Clear} button is \cleaninline{always} enabled and sets the \gls{SDS} to an empty list before calling \cleaninline{controlSDS} recursively. The \cleaninline{Take} button is only enabled when the web editor produces a positive \cleaninline{n} and updates the \cleaninline{measurementsSDS} with the \cleaninline{n} most recent measurements before calling \cleaninline{controlSDS} recursively. The final action is \cleaninline{always} enabled and calls \cleaninline{controlSDS} recursively with the negation of the \cleaninline{byTemp} argument to change the sorting criteria. +\end{enumerate*} + +\begin{figure}[ht] + \centering + \begin{subfigure}[t]{.5\textwidth} + \centering + \fbox{\includegraphics[width=.95\textwidth]{TempHistory1}} + \caption{Web page sorted by time.} + \end{subfigure}% + \begin{subfigure}[t]{.5\textwidth} + \centering + \fbox{\includegraphics[width=.95\textwidth]{TempHistory2}} + \caption{Web page sorted by temperature.} + \end{subfigure} + \caption{Web pages generated by the \cleaninline{TempHistory} \gls{CLEAN}\slash\gls{ITASK} tierless web application. + The \cleaninline{Take} button is only enabled when the topmost editor contains a positive number. + }% + \label{fig_t4t:TempHistory} +\end{figure} + +\begin{figure}[ht] + \centering + \includegraphics[width=.95\textwidth]{TempHistory} + \caption{Deployment diagram of the \gls{ITASK} TempHistory tierless web application from \cref{lst_t4t:TempHistory}.}% + \label{fig_t4t:TempHistoryDiagram}% +\end{figure} + +\Cref{fig_t4t:TempHistory} shows two screenshots of web pages generated by the \cleaninline{TempHistory} program. \Cref{fig_t4t:TempHistoryDiagram} is the deployment diagram showing the addition of the persistent \cleaninline{measurementsSDS} that stores the history of temperature measurements. + +\subsection{Engineering tierless \texorpdfstring{\gls{IOT}}{IoT} systems with \texorpdfstring{\gls{ITASK}}{iTask}}% +\label{sec_t4t:itaskIOT} + +A typical \gls{IOT} system goes beyond a web application by incorporating a distributed set of sensor nodes each with a collection of sensors or actuators. That is, they add the perception and network layers in \cref{fig_t4t:iot_arch}. If the sensor nodes have the computational resources to support an \gls{ITASK} server, as a Raspberry Pi does, then \gls{ITASK} can also be used to implement these layers, and integrate them with the application and presentation layers tierlessly. + +As an example of tierless \gls{IOT} programming in \gls{CLEAN}\slash\gls{ITASK} \cref{lst_t4t:itaskTempFull} shows a complete temperature sensing system with a server and a single sensor node (\gls{CRTS}), omitting only the module name and imports. +It is similar to the SimpleTempSensor and TempHistory programs above, for example \cleaninline{devTask} repeatedly sleeps and records temperatures and times, and \cleaninline{mainTask} displays the temperatures on the web page in \cref{fig_t4t:cwtsweb}. There are some important differences, however. The \cleaninline{devTask} (\crefrange{lst_t4t:itaskTempFull:sensorfro}{lst_t4t:itaskTempFull:sensorto}) executes on the sensor node and records the temperatures in a standard timestamped (lens on) an \gls{SDS}: \cleaninline{dateTimeStampedShare} \cleaninline{latestTemp}. +The \cleaninline{mainTask} (\cref{lst_t4t:itaskTempFull:main}) executes on the server: it starts \cleaninline{devTask} as an asynchronous task on the specified sensor node (\cref{lst_t4t:itaskTempFull:startdevtask}) and then generates a web page to display the latest temperature and time (\cref{lst_t4t:itaskTempFull:displaystart,lst_t4t:itaskTempFull:displayend}). + +The \cleaninline{tempSDS} is very similar to the \cleaninline{measurementsSDS} from the previous listings. +The only difference is that we store measurements as tuples instead of tailor-made records. +The \cleaninline{latestTemp} is a \emph{lens} on the \cleaninline{tempSDS}. +A lens is a new \gls{SDS} that is automatically mapped to another \gls{SDS}. +Updating one of the \glspl{SDS} that are coupled in this way automatically updates the other. +The function \cleaninline{mapReadWrite} is parameterized by the read and write functions, the option to handle asynchronous update conflicts (here \cleaninline{?None}) and the \gls{SDS} to be transformed (here \cleaninline{tempSDS}). +The result of reading is the head of the list, if it exists. +The type for writing \cleaninline{latestTemp} is a tuple with a new \cleaninline{DateTime} and temperature as \cleaninline{Real}. + +\begin{lstClean}[% + numbers=left, + caption={\gls{CRTS}: a tierless temperature sensing \gls{IOT} system. Written in \gls{CLEAN}\slash\gls{ITASK}, it targets a resource-rich sensor node.}, + label={lst_t4t:itaskTempFull}] +tempSDS :: SimpleSDSLens [(DateTime, Real)] +tempSDS = sharedStore "temperatures" [] + +latestTemp :: SDSLens () (? (DateTime, Real)) (DateTime, Real) +latestTemp = mapReadWrite (listToMaybe, \x xs-> ?Just [x:xs]) ?None tempSDS + +devTask :: Task DateTime +devTask = [+\label{lst_t4t:itaskTempFull:sensorfro}+] + withDHT IIO_TempID \dht -> + forever ([+\label{lst_t4t:itaskTempFull:forever}+] + temperature dht >>~ \temp -> + set temp (dateTimeStampedShare latestTemp) >-| + waitForTimer False interval) [+\label{lst_t4t:itaskTempFull:waitForTimer}+][+\label{lst_t4t:itaskTempFull:sensorto}+] + +mainTask :: Task () +mainTask [+\label{lst_t4t:itaskTempFull:main}+] + = asyncTask deviceInfo.domain deviceInfo.port devTask [+\label{lst_t4t:itaskTempFull:startdevtask}+] + -|| viewSharedInformation [] [+\label{lst_t4t:itaskTempFull:displaystart}+] + (remoteShare latestTemp deviceInfo) [+\label{lst_t4t:itaskTempFull:remoteShare}+] + <<@ Title "Latest temperature" [+\label{lst_t4t:itaskTempFull:displayend}+] +\end{lstClean} + +\begin{figure}[ht] + \centering + \begin{subfigure}[t]{.2\textwidth} + \centering + \fbox{\includegraphics[width=.9\textwidth]{cwts}} + \caption{Web page.} + \end{subfigure}% + \begin{subfigure}[t]{.8\textwidth} + \centering + \includegraphics[width=\textwidth]{devTaskDiagram2} + \caption{Deployment diagram.} + \end{subfigure} + \caption{Tierless \gls{ITASK} \gls{CRTS} temperature sensing \gls{IOT} system.}% + \label{fig_t4t:cwtsweb} +\end{figure} + +\subsection{The \texorpdfstring{\gls{MTASK}}{mTask} \texorpdfstring{\gls{EDSL}}{eDSL}}% +\label{sec_t4t:mtasks} + +In many \gls{IOT} systems the sensor nodes are resource constrained, e.g.\ inexpensive microcontrollers. These are far cheaper, and consume far less power, than a single-board computer like a Raspberry Pi. Microcontrollers also allow the programmer to easily control peripherals like sensors and actuators via the \gls{IO} pins of the processor. + +Microcontrollers have limited memory capacity, compute power and communication bandwidth, and hence typically no \gls{OS}. +These limitations make it impossible to run an \gls{ITASK} server: +there is no \gls{OS} to start the remote task, the code of the task is too big to fit in the available memory and the microcontroller processor is too slow to run it. +The \gls{MTASK} \gls{EDSL} is designed to bridge this gap: \gls{MTASK} tasks can be communicated from the server to the sensor node, to execute within the limitations of a typical microcontroller, while providing programming abstractions that are consistent with \gls{ITASK}. + +Like \gls{ITASK}, \gls{MTASK} is task oriented, e.g.\ there are primitive tasks that produce intermediate values, a restricted set of task combinators to compose the tasks, and (recursive) functions to construct tasks. +\Gls{MTASK} tasks communicate using task values or \glspl{SDS} that may be local or remote, and may be shared by some \gls{ITASK} tasks. + +Apart from the \gls{EDSL}, the \gls{MTASK} system contains a featherlight domain-specific \emph{operating system} running on the microcontroller. +This \gls{OS} task scheduler receives the byte code generated from one or more \gls{MTASK} programs and interleaves the execution of those tasks. The \gls{OS} also manages \gls{SDS} updates and the passing of task results. +The \gls{MTASK} \gls{OS} is stored in flash memory while the tasks are stored in \gls{RAM} to minimise wear on the flash memory. While sending byte code to a sensor node at runtime greatly increases the amount of communication, this can be mitigated as any tasks known at compile time can be preloaded on the microcontroller. +In contrast, compiled programs, like \gls{C}\slash\gls{CPP}, are stored in flash memory and there can only ever be a few thousand programs uploaded during the lifetime of the microcontroller before exhausting the flash memory. + +\subsection{Engineering tierless \texorpdfstring{\gls{IOT}}{IoT} systems with \texorpdfstring{\gls{MTASK}}{mTask}}% +\label{sec_t4t:mtaskIOT} + +A tierless \gls{CLEAN} \gls{IOT} system with microcontroller sensor nodes integrates a set of \gls{ITASK} tasks that specify the application and presentation layers with a set of \gls{MTASK}s that specify the perception and network layers. +We illustrate with \gls{CWTS}: a simple room temperature sensor with a web display. \gls{CWTS} is equivalent to the \gls{ITASK} \gls{CRTS} (\cref{lst_t4t:itaskTempFull}), except that the sensor node is a Wemos microcontroller. + +\Cref{lst_t4t:mtaskTemp} shows the complete program, and the key function is \cleaninline{devTask} with a top-level \cleaninline{Main} type (\cref{lst_t4t:mtaskTemp:devTask}). In \gls{MTASK} functions, shares, and devices can only be defined at this top level. +The program uses the same shares \cleaninline{tempSDS} and~\cleaninline{latestTemp} as \gls{CRTS}, and for completeness we repeat those definitions. +The body of \cleaninline{devTask} is the \gls{MTASK} slice of the program (\crefrange{lst_t4t:mtaskTemp:DHT}{lst_t4t:mtaskTemp:setSds}). +With \cleaninline{DHT} we again create a temperature sensor object \cleaninline{dht}. +The \gls{ITASK} \gls{SDS} \cleaninline{latestTemp} is first transformed to a \gls{SDS} that accepts only temperature values, +the \cleaninline{dateTimeStampedShare} adds the data via a lens. +The \cleaninline{mapRead} adjusts the read type. +This new \gls{SDS} of type \cleaninline{Real} is lifted to the \gls{MTASK} program with \cleaninline{liftsds}. +%The \cleaninline{mapRead} ensures that every write to \cleaninline{localSds} is automatically time-stamped when it is written to \cleaninline{latestTemp}. + + +The \cleaninline{mainTask} is a simple \gls{ITASK} task that starts the \cleaninline{devTask} \gls{MTASK} task on the device identified by \cleaninline{deviceInfo} (\cref{lst_t4t:mtaskTemp:withdevice}). At runtime the \gls{MTASK} slice is compiled to byte code, shipped to the indicated device, and launched. Thereafter, \cleaninline{mainTask} reads temperature values from the \cleaninline{latestTemp} \gls{SDS} that is shared with the \gls{MTASK} device, and displays them on a web page (\cref{fig_t4t:cwtsweb}). The \gls{SDS}---shared with the device using \cleaninline{liftsds}---automatically communicates new temperature values from the microcontroller to the server. + +While this simple application makes limited use of the \gls{MTASK} \gls{EDSL}, it illustrates some powerful \gls{MTASK} program abstractions like basic tasks, task combinators, named recursive and parameterized tasks, and \glspl{SDS}. +Function composition (\cref{lst_t4t:mtaskTemp:o}) and currying (\cref{lst_t4t:mtaskTemp:setSds}) are inherited from the \gls{CLEAN} host language. +As \gls{MTASK} tasks are dynamically compiled, it is also possible to select and customise tasks as required at runtime. +For example, the interval used in the \cleaninline{rpeatevery} task (\cref{lst_t4t:mtaskTemp:rpeatevery}) could be a parameter to the \cleaninline{devTask} function. + +\newcommand{\srcmark}[1]{\marginpar[\small\emph{#1}]{\small\emph{#1}}} +\begin{lstClean}[% + numbers=left, + caption={ + \Gls{CWTS}: a tierless temperature sensing \gls{IOT} system. Written in \gls{CLEAN}\slash\gls{ITASK}/\gls{MTASK}, it targets a resource-constrained sensor node. Each line is annotated with the functionality as analysed in \cref{sec_t4t:codesize}.}, + label={lst_t4t:mtaskTemp}, +] +module cwts + +import mTask.Language, mTask.Interpret, mTask.Interpret.Device.TCP +import iTasks, iTasks.Extensions.DateTime + +deviceInfo = {TCPSettings|host="...", port=8123, pingTimeout= ?None} [+\label{lst_t4t:mtaskTemp:co0}\srcmark{CO}+] +interval = lit 10[+\label{lst_t4t:mtaskTemp:sn0}\srcmark{SN}+] +DHT_pin = DigitalPin D4[+\label{lst_t4t:mtaskTemp:si0}\srcmark{SI}+] + +Start world = doTasks mainTask world[+\label{lst_t4t:mtaskTemp:wi0}\srcmark{WI}+] + +tempSDS :: SimpleSDSLens [(DateTime, Real)] +tempSDS = sharedStore "temperatures" [][+\label{lst_t4t:mtaskTemp:di0}\srcmark{DI}+] + +latestTemp :: SDSLens () (? (DateTime, Real)) (DateTime, Real) +latestTemp = mapReadWrite (listToMaybe, \x xs-> ?Just [x:xs]) ?None tempSDS[+\label{lst_t4t:mtaskTemp:di1}\srcmark{DI}+] + +devTask :: Main (MTask v Real) | mtask, dht, liftsds v[+\label{lst_t4t:mtaskTemp:devTask}+] +devTask = + DHT (DHT_DHT DHT_pin DHT11) \dht ->[+\label{lst_t4t:mtaskTemp:DHT}+][+\label{lst_t4t:mtaskTemp:si1}\srcmark{SI}+] + liftsds \localSds =[+\label{lst_t4t:mtaskTemp:liftsds}+][+\label{lst_t4t:mtaskTemp:co1}\srcmark{CO}+] + mapRead (snd o fromJust) (dateTimeStampedShare latestTemp)[+\label{lst_t4t:mtaskTemp:o}+][+\label{lst_t4t:mtaskTemp:sn1}\srcmark{SN}+] + In {main = rpeatEvery (ExactSec interval)[+\label{lst_t4t:mtaskTemp:rpeatevery}+][+\label{lst_t4t:mtaskTemp:sn2}\srcmark{SN}+] + (temperature dht >>~.[+\label{lst_t4t:mtaskTemp:temperature}+][+\label{lst_t4t:mtaskTemp:si2}\srcmark{SI}+] + setSds localSds)}[+\label{lst_t4t:mtaskTemp:setSds}+][+\label{lst_t4t:mtaskTemp:sn3}\srcmark{SN}+] + +mainTask :: Task Real +mainTask + = withDevice deviceInfo \dev -> liftmTask} devTask dev[+\label{lst_t4t:mtaskTemp:liftmtask}+][+\label{lst_t4t:mtaskTemp:withdevice}+][+\label{lst_t4t:mtaskTemp:co2}\srcmark{CO}+] + -|| viewSharedInformation [] latestTemp[+\label{lst_t4t:mtaskTemp:wi1}\srcmark{WI}+] + <<@ Title "Latest temperature"[+\label{lst_t4t:mtaskTemp:wi2}+] // WI +\end{lstClean} +% + +\begin{figure}[ht] + \centering + \begin{subfigure}[t]{.2\textwidth} + \centering + \fbox{\includegraphics[width=.9\textwidth]{cwts}} + \caption{Web page.} + \end{subfigure}% + \begin{subfigure}[t]{.8\textwidth} + \centering + \includegraphics[width=.95\textwidth]{cwtsDiagram2} + \caption{Deployment diagram.} + \end{subfigure} + \caption{Tierless \gls{ITASK}\slash\gls{MTASK} \gls{CWTS} temperature sensing \gls{IOT} system.}% + \label{fig_t4t:cwtsDiagram} +\end{figure} + +\section{\texorpdfstring{\gls{UOG}}{UoG} smart campus case study}% +\label{sec_t4t:Case} +The basis for our comparison between tiered and tierless technologies are four \gls{IOT} systems that all conform to the \gls{UOG} smart campus specifications (\cref{sec_t4t:OperationalComparison}). There is a small (12 room) deployment of the conventional \gls{PYTHON}-based \gls{PRS} stack that uses Raspberry Pi supersensors, and its direct comparator is the tierless \gls{CRS} implementation: also deployed on Raspberry Pis. +To represent the more common microcontroller sensor nodes we select ESP8266X powered Wemos D1 Mini microcontrollers. To evaluate tierless technologies on microcontrollers we compare the conventional \gls{PYTHON}\slash\gls{MICROPYTHON} \gls{PWS} stack with the tierless \gls{CWS} implementation. + +%The four systems under comparison are different in architecture ---tiered or tierless--- and type of sensor node hardware ---regular or embedded--- but they share many properties as well. + +%The embedded sensor nodes are all implemented on the ESP8266X powered Wemos D1 Mini microcontroller. +A similar range of commodity sensors is connected to both the Raspberry Pi and Wemos sensor nodes using various low-level communication protocols such as \gls{GPIO}, \gls{I2C}, \gls{SPI} and \gls{ONEWIRE}. The sensors are as follows: Temperature \& Humidity: LOLIN SHT30; Light: LOLIN BH1750; Motion: LOLIN \gls{PIR}; Sound: SparkFun SEN-12642; \gls{ECO2}: SparkFun CCS811. + +\Cref{fig_t4t:wemos_prss} shows both a prototype Wemos-based sensor node and sensors and a Raspberry Pi supersensor. Three different development teams developed the four implementations: \gls{CWS} and \gls{CRS} were engineered by a single developer. + +\begin{figure}[ht] + \centering + \begin{subfigure}[t]{.49\textwidth} + \centering + \includegraphics[width=.9\textwidth]{wemos} + \caption{A Wemos used in \gls{PWS} and \gls{CWS}}.% + \end{subfigure}% + \begin{subfigure}[t]{.49\textwidth} + \centering + \includegraphics[width=.9\textwidth]{prss} + \caption{A Raspberry Pi used in \gls{PRS} and \gls{CRS}.}% + \end{subfigure} + \caption{Exposed views of sensor nodes.}%% + \label{fig_t4t:wemos_prss} +\end{figure} + +\subsection{Tiered implementations} +The tiered \gls{PRS} and \gls{PWS} share the same server code executing on a commodity PC (\cref{fig_t4t:iot_arch}). The \gls{PYTHON} server stores incoming sensor data in two database systems, i.e.\ Redis (in-memory data) and MongoDB (persistent data). The real-time sensor data is made available via a streaming websockets server, which connects with Redis. +There is also an HTTP REST \gls{API} for polling current and historical sensor data, which hooks into {MongoDB}. +Communication between a sensor node and the server is always initiated by the node. + +\Gls{PRS}'s sensor nodes are %powered by the +relatively powerful Raspberry Pi 3 Model Bs. There is a simple object-oriented \gls{PYTHON} collector for configuring the sensors and reading their values. The collector daemon service marshals the sensor data and transmits using \gls{MQTT} to the central monitoring server at a preset frequency. +The collector caches sensor data locally when the server is unreachable. + +In contrast to \gls{PRS}, \gls{PWS}'s sensor nodes are microcontrollers running \gls{MICROPYTHON}, a dialect of \gls{PYTHON} specifically designed to run on small, low powered embedded devices~\cite{kodali2016low}. +To enable a fair comparison between the software stacks we are careful to use the same object-oriented software architecture, e.g.\ using the same classes in \gls{PWS} and \gls{PRS}. + +\Gls{PYTHON} and \gls{MICROPYTHON} are appropriate tiered comparison languages. Tiered \gls{IOT} systems are implemented in a whole range of programming languages, with \gls{PYTHON}, \gls{MICROPYTHON}, \gls{C} and \gls{CPP} being popular for some tiers in many implementations. \gls{C}\slash\gls{CPP} implementations would probably result in more verbose programs and even less type safety. +The other reasons for selecting \gls{PYTHON} and \gls{MICROPYTHON} are pragmatic. \gls{PRS} had been constructed in \gls{PYTHON}, deployed, and was being used as an \gls{IOT} experimental platform. +Selecting \gls{MICROPYTHON} for the resource-constrained \gls{PWS} sensor nodes facilitates comparison by minimising changes to the resource-rich and resource-constrained codebases. +We anticipate that the codebase for a tiered smart campus implementation in another imperative/object-oriented language, like \gls{CPP}, would be broadly similar to the \gls{PRS} and \gls{PWS} codebases. + +\subsection{Tierless implementations} + +The tierless \gls{CRS} and \gls{CWS} servers share the same \gls{ITASK} server code (\cref{fig_t4t:iot_arch}), and can be compiled for many standard platforms. +They use +SQLite as a database backend. +Communication between a sensor node and the server is initiated by the server. + +\Gls{CRS}'s sensor nodes are Raspberry Pi 4s, and execute \gls{CLEAN}\slash\gls{ITASK} programs. +Communication from the sensor node to the server is implicit and happens via \glspl{SDS} over \gls{TCP} using platform independent execution graph serialisation~\cite{oortgiese_distributed_2017}. + +\Gls{CWS}'s sensor nodes are Wemos microcontrollers running \gls{MTASK} tasks. Communication and serialisation is, by design, very similar to \gls{ITASK}, i.e.\ via \glspl{SDS} over either a serial port connection, raw \gls{TCP}, or \gls{MQTT} over \gls{TCP}. + +\begin{figure}[ht] + \centering + \begin{subfigure}[t]{.49\textwidth} + \centering + \fbox{\includegraphics[width=.75\textwidth]{cwss_web}} + \caption{\Gls{CWS} and \gls{CRS}.} + \end{subfigure}% + \begin{subfigure}[t]{.49\textwidth} + \centering + \fbox{\includegraphics[width=.75\textwidth, height=.2\textheight, keepaspectratio]{sensordata.png}} + \caption{\Gls{PWS} and \gls{PRS}.} + \end{subfigure} + \caption{Web interfaces for the smart campus application.}% + \label{fig_t4t:webinterfaces} +\end{figure} + +\subsection{Operational Equivalence}% +\label{sec_t4t:OperationalComparison} + + +To ensure that the comparison reported in the following sections is based on \gls{IOT} stacks with equivalent functionality, we demonstrate that \gls{PWS}, \gls{CWS} and \gls{CRS}, like \gls{PRS}, meet the functional requirements for the \gls{UOG} smart campus sensor system. We also compare the sensor node power consumption and memory footprint. + +\subsubsection{Functional Requirements}% +\label{sec_t4t:Validation} + +The main goal of the \gls{UOG} smart campus project is to provide a testbed for sensor nodes and potentially other devices to act as a data collection and computation platform for the \gls{UOG} smart campus. The high-level functional requirements, as specified by the \gls{UOG} smart campus project board, are as follows. The system should: +%\mlcomment{can be inline as well} +\begin{enumerate} + + \item be able to measure temperature and humidity as well as light intensity, + + \item scale to no more than 10 sensors per sensor node and investigate further sensor options like measuring sound levels, + + \item have access to communication channels like WiFi, Bluetooth and even wired networks. + + \item have a centralised database server, + + \item have a client interface to access information stored in the database, + + \item provide some means of security and authentication, + %\item have some means of providing security and authentication. + + \item have some means of managing and monitoring sensor nodes like updating software or detecting new sensor nodes. + +\end{enumerate} +All four smart campus implementations meet these high-level requirements. + +\subsubsection{Functional Equivalence} + +Observation of the four implementations shows that they operate as expected, e.g.\ detecting light or motion. To illustrate \cref{fig_t4t:webinterfaces} shows the web interface for the implementations where \gls{CWS} and \gls{CRS} are deployed in a different room from \gls{PWS} and \gls{PRS}. + +All four implementations use an identical set of inexpensive sensors, so we expect the accuracy of the data collected is within tolerance levels. This is validated by comparing \gls{PRS} and \gls{PWS} sensor nodes deployed in the same room for some minutes. The measurements show only small variances, e.g.\ temperatures recorded differ by less than \qty{0.4}{\celcius}, and light by less than \qty{1}{lux}. For this room monitoring application precise timings are not critical, and we don't compare the timing behaviours of the implementations. +%\adriancomment{Maybe include a reference for accepted standards of variation between the same type of sensors?} +% Phil: lets see what the reviewers say + + +\subsubsection{Memory and Power Consumption}% +%\subsubsection{Memory Consumption}% +\label{sec_t4t:MemPower} + +\paragraph{Memory} By design sensor nodes are devices with limited computational capacity, and memory is a key restriction. Even supersensors often have less than a \unit{\gibi\byte} of memory, and microcontrollers often have just tens of \unit{\kibi\byte{}s}. +%In a tiered implementation the memory residency of the sensor node code can be minimised by carefully crafting it in a language that minimises memory residency. However, ... +As the tierless languages synthesize the code to be executed on the sensor nodes, we need to confirm that the generated code is sufficiently memory efficient. + +\begin{table} + \centering + \caption{\Gls{UOG} smart campus sensor nodes: maximum memory residency (in bytes).}% + \label{tbl_t4t:mem} + \begin{tabular}{rrrr} + \toprule + \multicolumn{1}{c}{\gls{PWS}} & \multicolumn{1}{c}{\gls{PRS}} & \multicolumn{1}{c}{\gls{CWS}} & \multicolumn{1}{c}{\gls{CRS}}\\ + \midrule + \num{20270} & \num{3557806} & \num{880} & \num{2726680}\\ + \bottomrule + \end{tabular} +\end{table} + +\Cref{tbl_t4t:mem} shows the maximum memory residency after garbage collection of the sensor node for all four smart campus implementations. The smart campus sensor node programs executing on the Wemos microcontrollers have low maximum residencies: \qty{20270}{\byte} for \gls{PWS} and \qty{880}{\byte} for \gls{CWS}. In \gls{CWS} the \gls{MTASK} system generates very high level \gls{TOP} byte code that is interpreted by the \gls{MTASK} virtual machine and uses a small and predictable amount of heap memory. +In \gls{PWS}, the hand-written \gls{MICROPYTHON} is compiled to byte code for execution on the virtual machine. Low residency is achieved with a fixed size heap and efficient memory management. For example both \gls{MICROPYTHON} and \gls{MTASK} use fixed size allocation units and mark\&sweep garbage collection to minimise memory usage at the cost of some execution time~\cite{plamauer2017evaluation}. + +The smart campus sensor node programs executing on the Raspberry Pis have far higher maximum residencies than those executing on the microcontrollers: \qty{3.5}{\mebi\byte} for \gls{PRS} and \qty{2.7}{\mebi\byte} for \gls{CRS}. In \gls{CRS} the sensor node code is a set of \gls{ITASK} executing on a full-fledged \gls{ITASK} server running in distributed child mode and this consumes far more memory. +%The memory used is actually very similar to the memory usage of the server with a single client connected. +In \gls{PRS} the sensor node program is written in \gls{PYTHON}, a language far less focused on minimising memory usage than \gls{MICROPYTHON}. For example an object like a string is larger in \gls{PYTHON} than in \gls{MICROPYTHON} and consequently does not support all features such as \emph{f-strings}. +Furthermore, not all advanced \gls{PYTHON} feature regarding classes are available in \gls{MICROPYTHON}, i.e.\ only a subset of the \gls{PYTHON} specification is supported~\cite{diffmicro}.%\mlcomment{reference \url{https://docs.micropython.org/en/latest/genrst/index.html} ? It contains an overview of supported features} + +In summary the sensor node code generated by both tierless languages, \gls{ITASK} and \gls{MTASK}, is sufficiently memory efficient for the target sensor node hardware. Indeed, the maximum residencies of the \gls{CLEAN} sensor node code is less than the corresponding hand-written (Micro)\gls{PYTHON} code. Of course in a tiered stack the hand-written code can be more easily optimised to minimise residency, and this could even entail using a memory efficienthat thet language like \gls{C}\slash\gls{CPP}. However, such optimisation requires additional developer effort, and a new language would introduce additional semantic friction. + +\paragraph{Power} Sensor nodes and sensors are designed to have low power demands, and this is particularly important if they are operating on batteries. The grey literature consensus is that with all sensors enabled a sensor node should typically have sub-\qty{1}{\watt} peak power draw. +%\pwtcomment{Mart can you provide some evidence? A citation?}. +%\mlcomment{There only seems to be anecdotal evidence of this. See: \url{https://www.element14.com/community/people/neilk/blog/2019/02/14/investigating-the-power-consumption-of-a-wemos-d1-mini-esp8266}} +%\pkcomment{We can state that our own measurements are consistent the experience of others.} +The Wemos sensor nodes used in \gls{CWS} and \gls{PWS} have the low power consumption of a typical embedded device: with all sensors enabled, they consume around \qty{0.2}{\watt}. +The Raspberry Pi supersensor node used in \gls{CRS} and \gls{PRS} use more power as they have a general purpose ARM processor and run mainstream Linux. With all sensors enabled, they consume \qtyrange{1}{2}{\watt}, depending on ambient load. So a microcontroller sensor node consumes an order of magnitude less power than a supersensor node. + + +\section{Is Tierless \texorpdfstring{\gls{IOT}}{IoT} Programming Easier than Tiered?}% +\label{sec_t4t:ProgrammingComparison} + + +This section investigates whether tierless languages make \gls{IOT} programming \emph{easier} by comparing the \gls{UOG} smart campus implementations. The \gls{CRS} and \gls{CWS} implementations allow us to evaluate tierless languages for + resource-rich and for resource-constrained sensor nodes respectively. The \gls{PRS} and \gls{PWS} allow a like-for-like comparison with tiered \gls{PYTHON} implementations. + + +%\subsection{Temperature Sensor Illustration} + +\subsection{Comparing Tiered and Tierless Codebases}% +\label{sec_t4t:codesize} +%A comparison of the Temperature sensor in \gls{PYTHON} Micropyton, Itask \& \gls{MTASK}. + +\paragraph{Code Size} is widely recognised as an approximate measure of the development and maintenance effort required for a software system~\cite{rosenberg1997some}. \gls{SLOC} is a common code size metric, and is especially useful for multi-paradigm systems like \gls{IOT} systems. It is based on the simple principle that the more \gls{SLOC}, the more developer effort and the increased likelihood of bugs~\cite{rosenberg1997some}. It is a simple measure, not dependent on some formula, and can be automatically computed~\cite{sheetz2009understanding}. + +Of course \gls{SLOC} must be used carefully as it is easily influenced by programming style, language paradigm, and counting method~\cite{alpernaswonderful}. Here we are counting code to compare development effort, use the same idiomatic programming style in each component, and only count lines of code, omitting comments and blank lines. + +\Cref{table_t4t:multi} enumerates the \gls{SLOC} required to implement the \gls{UOG} smart campus functionalities in \gls{PWS}, \gls{PRS}, \gls{CWS} and \gls{CRS}. Both \gls{PYTHON} and \gls{CLEAN} implementations use the same server and communication code for Raspberry Pi and for Wemos sensor nodes (rows 5--7 of the table). +The Sensor Interface (SI) refers to code facilitating the communication between the peripherals and the sensor node software. % formerly hardware interface +Sensor Node (SN) code contains all other code on the sensor node that does not belong to any another category, such as control flow. % formerly device output +%Server communication denotes code that provides the high level communication between the sensor node and the server. +Manage Nodes (MN) is code that coordinates sensor nodes, e.g.\ to add a new sensor node to the system. % formerly device management +Web Interface (WI) code provides the web interface from the server, i.e.\ the presentation layer. +Database Interface (DI) code communicates between the server and the database\strut(s). +Communication (CO) code provides communication between the server and the sensor nodes, and executes on both sensor node and server, i.e.\ the network layer. + +The most striking information in \cref{table_t4t:multi} is that \emph{the tierless implementations require far less code than the tiered implementations}. For example 166/562 \gls{SLOC} for \gls{CWS}\slash\gls{PWS}, or 70\% fewer \gls{SLOC}. We attribute the code reduction to three factors: reduced interoperation, automatic communication, and high level programming abstractions. We analyse each of these aspects in the following subsections. + +\begin{table} + \centering % used for centering table + \caption{Comparing tiered and tierless smart campus code sizes: \gls{SLOC} and number of source files. \gls{PWS} and \gls{CWS} execute on resource-constrained sensor nodes, while \gls{PRS} and \gls{CRS} execute on resource-rich sensor nodes.}% + \label{table_t4t:multi} + \begin{tabular}{l l c c c c } % centered columns (4 columns) + \toprule + & & \multicolumn{2}{c}{Tiered \gls{PYTHON}} & \multicolumn{2}{c}{Tierless \gls{CLEAN}} \\ + Code location & Functionality & \gls{PWS} & \gls{PRS} & \gls{CWS} & \gls{CRS} \\ + \midrule + Sensor Node & Sensor Interface & 52 & 57 & 11 & 11\\ + & Sensor Node & 178 & 183 & 9 & 4\\ + \midrule + Server & Manage Nodes & \multicolumn{2}{c}{76} & 35 & 30\\ + & Web Interface & \multicolumn{2}{c}{56} & \multicolumn{2}{c}{28}\\ + & Database Interface & \multicolumn{2}{c}{106} & \multicolumn{2}{c}{78}\\ + \midrule + Communication & Communication & 94 & 98 & 5 & 4\\ + \midrule + Total \gls{SLOC} & & 562 & 576 & 166 & 155 \\ + \textnumero{} Files & & 35 & 38 & 3 & 3 \\ + \bottomrule + \end{tabular} +\end{table} + +\paragraph{Code Proportions.} Comparing the percentages of code required to implement the smart campus functionalities normalises the data and avoids some issues when comparing \gls{SLOC} for different programming languages, and especially for languages with different paradigms like object-oriented \gls{PYTHON} and functional \gls{CLEAN}. \Cref{fig_t4t:multipercentage} shows the percentage of the total \gls{SLOC} required to implement the smart campus functionalities in each of the four implementations, and is computed from the data in \cref{table_t4t:multi}. It shows that there are significant differences between the percentage of code for each functionality between the tiered and tierless implementations. For example 17\% of the tiered implementations specifies communication, whereas this requires only 3\% of the tierless implementations, i.e.\ 6$\times$ less. We explore the reasons for this in \cref{sec_t4t:Communication}. The other major difference is the massive percentage of Database Interface code in the tierless implementations: at least 47\%. The smart campus specification required a standard DBMS, and the \gls{CLEAN}\slash\gls{ITASK} SQL interface occupies some 78 \gls{SLOC}. While this is a little less than the 106 \gls{SLOC} used in \gls{PYTHON} (\cref{table_t4t:multi}), it is a far higher percentage of systems with total codebases of only around 160 \gls{SLOC}. Idiomatic \gls{CLEAN}/\gls{ITASK} would use high level abstractions to store persistent data in an \gls{SDS}, requiring just a few \gls{SLOC}. +The total size of \gls{CWS} and \gls{CRS} would be reduced by a factor of two and the percentage of Database Interface code would be even less than in the tiered \gls{PYTHON} implementations. + + +\begin{figure} + \centering + \includegraphics[width=.7\linewidth]{bar_chart.pdf} + \caption{Comparing the percentage of code required to implement each functionality in tiered/tierless and resource-rich/constrained smart campus implementations.}% + \label{fig_t4t:multipercentage} +\end{figure} + +\subsection{Comparing Codebases for Resource-Rich/Constrained Sensor Nodes}% +\label{sec_t4t:resourcerich} + +Before exploring the reasons for the smaller tierless codebase we compare the implementations for resource-rich and resource-constrained sensor nodes, again using \gls{SLOC} and code proportions. \Cref{table_t4t:multi} shows that the two tiered implementations are very similar in size: with \gls{PWS} for microcontrollers requiring 562 \gls{SLOC} and \gls{PRS} for supersensors requiring 576 \gls{SLOC}. +The two tierless implementations are also similar in size: \gls{CWS} requiring 166 and \gls{CRS} 155 \gls{SLOC}. + +There are several main reasons for the similarity. One is that the server-side code, i.e.\ for the presentation and application layers, is identical for both resource rich/constrained implementations. The identical server code accounts for approximately 40\% of the \gls{PWS} and \gls{PRS} codebases, and approximately 85\% of the \gls{CWS} and \gls{CRS} codebases (\cref{fig_t4t:multipercentage}). For the perception and network layers on the sensor nodes, the \gls{PYTHON} and \gls{MICROPYTHON} implementations have the same structure, e.g.\ a class for each type of sensor, and use analogous libraries. Indeed, approaches like CircuitPython~\cite{CircuitPython} allow the same code to execute on both resource-rich and resource-constrained sensor nodes. + + +Like \gls{PYTHON} and \gls{MICROPYTHON}, \gls{ITASK} and \gls{MTASK} are designed to be similar, as elaborated in \cref{sec_t4t:ComparingTierless}. The similarity is apparent when comparing the \gls{ITASK} \gls{CRTS} and \gls{ITASK}\slash\gls{MTASK} \gls{CWTS} room temperature systems in \cref{lst_t4t:itaskTempFull,lst_t4t:mtaskTemp}. That is, both implementations use similar \glspl{SDS} and lenses; they have similar \cleaninline{devTask}s that execute on the sensor node, and the server-side \cleaninline{mainTask}s are almost identical: they deploy the remote \cleaninline{devTask} before generating the web page to report the readings. + +In both \gls{PYTHON} and \gls{CLEAN} the resource-constrained implementations are less than 7\% larger than the resource-rich implementations. This suggests that \emph{the development and maintenance effort of simple \gls{IOT} systems for resource-constrained and for resource-rich sensor nodes is similar in tierless technologies,} just as it is in tiered technologies. +A caveat is that the smart campus system is relatively simple, and developing more complex perception and network code on bare metal may prove more challenging. That is, the lack of \gls{OS} support, and the restricted languages and libraries, may have greater impact. We return to this issue in \cref{sec_t4t:ComparingTierless}. + + +\subsection{Reduced Interoperation}% +\label{sec_t4t:interoperation} +\begin{table} + \centering + \small + \caption{Smart campus implementation languages comparison.}% + \label{table_t4t:languages} + \begin{tabular}{lllllll} + \toprule + & & \multicolumn{4}{c}{Languages}\\ + \midrule + Code Location & Functionality & \gls{PWS} & \gls{PRS} & \gls{CWS} & \gls{CRS}\\ + \midrule + Sensor Node & Sensor Int. & \gls{MICROPYTHON} & \gls{PYTHON} & \gls{MTASK} & \gls{ITASK}\\ + & Sensor Node & \gls{MICROPYTHON} & \gls{PYTHON} & \gls{MTASK} & \gls{ITASK}\\ + \midrule + Server & Manage Nodes & \multicolumn{2}{c}{\gls{PYTHON}, \gls{JSON}} & \multicolumn{2}{c}{\gls{ITASK}}\\ + & Web Int. & \multicolumn{2}{c}{HTML, PHP} & \multicolumn{2}{c}{\gls{ITASK}}\\ + & Database Int. & \multicolumn{2}{c}{\gls{PYTHON},\gls{JSON},Redis} & \multicolumn{2}{c}{\gls{ITASK}}\\ + \midrule + Communication & Communication & \gls{MICROPYTHON} & \gls{PYTHON} & \gls{ITASK},\gls{MTASK} & \gls{ITASK}\\ + \midrule + & Total & 7 & 6 & 2 & 1\\ + \bottomrule + \end{tabular} +\end{table} + +\begin{table} + \centering + \small + \caption{Smart campus paradigm comparison.}% + \label{table_t4t:paradigms} + \begin{tabular}{llll} + \toprule + & & \multicolumn{2}{c}{Paradigms}\\ + \midrule + Code Location & Functionality & \gls{PYTHON} & \gls{CLEAN}\\ + \midrule + Sensor Node & Sensor Int. & imperative & declarative\\ + & Sensor Node & imperative & declarative\\ + \midrule + Server & Manage Nodes & imperative & declarative\\ + & Web Int. & both & declarative\\ + & Database Int. & both & declarative\\ + \midrule + Communication & Communication & imperative & declarative\\ + \midrule + & Total & 2 & 1 \\ + \bottomrule + \end{tabular} +\end{table} + +The vast majority of \gls{IOT} systems are implemented using a number of different programming languages and paradigms, and these must be effectively used and interoperated. A major reason that the tierless \gls{IOT} implementations are simpler and shorter than the tiered implementations is that they use far fewer programming languages and paradigms. Here we use language to distinguish \glspl{EDSL} from their host language: so \gls{ITASK} and \gls{MTASK} are considered distinct from \gls{CLEAN}; and to distinguish dialects: so \gls{MICROPYTHON} is considered distinct from \gls{PYTHON}. + +The tierless implementations use just two conceptually-similar \glspl{DSL} embedded in the same host language, and a single paradigm (\cref{table_t4t:languages,table_t4t:paradigms}). In contrast, the tiers in \gls{PRS} and \gls{PWS} use six or more very different languages, and both imperative and declarative paradigms. Multiple languages are commonly used in other typical software systems like web stacks, e.g.\ a recent survey of open source projects reveals that on average at least five different languages are used~\cite{mayer2015empirical}. Interoperating components in multiple languages and paradigms raises a plethora of issues. + +Interoperation \emph{increases the cognitive load on the developer} who must simultaneously think in multiple languages and paradigms. This is commonly known as semantic friction or impedance mismatch~\cite{ireland2009classification}. A simple illustration of this is that the tiered \gls{PRS} source code comprises some 38 source and configuration files, whereas the tierless \gls{CRS} requires just 3 files (\cref{table_t4t:multi}). The source could be structured as a single file, but to separate concerns is structured into three modules, one each for \glspl{SDS}, types, and control logic~\cite{wang_maintaining_2018}. + +The developer must \emph{correctly interoperate the components}, e.g.\ adhere to the \gls{API} or communication protocols between components. The interoperation often entails additional programming tasks like marshalling or demarshalling data between components. For example, in the tiered \gls{PRS} and \gls{PWS} architectures, \gls{JSON} is used to serialise and deserialise data strings from the \gls{PYTHON} collector component before storing the data in the Redis database (\cref{lst_t4t:json}). +%e.g.\ to marshall and demarshall data between components. + +%\mlcomment{A listing must have a caption for it to be labeled and referenced} +\begin{lstPython}[caption={\Gls{JSON} Data marshalling in \gls{PRS} and \gls{PWS}: sensor node above, server below.},label={lst_t4t:json}] + +channel = 'sensor_status.%s.%s' % (hostname, + sensor_types.sensor_type_name(s.sensor_type)) + self.r.publish(channel, s.SerializeToString()) + +[+\dotfill+] + +for message in p.listen(): + if message['type'] not in ['message', 'pmessage']: + continue + +try: + status = collector_pb2.SensorStatus.FromString(message['data']) +\end{lstPython} + +To ensure correctness the developer \emph{must maintain type safety} across a range of very different languages and diverse type systems, and we explore this further in \cref{sec_t4t:typesafety}. The developer must also deal with the \emph{potentially diverse failure modes}, not only of each component, but also of their interoperation, e.g.\ if a value of an unexpected type is passed through an \gls{API}. We explore this further in \cref{sec_t4t:NetworkManagement}. + +\subsection{Automatic Communication}% +\label{sec_t4t:Communication} + +In conventional tiered \gls{IOT} implementations the developer must write and maintain code to communicate between tiers. For example \gls{PRS} and \gls{PWS} create, send and read \gls{MQTT}~\cite{light2017mosquitto} messages +between the perception and application layers. \Cref{table_t4t:multi} shows that communication between these layers require some 94 \gls{SLOC} in \gls{PWS} and 98 in \gls{PRS}, accounting for 17\% of the codebase (bottom bars in \cref{fig_t4t:multipercentage}). To illustrate, \cref{lst_t4t:mwssmqtt} shows part of the code to communicate sensor readings from the \gls{PWS} sensor node to the Redis store on the server. + +Not only must the tiered developer write additional code, but \gls{IOT} communication code is often intricate. In such a distributed system the sender and receiver must be correctly configured, correctly follow the communication protocol through all execution states, and deal with potential failures. For example line 3 of \cref{lst_t4t:mwssmqtt}: \pythoninline{redis host = config.get('Redis', 'Host')} will fail if either the host or IP are incorrect. + +\begin{lstPython}[caption={Tiered communication example: \gls{MQTT} transmission of sensor values in \gls{PWS}.},label={lst_t4t:mwssmqtt}] +def main(): + config.init('mqtt') + redis_host = config.get('Redis', 'Host') + redis_port = config.getint('Redis', 'Port') + r = redis.StrictRedis(host=redis_host, port=redis_port) + p = r.pubsub() + p.psubscribe("sensor_status.*") + for message in p.listen(): + if message['type'] not in ['message', 'pmessage']: + print "Ignoring message %s" % message + [+\ldots+] +\end{lstPython} + +In contrast, the tierless \gls{CWS} and \gls{CRS} communication is not only highly automated, but also automatically correct because matching sender and receiver code is generated by the compiler. \Cref{table_t4t:multi} shows that communication is specified in just 5 \gls{SLOC} in \gls{CWS} and 4 in \gls{CRS}, or just 3\% of the codebase (bottom bars in \cref{fig_t4t:multipercentage}). + + +\Cref{lst_t4t:mtaskTemp} illustrates communication in a tierless \gls{IOT} language. That is, the \gls{CWTS} temperature sensor requires just three lines of communication code, and uses just three communication functions. The +\cleaninline{withDevice} function on \cref{lst_t4t:mtaskTemp:withdevice} integrates a sensor node with the server, allowing tasks to be sent to it. The +\cleaninline{liftmTask} on \cref{lst_t4t:mtaskTemp:liftmtask} integrates an \gls{MTASK} in the \gls{ITASK} runtime by compiling it and sending it for interpretation to the sensor node. +The \cleaninline{liftsds} on \cref{lst_t4t:mtaskTemp:liftsds} integrates \glspl{SDS} from \gls{ITASK} into \gls{MTASK}, allowing \gls{MTASK} tasks to interact with data from the \gls{ITASK} server. +The exchange of data, user interface, and communication are all automatically generated. + +\subsection{High Level Abstractions}% +\label{sec_t4t:abstractions} + +Another reason that the tierless \gls{CLEAN} implementations are concise is because they use powerful higher order \gls{IOT} programming abstractions. +For comprehensibility the simple temperature sensor from \cref{sec_t4t:mtasks} (\cref{lst_t4t:mtaskTemp}) is used to compare the expressive power of \gls{CLEAN} and \gls{PYTHON}-based \gls{IOT} programming abstractions. +There are implementations for all four configurations: \gls{PRTS} (\gls{PYTHON} Raspberry Pi Temperature Sensor)\footnotemark, \gls{PWTS}\footnotemark[\value{footnote}]\todo{the dataset will be uploaded, the DOI is reserved.} +\footnotetext{Lubbers, M.; Koopman, P.; Ramsingh, A.; Singer, J.; Trinder, P. (2021): Source code, line counts and memory stats for PRS, PWS, PRT and PWT.\ Zenodo.\ \href{https://doi.org/10.5281/zenodo.5081386}{10.5281/zenodo.5081386}.}, \gls{CRTS}\footnotemark{} and \gls{CWTS}\footnotemark[\value{footnote}] \todo{the dataset will be uploaded, the DOI is reserved.} +\footnotetext{Lubbers, M.; Koopman, P.; Ramsingh, A.; Singer, J.; Trinder, P. (2021): Source code, line counts and memory stats for CRS, CWS, CRTS and CWTS.\ Zenodo.\ \href{https://doi.org/10.5281/zenodo.5040754}{10.5281/zenodo.5040754}.} +but as the programming abstractions are broadly similar, we compare only the \gls{PWTS} and \gls{CWTS} implementations. + +Although the temperature sensor applications are small compared to the smart campus application, they share some typical \gls{IOT} stack traits. +The architecture consists of a server and a single sensor node (\cref{fig_t4t:cwtsDiagram}). +The sensor node measures and reports the temperature every ten seconds to the server while the server displays the latest temperature via a web interface to the user. + +\Cref{table_t4t:temp} compares the \gls{SLOC} required for the \gls{MICROPYTHON} and \gls{CLEAN}\slash\gls{ITASK}/\gls{MTASK} Wemos temperature sensors: \gls{PWTS} and \gls{CWTS} respectively. The code sizes here should not be used to compare the programming models as implementing such a small application as a conventional \gls{IOT} stack requires a significant amount of configuration and other machinery that would be reused in a larger application. Hence, the ratio between total \gls{PWTS} and \gls{CWTS} code sizes (298:15) is far greater than for realistic applications like \gls{PWS} and \gls{CWS} (471:166). + +\begin{table} + \centering + \caption{Comparing \gls{CLEAN} and \gls{PYTHON} programming abstractions using the \gls{PWTS} and \gls{CWTS} temperature sensors (\gls{SLOC} and total number of files.)}% + \label{table_t4t:temp} + \begin{tabular}{llccl} + \toprule + Location & Functionality & \gls{PWTS} & \gls{CWTS} & Lines (\cref{lst_t4t:mtaskTemp})\\ + \midrule + Sensor Node & Sensor Interface & 14 & 3 &~\ref{lst_t4t:mtaskTemp:si0},~\ref{lst_t4t:mtaskTemp:si1},~\ref{lst_t4t:mtaskTemp:si2}\\ + & Sensor Node & 67 & 4 &~\ref{lst_t4t:mtaskTemp:sn0},~\ref{lst_t4t:mtaskTemp:sn1},~\ref{lst_t4t:mtaskTemp:sn2},~\ref{lst_t4t:mtaskTemp:sn3}\\ + Server & Web Interface & 17 & 3 &~\ref{lst_t4t:mtaskTemp:wi0},~\ref{lst_t4t:mtaskTemp:wi1},~\ref{lst_t4t:mtaskTemp:wi2}\\ + & Database Interface & 106 & 2 &~\ref{lst_t4t:mtaskTemp:di0},~\ref{lst_t4t:mtaskTemp:di1}\\ + Communication & Communication & 94 & 3 &~\ref{lst_t4t:mtaskTemp:co0},~\ref{lst_t4t:mtaskTemp:co1},~\ref{lst_t4t:mtaskTemp:co2}\\ + \midrule +% \multicolumn{2}{c}{Total (\textnumero{} Files)} & 298 (27) & 15 (1) \\ +Total \gls{SLOC} & & 298 & 15 \\ + \textnumero{} Files & & 27 & 1 \\ + \bottomrule + \end{tabular} +\end{table} + +The multiple tiers in \gls{PRS} and \gls{PWS} provide different levels of abstraction and separation of concerns. +%in order to facilitate interoperation of the components. +However, there are various ways that high-level abstractions make the \gls{CWS} much shorter than \gls{PRS} and \gls{PWS} implementations. + +Firstly, functional programming languages are generally more concise than most other programming languages because their powerful abstractions like higher-order and/or polymorphic functions require less code to describe a computation. +Secondly, the \gls{TOP} paradigm used in \gls{ITASK} and \gls{MTASK} reduces the code size further by making it easy to specify \gls{IOT} functionality concisely. +As examples, the step combinator \cleaninline{>>*.} allows the task value on the left-hand side to be observed until one of the steps is enabled; +and the \cleaninline{viewSharedInformation} (line 31 of \cref{lst_t4t:mtaskTemp}) part of the UI will be automatically updated when the value of the \gls{SDS} changes. Moreover, each \gls{SDS} provides automatic updates to all coupled \glspl{SDS} and associated tasks. Thirdly, the amount of explicit type information is minimised in comparison to other languages, as much is automatically inferred~\cite{hughes1989functional}. + +\section{Could Tierless \texorpdfstring{\gls{IOT}}{IoT} Programming Be More Reliable than Tiered?}% +\label{sec_t4t:Discussion} + + +This section investigates whether tierless languages make \gls{IOT} programming more reliable. Arguably the much smaller and simpler code base is inherently more understandable, and more likely to be correct. Here we explore specific language issues, namely those of preserving type safety, maintainability, failure management, and community support. + +\subsection{Type Safety}% +\label{sec_t4t:typesafety} +Strong typing identifies errors early in the development cycle, and hence plays a crucial role in improving software quality. In consequence almost all modern languages provide strong typing, and encourage static typing to minimise runtime errors. +% Phil: so widely known that a citation is unnecessary~\cite{madsen1990strong}. +That said, many distributed system components written in languages that primarily use static typing, like \gls{HASKELL} and Scala, use some dynamic typing, e.g.\ to ensure that the data arriving in a message has the anticipated type~\cite{epstein2011towards,gupta2012akka}. + +In a typical tiered multi-language \gls{IOT} system the developer must integrate software in different languages with very different type systems, and potentially executing on different hardware. The challenges of maintaining type safety have long been recognised as a major component of the semantic friction in multi-language systems, e.g.\ \cite{ireland2009classification}. + +Even if the different languages used in two components are both strongly typed, they may attribute, often quite subtly, different types to a value. Such type errors can lead to runtime errors, or the application silently reporting erroneous data. Such errors can be hard to find. Automatic detection of such errors is sometimes possible, but requires an addition tool like Jinn~\cite{Jinn,Furr2005}. +%Such errors can be hard to debug, partly because there is very limited tool support for detecting them +%Phil: another possible source to discuss ~\cite{egyed1999automatically} + +\begin{lstPython}[caption={\Gls{PRS} loses type safety as a sensor node sends a {\tt\footnotesize double}, and the server stores a {\tt\footnotesize string}.},label={lst_t4t:float},morekeywords={message,enum,uint64,double}] +message SensorData { + enum SensorType { TEMPERATURE = 1; [+\ldots+] } + SensorType sensor_type = 1; + uint64 timestamp = 2; + double float_value = 3; +} +[+\dotfill+] +channel = 'sensor_status.%s.%s' % (hostname, + sensor_types.sensor_type_name(s.sensor_type)) + self.r.publish(channel, s.SerializeToString()) +\end{lstPython} + +Analysis of the \gls{PRS} codebase reveals an instance where it, fairly innocuously, loses type safety. The fragment in \cref{lst_t4t:float} first shows a \pythoninline{double} sensor value being sent from the sensor node, and then shows the value being stored in Redis as a \pythoninline{string} on the server. As \gls{PWS} preserves the same server components it also suffers from the same loss of type safety. + +\emph{A tierless language makes it possible to guarantee type safety across an entire \gls{IOT} stack}. For example the \gls{CLEAN} compiler guarantees static type safety as the entire \gls{CWS} software stack is type checked, and generated, from a single source. Tierless web stack languages like Links~\cite{cooper2006links} and Hop~\cite{serrano2006hop} provide the same guarantee for web stacks. + + +\subsection{Failure Management}% +\label{sec_t4t:NetworkManagement} + +Some \gls{IOT} applications, including smart campus and other building monitoring applications, require high sensor uptimes. Hence, if a sensor or sensor node fails the application layer must be notified, so that it can report the failure. In the \gls{UOG} smart campus system a building manager is alerted to replace the failed device. + +In many \gls{IOT} architectures, including \gls{PRS} and \gls{PWS}, detecting failure is challenging because the application layer listens to the devices. When a device comes online, it registered with the application and starts sending data. +When a device goes offline again, it could be because the power was out, the device was broken or the device just paused the connection. + +If a sensor node fails in \gls{CWS}, the \gls{ITASK}\slash\gls{MTASK} combinator interacting with a sensor node will throw an \gls{ITASK} exception. +The exception is propagated and a handler can respond, e.g.\ rescheduling the task on a different device in the room, or requesting that a manager replaces the device. That is, \gls{ITASK}, uses standard succinct declarative exception handling. + +\begin{lstClean}[caption={An \gls{MTASK} failover combinator.},label={lst_t4t:failover}] +failover :: [TCPSettings] (Main (MTask BCInterpret a)) -> Task a +failover [] _ = throw "Exhausted device pool" +failover [d:ds] mtask = try ( withDevice d (liftmTask mtask) ) except +where except MTEUnexpectedDisconnect = failover ds mtask + except _ = throw e +\end{lstClean} + +In the \gls{UOG} smart campus application, this can be done by creating a pool of sensor nodes for each room and when a sensor node fails, assign another one to the task. +%If the pool of sensor nodes for a room is exhausted, contact a manager. +\Cref{lst_t4t:failover} shows a failover combinator that executes an \gls{MTASK} on one of a pool of sensor nodes. +If a sensor node unexpectedly disconnects, the next sensor node is tried until there are no sensor nodes left. +If other errors occur they are propagated as usual. + + +Currently, \gls{PRS} and \gls{PWS} both use heartbeats to confirm that the sensor nodes are operational, and will report failures. At the cost of extending the codebase, failover to an alternate sensor node could be provided. + +\subsection{Maintainability} + +Far more engineering effort is expended on maintaining a system, than on the initial development. Tiered and tierless \gls{IOT} systems have very different maintainability properties. + +The modularity of the tiered stack makes replacing tiers/components easy. For example in \gls{PWS} or \gls{PRS} the MongoDB NoSQL DBMS could be readily be replaced by an alternative like {CouchDB}. Because a tierless compiler must generate code for components, replacing them may not be so easy. If there are \gls{ITASK} abstractions for the component then replacement is straightforward. For example replacing SQLite with some other SQL DBMS simply entails recompilation of the application. +However incorporating a component that does not yet have a task abstraction, like a NoSQL DBMS, is more involved. That is, a foreign function interface to the new component must be implemented, along with a suitable \gls{ITASK} abstraction for operations on the component. + +Many maintenance tasks are smaller in scale and occur within the components or tiers. Consider a simple change, for example if the temperature value recorded by a sensor changes from integer to real. + +All tiers of a tiered stack must be correctly and consistently refactored to reflect the change of temperature data type: so changes at the perception, network, application and presentation layers. A \gls{PWS} developer works in seven languages and two paradigms to effect the change (\cref{table_t4t:multi}), and must edit many source files. Many programming errors are either detected at runtime when testing the stack, or worse not automatically detected and produce erroneous results. + +In a tierless language the source code is much smaller and so it is easier to comprehend, i.e.\ to understand what refactoring is required. A \gls{CWS} developer works in only two languages and a single paradigm to effect the change, and will edit no more than three source files (\cref{table_t4t:multi}). Moreover, the compiler will statically detect many programming errors. + +More substantial in-component maintenance raises similar issues as for tiered implementations. If the maintenance activity requires a new task combinator, this is readily constructed in \gls{ITASK}, but may require changing the \gls{DSL} implementation in \gls{MTASK}, i.e.\ to change the compiler and the byte code interpreter. That is, \gls{MTASK} is more \emph{brittle} than \gls{ITASK}. + +In summary, while a tiered approach makes replacing components easy, refactoring within the components is far harder in a multi-tier multi-language \gls{IOT} implementation than in a tierless \gls{IOT} implementation. + +\subsection{Support}% +\label{sec_t4t:support} +%\mlcomment{I've shortened this quite a bit} +Community and tool support are essential for engineering reliable production software. \gls{PRS} and \gls{PWS} are both \gls{PYTHON} based, and \gls{PYTHON}\slash\gls{MICROPYTHON} are among the most popular programming languages~\cite{cass2020top}. \gls{PYTHON} is also a common choice for some tiers of \gls{IOT} applications~\cite{tanganelli2015coapthon}. +Hence, there are a wide range of development tools like \glspl{IDE} and debuggers, a thriving community and a wealth of training material. There are even specialised \gls{IOT} Boards like PyBoard \& WiPy that are specifically programmed using \gls{PYTHON} variations like \gls{MICROPYTHON}. + +In contrast, tierless languages are far less mature than the languages used in tiered stacks, and far less widely adopted. +This means that for \gls{CWS} and \gls{CRS} there are fewer tools, a far smaller developer community, and less training material available. + +\Gls{CWS} and \gls{CRS} are both written in \glspl{DSL} embedded in \gls{CLEAN}, a fairly stable industrial-grade but niche functional programming language. +The \glspl{DSL} are implemented in \gls{CLEAN} but require experimental compiler extensions that are often undocumented. +There are few maintainers of the \glspl{DSL} and documentation is often sparse. +Acquiring information about the systems requires distilling academic papers and referring to the source code. +There is a \gls{CLEAN} \gls{IDE}, but it does not contain support for the \gls{ITASK} or \gls{MTASK} \glspl{DSL}. + +\section{Comparing Tierless Languages for Resource-rich/constrained Sensor Nodes}% +\label{sec_t4t:ComparingTierless} + +This section compares two tierless \gls{IOT} languages: one for resource-rich, and the other for resource-constrained, sensor nodes. Key issues are the extent to which the very significant resource constraints of a microcontroller limit the language, and the benefits of executing on bare metal, i.e.\ without an \gls{OS}. + +With the tierless \gls{CLEAN} technologies described here, \gls{ITASK} are always used to program the application and presentation layers of the \gls{IOT} stack. So any differences occur in the perception and network layer programming. +If sensor nodes have the capacity to support \gls{ITASK}, a tierless \gls{IOT} system can be constructed in \gls{CLEAN} using only \gls{ITASK}, as in \gls{CRS}. Alternatively for sensor nodes with low computational power, like typical microcontrollers, \gls{MTASK} is used for the perception and network layers, as in \gls{CWS}. +This section compares the \gls{ITASK} and \gls{MTASK} \glspl{EDSL}, with reference to \gls{CRS} and \gls{CWS} as exemplars. \Cref{table_t4t:languagecomparison} summarises the differences between the \gls{CLEAN} embedded \gls{IOT} \glspl{EDSL} and their host language. + +\begin{table} + \small + \caption{Comparing tierless \gls{IOT} languages for resource-rich sensor nodes (\gls{ITASK} \gls{EDSL}), for resource-constrained sensor nodes (\gls{MTASK} \gls{EDSL}), and their \gls{CLEAN} host language.}% + \label{table_t4t:languagecomparison} + \begin{tabularx}{\textwidth}{lXXX} + \toprule + Property & \gls{CLEAN} & \gls{ITASK} & \gls{MTASK}\\ + \midrule + Function for an \gls{IOT} System & Host Language & Specify distributed workflows & Specify sensor node workflow \\ + \midrule + Referentially transparent & Yes & Yes & Yes \\ + Evaluation strategy & Lazy & Lazy & Strict\\ + Higher-order functions & Yes & Yes & No \\ + User-defined datatypes & Yes & Yes & No \\ + Task oriented & No & Yes & Yes \\ + Higher-order tasks & {--} & Yes & No \\ + Execution Target & Commodity PC & Commodity PC and Browser & Microcontroller\\ + Language Implementation & Compiled or interpreted & Compiled and interpreted & Interpreted\\ + \bottomrule + \end{tabularx} +\end{table} + +\subsection{Language Restrictions for Resource-Constrained Execution} + +Executing components on a resource-constrained sensor node imposes restrictions on programming abstractions available in a tierless \gls{IOT} language or \gls{DSL}. The small and fixed-size memory are key limitations. The limitations are shared by any high-level language that targets microcontrollers such as BIT, PICBIT, PICOBIT, Microscheme and uLisp~\cite{dube_bit:_2000,feeley_picbit:_2003,st-amour_picobit:_2009,suchocki_microscheme:_2015, johnson-davies_lisp_2020}. +Even in low level languages some language features are disabled by default when targeting microcontrollers, such as runtime type information (RTTI) in \gls{CPP}. + +Here we investigate the restrictions imposed by resource-constrained sensor nodes on \gls{MTASK}, in comparison with \gls{ITASK}. While \gls{ITASK} and \gls{MTASK} are by design superficially similar languages, to execute on resource-constrained sensor nodes \gls{MTASK} tasks are more restricted, and have a different semantics. + +\Gls{MTASK} programs do not support user defined higher order functions, the only higher order functions available are the predefined \gls{MTASK} combinators. +Programmers can, however, use any construct of the \gls{CLEAN} host language to construct an \gls{MTASK} program, including higher order functions and arbitrary data types. For example folding an \gls{MTASK} combinator over a list of tasks. +The only restriction is that any higher order function must be macro expanded to a first order \gls{MTASK} program before being compiled to byte code. +%\mlcomment{Pieter: Refine paragraph about macro expansion and currying/HOF} +As an example in \cref{lst_t4t:mtaskTemp} we use \cleaninline{temperature dht >>~.} \cleaninline{setSds localSds} instead of \cleaninline{temperature dht >>~.} \cleaninline{\\temp -> setSds localSds temp}. +%However, this is limited to situations where the expressions are expanded to the required \gls{MTASK} types, i.e.\ the host language acts as a macro language for \gls{MTASK}. +%\mlcomment{I've refined this. The host language does not offer limited use of HOF and currying. It only appears to offer, just macro expansion}. +%\pwtcomment{I've rewritten: please check.} + +In contrast to \gls{ITASK}, \gls{MTASK} programs have no user defined or recursive data types. It is possible to add user defined types---as long as they are not sum types---to \gls{MTASK}, but this requires significant programming effort. +Due to the language being shallowly embedded, pattern matching and field selection on user defined types is not readily available and thus needs to be built into the language by hand. +Alleviating this limitation remains future work. + +\Gls{MTASK} programs mainly use strict rather than lazy evaluation to minimise the requirement for a variable size heap. This has no significant impact for the \gls{MTASK} programs we have developed here, nor in other \gls{IOT} applications we have engineered. + +\Gls{MTASK} abstractions are less easily extended than \gls{ITASK}. For example \gls{ITASK} can be extended with a new combinator that composes a specific set of tasks for some application. +Without higher order functions the equivalent combinator can often not be expressed in \gls{MTASK}, and adding it to \gls{MTASK} requires extending the \gls{DSL} rather than writing a new definition in it. +On the other hand, it is possible to outsource this logic to the \gls{ITASK} program as \gls{MTASK} and \gls{ITASK} tasks are so tightly integrated. + +\subsection{The Benefits of a Bare Metal Execution Environment} + +Despite the language restrictions, components of a tierless language executing on a microcontroller can exploit the bare metal environment. Many of these benefits are shared by other bare metal languages like \gls{MICROPYTHON} or \gls{C}\slash\gls{CPP}. So as \gls{MTASK} executes on bare metal it has some advantages over \gls{ITASK}. Most notably \gls{MTASK} has better control of timing as on bare metal there are no other processes or threads that compete for CPU cycles. +This makes the \gls{MTASK} \cleaninline{repeatEvery} (\cref{lst_t4t:mtaskTemp}, \cref{lst_t4t:mtaskTemp:sn2}) much more accurate than the \gls{ITASK} \cleaninline{waitForTimer} (\cref{lst_t4t:itaskTempFull}, \cref{lst_t4t:itaskTempFull:waitForTimer}). +While exact timing is not important in this example, it is significant for many other \gls{IOT} applications. +In contrast \gls{ITASK} cannot give real time guarantees. One reason is that an \gls{ITASK} server can ship an arbitrary number of \gls{ITASK} or \gls{MTASK} tasks to a device. +Such competing tasks, or indeed other \gls{OS} threads and processes, consume processor time and reduce the accuracy of timings. +However, even when using multiple \gls{MTASK} tasks, it is easier to control the number of tasks on a device than controlling the number of processes and threads executing under an \gls{OS}. + +An \gls{MTASK} program has more control over energy consumption. +The \gls{MTASK} \gls{EDSL} and the \gls{MTASK} \gls{RTS} are designed to minimise energy usage~\cite{crooijmans_reducing_2021}. +Intensional analysis of the declarative task description and current progress at run time allow the \gls{RTS} to schedule tasks and maximise idle time. +As the \gls{RTS} is the only program running on the device, it can enforce deep sleep and wake up without having to worry about influencing other processes. + +The \gls{MTASK} \gls{RTS} has direct control of the peripherals attached to the microcontroller, e.g.\ over \gls{GPIO} pins. There is no interaction with, or permission required from, the \gls{OS}. +Moreover, microcontrollers typically have better support for hardware interrupts, reducing the need to poll peripherals. +The downside of this direct control is that \gls{CWS} has to handle some exceptions that would otherwise be handled by the \gls{OS} in \gls{CRS} and hence the device management code is longer: 28 versus 20 \gls{SLOC} in \cref{table_t4t:multi}. + +\subsection{Summary} + +\Cref{table_t4t:languagecomparison} summarises the differences between the \gls{CLEAN} \gls{IOT} \gls{EDSL} and their host language. +The restrictions imposed by a resource-constrained execution environment on the tierless \gls{IOT} language are relatively minor. Moreover the \gls{MTASK} programming abstraction is broadly compatible with \gls{ITASK}. As a simple example compare the \gls{ITASK} and \gls{MTASK} temperature sensors in \cref{lst_t4t:itaskTempFull,lst_t4t:mtaskTemp}. As a more realistic example, the \gls{MTASK} based \gls{CWS} smart campus implementation is similar to the \gls{ITASK} based \gls{CRS}, and requires less than 10\% additional code: 166 \gls{SLOC} compared with 155 \gls{SLOC} (\cref{table_t4t:multi}). + +Even with these restrictions, \gls{MTASK} programming is at a far higher level of abstraction than almost all bare metal languages, e.g.\ BIT, PICBIT, PICOBIT and Microscheme. That is \gls{MTASK} provides a set of higher order task combinators, shared distributed data stores, etc. (\cref{sec_t4t:mtasks}). Moreover, it seems that common sensor node programs are readily expressed using \gls{MTASK}. In addition to the \gls{CWTS} and \gls{CWS} systems outlined here, other case studies include Arduino examples as well as some bigger tasks~\cite{koopman_task-based_2018,lubbers_writing_2019,LubbersMIPRO}. We conclude that the programming of sensor tasks is well-supported by both \glspl{DSL}. + +\section{Conclusion}% +\label{sec_t4t:Conclusion} + +\subsection{Summary} + + +We have conducted a systematic comparative evaluation of two tierless language technologies for \gls{IOT} stacks: one for resource-rich, and the other for resource-constrained sensor nodes. The basis is four implementations of a deployed smart campus \gls{IOT} stack: two conventional tiered and \gls{PYTHON}-based stacks, and two tierless \gls{CLEAN} stacks. An operational comparison of implementations demonstrates that they have equivalent functionality, and meet the \gls{UOG} smart campus functional requirements (\cref{sec_t4t:Case}). + +We show that \emph{tierless languages have the potential to significantly reduce the development effort for \gls{IOT} systems}. Specifically the tierless \gls{CWS} and \gls{CRS} stacks require far less code, i.e.\ 70\% fewer \gls{SLOC}, than the tiered \gls{PWS} and \gls{PRS} stacks (\cref{table_t4t:multi}). We analyse the code reduction and attribute it to the following three main factors. +\begin{enumerate*} + \item Tierless developers need to manage less interoperation: \gls{CRS} uses a single \gls{DSL} and paradigm, and \gls{CWS} uses two \glspl{DSL} in a single paradigm and three source code files. In contrast, both \gls{PRS} and \gls{PWS} use at least six languages in two paradigms and spread over at least 35 source code files (\cref{table_t4t:multi,table_t4t:languages,table_t4t:paradigms}). Thus, a tierless stack minimises semantic friction. + \item Tierless developers benefit from automatically generated, and hence correct, communication (\cref{lst_t4t:mtaskTemp}), and write 6$\times$ less communication code (\cref{fig_t4t:multipercentage}). +%and TODO).%~\ref{lst_t4t:mqtt}). + \item Tierless developers can exploit powerful high-level declarative and task-oriented \gls{IOT} programming abstractions (\cref{table_t4t:temp}), specifically the composable, higher-order task combinators outlined in \cref{sec_t4t:itasks}. +Our empirical results for \gls{IOT} systems are consistent with the benefits claimed for tierless languages in other application domains. Namely that a tierless language provides a \textit{Higher Abstraction Level}, \textit{Improved Software Design}, and improved \textit{Program Comprehension}~\cite{weisenburger2020survey}. +\end{enumerate*} + +We show that \emph{tierless languages have the potential to significantly improve the reliability of \gls{IOT} systems}. We illustrate how \gls{CLEAN} maintains type safety, contrasting this with a loss of type safety in \gls{PRS}. +We illustrate higher order failure management in \gls{CLEAN}\slash\gls{ITASK}/\gls{MTASK} in contrast to the \gls{PYTHON}-based failure management in \gls{PRS}. For maintainability a tiered approach makes replacing components easy, but refactoring within the components is far harder than in a tierless \gls{IOT} language. Again our findings are consistent with the simplied \textit{Code Maintenance} benefits claimed for tierless languages~\cite{weisenburger2020survey}. +Finally, we contrast community support for the technologies (\cref{sec_t4t:Discussion}). + +%\pwtcomment{Pieter: please check discussion of ~\cite{weisenburger2020survey} in preceding 2 paragraphs} + +We report \emph{the first comparison of a tierless \gls{IOT} codebase for resource-rich sensor nodes with one for resource-constrained sensor nodes}. +\begin{enumerate*} + \item The tierless implementations have very similar code sizes (\gls{SLOC}), as do the tiered implementations: less than 7\% difference in \cref{table_t4t:multi}. This suggests that the development and maintenance effort of simple tierless \gls{IOT} systems for resource-constrained and for resource-rich sensor nodes is similar, as it is for tiered technologies. + \item The percentages of code required to implement each \gls{IOT} functionality in the tierless \gls{CLEAN} implementations is very similar +as it is in the tiered \gls{PYTHON} implementations (\cref{fig_t4t:multipercentage}). This suggests that the code for resource-constrained and resource-rich sensor nodes can be broadly similar in tierless technologies, as it is in many tiered technologies (\cref{sec_t4t:resourcerich}). +\end{enumerate*} + +We present \emph{the first comparison of two tierless \gls{IOT} languages: one designed for resource-constrained sensor nodes (\gls{CLEAN} with \gls{ITASK} and \gls{MTASK}), and the other for resource-rich sensor nodes (\gls{CLEAN} with \gls{ITASK}).} \gls{CLEAN}\slash\gls{ITASK} can implement all layers of the \gls{IOT} stack if the sensor nodes have the computational resources, as the Raspberry Pis do in \gls{CRS}. On resource constrained sensor nodes \gls{MTASK} are required to implement the perception and network layers, as on the Wemos minis in \gls{CWS}. We show that a bare metal execution environment allows \gls{MTASK} to have better control of peripherals, timing and energy consumption. The memory available on a microcontroller restricts the programming abstractions available in \gls{MTASK} to a fixed set of combinators, no user defined or recursive data types, strict evaluation, and makes it harder to add new abstractions. Even with these restrictions \gls{MTASK} provide a higher level of abstraction than most bare metal languages, and can readily express many \gls{IOT} applications including the \gls{CWS} \gls{UOG} smart campus application (\cref{sec_t4t:ComparingTierless}). +Our empirical results are consistent with the benefits of tierless languages listed in Section 2.1 of~\cite{weisenburger2020survey}. + +\subsection{Reflections} + +This study is based on a specific pair of tierless \gls{IOT} languages, and the \gls{CLEAN} language frameworks represent a specific set of tierless language design decisions. Many alternative tierless \gls{IOT} language designs are possible, and some are outlined in \cref{sec_t4t:characteristics}. Crucially the limitations of the tierless \gls{CLEAN} languages, e.g.\ that they currently provide limited security, should not be seen as limitations of tierless technologies in general. + +This study has explored some, but not all, of the potential benefits of tierless languages for \gls{IOT} systems. An \gls{IOT} system specified as a single tierless program is amenable to a host of programming language technologies. For example, if the language has a formal semantics, as Links, Hop and \gls{CLEAN} tasks do~\cite{cooper2006links,serrano2006hop,plasmeijer_task-oriented_2012}, it is possible to prove properties of the system, e.g.\ \cite{Steenvoorden2019tophat}. As another example program analyses can be applied, and \cref{sec_t4t:characteristics} and~\cite{weisenburger2020survey} outline some of the analyses could be, and in some cases have been, used to improve \gls{IOT} systems. Examples include automatic tier splitting~\cite{10.1145/2661136.2661146}, and controlling information flow to enhance security~\cite{valliappan_towards_2020}. + +While offering real benefits for \gls{IOT} systems development, tierless languages also raise some challenges. Programmers must master new tierless programming abstractions, and the semantics of these automatic multi-tier behaviours are necessarily relatively complex. In the \gls{CLEAN} context this entails becoming proficient with the \gls{ITASK} and \gls{MTASK} \glspl{DSL}. Moreover, specifying a behaviour that is not already provided by the tierless language requires either a workaround, or extending a \gls{DSL}. However, implementing the relatively simple smart campus application required no such adaption. Finally, tierless \gls{IOT} technology is very new, and both tool and community support have yet to mature. + + +\subsection{Future Work} + +This paper is a technology comparison between tiered and tierless technologies. The metrics reported, such as code size, numbers of source code files, and of paradigms are only indirect, although widely accepted, measures of development effort. A more convincing evaluation of tierless technologies could be provided by conducting a carefully designed and substantial user study, e.g.\ using N-version programming. + +A study that implemented common benchmarks or a case study in multiple tierless \gls{IOT} languages would provide additional evidence for the generality of the tierless approach. Such a study would enable the demonstration and comparison of alternative design decisions within tierless languages, as outlined in \cref{sec_t4t:characteristics}. + + +In ongoing work we are extending the \gls{MTASK} system in various ways. One extension allows \gls{MTASK} tasks to communicate directly, rather than via the \gls{ITASK} server. Another provides better energy management, which is crucial for battery powered sensor nodes. + +\section*{Acknowledgements} +Thanks to Kristian Hentschel and Dejice Jacob who developed and maintain \gls{PRS} +and to funders: Royal Netherlands Navy, the Radboud-Glasgow Collaboration Fund, and UK EPSRC grants MaRIONet (EP/P006434) and STARDUST (EP/T014628). We also thank Lito Michala, Jose Cano, Greg Michaelson, Rinus Plasmeijer, and the anonymous TIOT reviewers for valuable feedback on the paper. \input{subfilepostamble} \end{document} diff --git a/tiot.bib b/tiot.bib new file mode 100644 index 0000000..882294e --- /dev/null +++ b/tiot.bib @@ -0,0 +1,1596 @@ +@article{sethi2017internet, + title={Internet of things: architectures, protocols, and applications}, + author={Sethi, Pallavi and Sarangi, Smruti R}, + journal={Journal of Electrical and Computer Engineering}, + volume={2017}, + year={2017}, + publisher={Hindawi} +} + +@inproceedings{muccini2018iot, +author="Muccini, Henry and Moghaddam, Mahyar Tourchi", +editor="Cuesta, Carlos E. and Garlan, David and P{\'e}rez, Jennifer", +title="IoT Architectural Styles", +booktitle="Software Architecture", +year="2018", +publisher="Springer International Publishing", +address="Cham", +pages="68--85", +abstract="IoT components are becoming more and more ubiquitous. Thus, the necessity of architecting IoT applications is bringing a substantial attention towards software engineering community. On this occasion, different styles and patterns can facilitate shaping the IoT architectural characteristics. This study aims at defining, identifying, classifying, and re-designing a class of IoT styles and patterns at the architectural level. Conforming a systematic mapping study (SMS) selection procedure, we picked out 63 papers among over 2,300 candidate studies. To this end, we applied a rigorous classification and extraction framework to select and analyze the most influential domain-related information. Our analysis revealed the following main findings: (i) facing by various architectural styles that attempted to address various aspects of IoT systems, cloud and fog are discerned as their most important components. (ii) distributed patterns are not widely discussed for IoT architecture, however, there is foreseen a grow specially for their industrial applications. (iii) starting from the last few years on, there is still a growing scientific interest on IoT architectural styles. This study gives a solid foundation for classifying existing and future approaches for IoT styles beneficial for academic and industrial researchers. It provides a set of abstract IoT reference architectures to be applicable on various architectural styles.", +isbn="978-3-030-00761-4" +} + +@inproceedings{rosenberg1997some, + title={Some misconceptions about lines of code}, + author={Rosenberg, Jarrett}, + booktitle={Proceedings fourth international software metrics symposium}, + pages={137--142}, + year={1997}, + organization={IEEE}, + publisher={IEEE}, + doi={10.1109/METRIC.1997.637174}, +address={Albuquerque, NM, USA} +} + +@inproceedings{cooper2006links, + address = {Berlin, Heidelberg}, + title = {Links: {Web} {Programming} {Without} {Tiers}}, + isbn = {978-3-540-74792-5}, + abstract = {Links is a programming language for web applications that generates code for all three tiers of a web application from a single source, compiling into JavaScript to run on the client and into SQL to run on the database. Links supports rich clients running in what has been dubbed `Ajax' style, and supports concurrent processes with statically-typed message passing. Links is scalable in the sense that session state is preserved in the client rather than the server, in contrast to other approaches such as Java Servlets or PLT Scheme. Client-side concurrency in JavaScript and transfer of computation between client and server are both supported by translation into continuation-passing style.}, + booktitle = {Formal {Methods} for {Components} and {Objects}}, + publisher = {Springer Berlin Heidelberg}, + author = {Cooper, Ezra and Lindley, Sam and Wadler, Philip and Yallop, Jeremy}, + editor = {de Boer, Frank S. and Bonsangue, Marcello M. and Graf, Susanne and de Roever, Willem-Paul}, + year = {2007}, + pages = {266--296} +} + +@inproceedings{serrano2006hop, + title={Hop: a language for programming the web 2.0}, + author={Serrano, Manuel and Gallesio, Erick and Loitsch, Florian}, + booktitle={OOPSLA Companion}, + pages={975--985}, + year={2006}, + publisher={ACM}, + address={Portland, Oregon, USA}, +} + +@inproceedings{lloyd1994practical, + title={Practical Advtanages of Declarative Programming.}, + author={Lloyd, John W}, + booktitle={GULP-PRODE (1)}, + pages={18--30}, + year={1994} +} + +@online{singer16, +author ={Jeremy Singer, Dejice Jacob, Kristian Hentschel}, +year = {2016}, +title ={Anyscale Sensors}, +url ={https://bitbucket.org/jsinger/anyscale-sensors/src/master/Readme.md}, +month ={Apr}, +lastaccessed ={April 1, 2016}, +} + +@article{pechtchanski2005immutability, + title={Immutability specification and its applications}, + author={Pechtchanski, Igor and Sarkar, Vivek}, + journal={Concurrency and Computation: Practice and Experience}, + volume={17}, + number={5-6}, + pages={639--662}, + year={2005}, + publisher={Wiley Online Library} +} + +@inproceedings{steiner_firmata_2009, + title = {Firmata: {Towards} {Making} {Microcontrollers} {Act} {Like} {Extensions} of the {Computer}.}, + booktitle = {{NIME}}, + author = {Steiner, Hans-Christoph}, + year = {2009}, + pages = {125--130}, +} + +@article{levis_mate_2002, + title = {Maté: {A} tiny virtual machine for sensor networks}, + volume = {37}, + number = {10}, + journal = {ACM Sigplan Notices}, + author = {Levis, Philip and Culler, David}, + year = {2002}, + publisher = {ACM}, + pages = {85--95}, + file = {Levis and Culler - Matd A Tiny Virtual Machine for Sensor Networks.pdf:/home/mrl/.local/share/zotero/storage/RMPGY9NI/Levis and Culler - Matd A Tiny Virtual Machine for Sensor Networks.pdf:application/pdf} +} + +@inproceedings{grebe_threading_2019, + address = {Cham}, + title = {Threading the {Arduino} with {Haskell}}, + isbn = {978-3-030-14805-8}, + abstract = {Programming embedded microcontrollers often requires the scheduling of independent threads of execution, specifying the interaction and sequencing of actions in the multiple threads. Developing and debugging such multi-threaded systems can be especially challenging in highly resource constrained systems such as the Arduino line of microcontroller boards. The Haskino library, developed at the University of Kansas, allows programmers to develop code for Arduino-based microcontrollers using monadic Haskell program fragments. This paper describes our efforts to extend the Haskino library to translate monadic Haskell code to multi-threaded code executing on Arduino boards.}, + booktitle = {Trends in {Functional} {Programming}}, + publisher = {Springer}, + author = {Grebe, Mark and Gill, Andy}, + editor = {Van Horn, David and Hughes, John}, + year = {2019}, + pages = {135--154}, + file = {Grebe and Gill - Threading the Arduino with Haskell.pdf:/home/mrl/.local/share/zotero/storage/DW5PS9ZA/Grebe and Gill - Threading the Arduino with Haskell.pdf:application/pdf} +} + +@inproceedings{grebe_haskino_2016, + title = {Haskino: {A} remote monad for programming the arduino}, + shorttitle = {Haskino}, + booktitle = {International {Symposium} on {Practical} {Aspects} of {Declarative} {Languages}}, + publisher = {Springer}, + author = {Grebe, Mark and Gill, Andy}, + year = {2016}, + pages = {153--168}, + file = {Grebe-16-Haskino.pdf:/home/mrl/.local/share/zotero/storage/ABG7TTLV/Grebe-16-Haskino.pdf:application/pdf} +} + +@inproceedings{gill_remote_2015, +author = {Gill, Andy and Sculthorpe, Neil and Dawson, Justin and Eskilson, Aleksander and Farmer, Andrew and Grebe, Mark and Rosenbluth, Jeffrey and Scott, Ryan and Stanton, James}, +title = {The Remote Monad Design Pattern}, +year = {2015}, +doi = {10.1145/2804302.2804311}, +booktitle = {Proceedings of the 2015 ACM SIGPLAN Symposium on Haskell}, +pages = {59–70}, +} + +@article{light2017mosquitto, + title={Mosquitto: server and client implementation of the MQTT protocol}, + author={Light, Roger}, + journal={Journal of Open Source Software}, + volume={2}, + number={13}, + pages={265}, + year={2017} +} + +@article{adl2006compiler, + title={Compiler and runtime support for efficient software transactional memory}, + author={Adl-Tabatabai, Ali-Reza and Lewis, Brian T and Menon, Vijay and Murphy, Brian R and Saha, Bratin and Shpeisman, Tatiana}, + journal={ACM SIGPLAN Notices}, + volume={41}, + number={6}, + pages={26--37}, + year={2006}, + publisher={ACM} +} + +@inproceedings{schwarz2002disassembly, + title={Disassembly of executable code revisited}, + author={Schwarz, Benjamin and Debray, Saumya and Andrews, Gregory}, + booktitle={Ninth Working Conference on Reverse Engineering, 2002. Proceedings.}, + pages={45--54}, + year={2002}, + organization={IEEE} +} + +@article{hughes1989functional, + title={Why functional programming matters}, + author={Hughes, John}, + journal={The computer journal}, + volume={32}, + number={2}, + pages={98--107}, + year={1989}, + publisher={Oxford University Press} +} + +@article{davidson2018expressiveness, + title={Expressiveness, meanings and machines}, + author={Davidson, Joe and Michaelson, Greg}, + journal={Computability}, + volume={7}, + number={4}, + pages={367--394}, + year={2018}, + publisher={IOS Press} +} + +@inproceedings{troyer_building_2018, + title = {Building {IoT} {Systems} {Using} {Distributed} {First}-{Class} {Reactive} {Programming}}, + booktitle = {2018 {IEEE} {International} {Conference} on {Cloud} {Computing} {Technology} and {Science} ({CloudCom})}, + author = {Troyer, de, Christophe and Nicolay, Jens and Meuter, de, Wolfgang}, + month = dec, + year = {2018}, + pages = {185--192}, + publisher = {IEEE}, + address = {Nicosia, Cyprus}, +} + +@article{harth_predictive_2018, + author = {Natascha Harth and Christos Anagnostopoulos and Dimitrios Pezaros}, + title = {Predictive intelligence to the edge: impact on edge analytics}, + journal = {Evolving Systems}, + volume = {9}, + number = {2}, + pages = {95--118}, + year = {2018}, +} + +@inproceedings{naik2017choice, + title={Choice of effective messaging protocols for IoT systems: MQTT, CoAP, AMQP and HTTP}, + author={Naik, Nitin}, + booktitle={2017 IEEE international systems engineering symposium (ISSE)}, + pages={1--7}, + year={2017}, + organization={IEEE} +} + +@book{guinard_building_2016, + address = {USA}, + edition = {1st}, + title = {Building the {Web} of {Things}: {With} {Examples} in {Node}.{Js} and {Raspberry} {Pi}}, + isbn = {1-61729-268-0}, + publisher = {Manning Publications Co.}, + author = {Guinard, Dominique and Trifa, Vlad}, + year = {2016} +} + +@inproceedings{ireland2009classification, + title={A classification of object-relational impedance mismatch}, + author={Ireland, Christopher and Bowers, David and Newton, Michael and Waugh, Kevin}, + booktitle={2009 First International Confernce on Advances in Databases, Knowledge, and Data Applications}, + pages={36--43}, + year={2009}, + organization={IEEE}, + publisher={IEEE}, + doi={10.1109/DBKDA.2009.11}, + address={Gosier, France} +} + +@article{maccormack2007impact, + title={The impact of component modularity on design evolution: Evidence from the software industry}, + author={MacCormack, Alan and Rusnak, John and Baldwin, Carliss Y}, + journal={Harvard Business School Technology \& Operations Mgt. Unit Research Paper}, + number={038}, + volume={08}, + year={2007}, + month={dec}, + doi={10.2139/ssrn.1071720}, +} + + +@inproceedings{belle2013layered, + address = {Boston, MA, USA}, + title = {The layered architecture revisited: {Is} it an optimization problem?}, + volume = {1}, + isbn = {978-1-5108-4159-8}, + shorttitle = {{SEKE} 2013}, + booktitle = {Proceedings of the {Twenty}-{Fifth} {International} {Conference} on {Software} {Engineering} \& {Knowledge} {E}}, + publisher = {KSI Research Inc}, + author = {Belle, Alvine Boaye and El-Boussaidi, Ghizlane and Desrosiers, Christian and Mili, Hafedh}, + year = {2013}, + pages = {344--349} +} + +@inproceedings{lee2001component, + title={Component identification method with coupling and cohesion}, + author={Lee, Jong Kook and Jung, Seung Jae and Kim, Soo Dong and Jang, Woo Hyun and Ham, Dong Han}, + booktitle={Proceedings Eighth Asia-Pacific Software Engineering Conference}, + pages={79--86}, + year={2001}, + organization={IEEE}, + publisher={IEEE}, + address={Macao, China}, +} + +@article{antoniu2007combining, + title={Combining data sharing with the master--worker paradigm in the common component architecture}, + author={Antoniu, Gabriel and Bouziane, Hinde Lilia and Jan, Mathieu and P{\'e}rez, Christian and Priol, Thierry}, + journal={Cluster Computing}, + volume={10}, + number={3}, + pages={265--276}, + year={2007}, + publisher={Springer} +} + +@inproceedings{grgic2016web, + title={A web-based IoT solution for monitoring data using MQTT protocol}, + author={Grgi{\'c}, Kre{\v{s}}imir and {\v{S}}peh, Ivan and He{\dj}i, Ivan}, + booktitle={2016 international conference on smart systems and technologies (SST)}, + pages={249--253}, + year={2016}, + organization={IEEE} +} + +@inproceedings{athanasopoulos2006interoperability, + title={Interoperability among heterogeneous services}, + author={Athanasopoulos, George and Tsalgatidou, Aphrodite and Pantazoglou, Michael}, + booktitle={2006 IEEE International Conference on Services Computing (SCC'06)}, + pages={174--181}, + year={2006}, + organization={IEEE} +} + +@article{mazzei2018full, + title={A full stack for quick prototyping of IoT solutions}, + author={Mazzei, Daniele and Baldi, Giacomo and Montelisciani, Gabriele and Fantoni, Gualtiero}, + journal={Annals of Telecommunications}, + volume={73}, + number={7-8}, + pages={439--449}, + year={2018}, + publisher={Springer} +} + +@article{barrett2015fine, + title={Fine-grained language composition: A case study}, + author={Barrett, Edd and Bolz, Carl Friedrich and Diekmann, Lukas and Tratt, Laurence}, + journal={arXiv preprint arXiv:1503.08623}, + year={2015} +} + +@inproceedings{patwardhan2004communication, + title={Communication breakdown: analyzing cpu usage in commercial web workloads}, + author={Patwardhan, Jaidev P and Lebeck, Alvin R and Sorin, Daniel J}, + booktitle={IEEE International Symposium on-ISPASS Performance Analysis of Systems and Software, 2004}, + pages={12--19}, + year={2004}, + organization={IEEE} +} + +@inproceedings{cooper2008essence, + title={The essence of form abstraction}, + author={Cooper, Ezra and Lindley, Sam and Wadler, Philip and Yallop, Jeremy}, + booktitle={Asian Symposium on Programming Languages and Systems}, + pages={205--220}, + year={2008}, + organization={Springer} +} + +@article{rinard2003credible, + title={Credible compilation}, + author={Rinard, Martin C}, + year={2003} +} + +@inproceedings{bucur2014prototyping, + title={Prototyping symbolic execution engines for interpreted languages}, + author={Bucur, Stefan and Kinder, Johannes and Candea, George}, + booktitle={Proceedings of the 19th international conference on Architectural support for programming languages and operating systems}, + pages={239--254}, + year={2014} +} + +@inproceedings{barany2014python, + title={Python interpreter performance deconstructed}, + author={Barany, Gerg{\"o}}, + booktitle={Proceedings of the Workshop on Dynamic Languages and Applications}, + pages={1--9}, + year={2014} +} + +@article{mayer2017multi, + title={On multi-language software development, cross-language links and accompanying tools: a survey of professional software developers}, + author={Mayer, Philip and Kirsch, Michael and Le, Minh Anh}, + journal={Journal of Software Engineering Research and Development}, + volume={5}, + number={1}, + pages={1}, + year={2017}, + publisher={Springer} +} + +@inproceedings{mayer2015empirical, +author = {Mayer, Philip and Bauer, Alexander}, +title = {An Empirical Analysis of the Utilization of Multiple Programming Languages in Open Source Projects}, +year = {2015}, +isbn = {9781450333504}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/2745802.2745805}, +doi = {10.1145/2745802.2745805}, +abstract = {Background: Anecdotal evidence suggests that software applications are usually implemented using a combination of (programming) languages. Aim: We want to provide empirical evidence on the phenomenon of multi-language programming. Methods: We use data mining of 1150 open source projects selected for diversity from a public repository to a) investigate the projects for number and type of languages found and the relative sizes of the languages; b) report on associations between the number of languages found and the size, age, number of contributors, and number of commits of a project using a (Quasi-)Poisson regression model, and c) discuss concrete associations between the general-purpose languages and domain-specific languages found using frequent item set mining. Results: We found a) a mean number of 5 languages per project with a clearly dominant main general-purpose language and 5 often-used DSL types, b) a significant influence of the size, number of commits, and the main language on the number of languages as well as no significant influence of age and number of contributors, and c) three language ecosystems grouped around XML, Shell/Make, and HTML/CSS. Conclusions: Multi-language programming seems to be common in open-source projects and is a factor which must be dealt with in tooling and when assessing development and maintenance of such software systems.}, +booktitle = {Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering}, +articleno = {4}, +numpages = {10}, +location = {Nanjing, China}, +series = {EASE '15} +} + +@article{avizienis85n, + author={A. {Avizienis}}, + journal={IEEE Transactions on Software Engineering}, + title={The N-Version Approach to Fault-Tolerant Software}, + year={1985}, + volume={SE-11}, + number={12}, + pages={1491-1501}, + doi={10.1109/TSE.1985.231893} +} + + +@inproceedings{motta2018challenges, +author = {Motta, Rebeca C. and de Oliveira, K\'{a}thia M. and Travassos, Guilherme H.}, +title = {On Challenges in Engineering IoT Software Systems}, +year = {2018}, +isbn = {9781450365031}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/3266237.3266263}, +doi = {10.1145/3266237.3266263}, +abstract = {Contemporary software systems, such as the Internet of Things (IoT), Industry 4.0, and Smart Cities are new technology paradigms that offer challenges for their construction since they are calling into question our traditional form of developing software. They are a promising paradigm for the integration of devices and communications technologies. It is leading to a shift from the classical monolithic view of development where stakeholder receive a software product at the end (that we have been doing for decades), to software systems materialized through physical objects interconnected by networks and with embedded software to support daily activities. We need therefore to revisit our way of developing software systems and start to consider the particularities required by these new sorts of applications. This paper presents research toward the definition of a framework to support the systems engineering of IoT applications, where we evolved the Zachman's Framework as an alternative to the organization of this architecture. The activities were two folded to address this goal: a) we identified leading concerns of IoT applications, recovered from technical literature, practitioners and a Government Report, in different studies; b) we structured the IoT paradigm in different facets. These activities provided 14 significant concerns and seven facets that together represent the engineering challenges to be faced both by research and practice towards the advancement of IoT in practice.}, +booktitle = {Proceedings of the XXXII Brazilian Symposium on Software Engineering}, +pages = {42–51}, +numpages = {10}, +keywords = {challenges, concerns, internet of things, IoT, literature review, empirical software engineering}, +location = {Sao Carlos, Brazil}, +series = {SBES '18} +} + +@article{gubbi2013internet, + title={Internet of Things (IoT): A vision, architectural elements, and future directions}, + author={Gubbi, Jayavardhana and Buyya, Rajkumar and Marusic, Slaven and Palaniswami, Marimuthu}, + journal={Future generation computer systems}, + volume={29}, + number={7}, + pages={1645--1660}, + year={2013}, + publisher={Elsevier} +} + +@article{guzman2018human, + title={What is human-machine communication, anyway}, + author={Guzman, Andrea L}, + journal={Human-machine communication: Rethinking communication, technology, and ourselves}, + pages={1--28}, + year={2018}, + publisher={Peter Lang New York} +} + +@article{wan2016software, + title={Software-defined industrial internet of things in the context of industry 4.0}, + author={Wan, Jiafu and Tang, Shenglong and Shu, Zhaogang and Li, Di and Wang, Shiyong and Imran, Muhammad and Vasilakos, Athanasios V}, + journal={IEEE Sensors Journal}, + volume={16}, + number={20}, + pages={7373--7380}, + year={2016}, + publisher={IEEE} +} + +@article{batory1992design, + title={The design and implementation of hierarchical software systems with reusable components}, + author={Batory, Don and O'malley, Sean}, + journal={ACM Transactions on Software Engineering and Methodology (TOSEM)}, + volume={1}, + number={4}, + pages={355--398}, + year={1992}, + publisher={ACM New York, NY, USA} +} + +@article{mockus2002two, + title={Two case studies of open source software development: Apache and Mozilla}, + author={Mockus, Audris and Fielding, Roy T and Herbsleb, James D}, + journal={ACM Transactions on Software Engineering and Methodology (TOSEM)}, + volume={11}, + number={3}, + pages={309--346}, + year={2002}, + publisher={ACM New York, NY, USA} +} + +@inproceedings{le2015microservice, + title={Microservice-based architecture for the NRDC}, + author={Le, Vinh D and Neff, Melanie M and Stewart, Royal V and Kelley, Richard and Fritzinger, Eric and Dascalu, Sergiu M and Harris, Frederick C}, + booktitle={2015 IEEE 13th International Conference on Industrial Informatics (INDIN)}, + pages={1659--1664}, + year={2015}, + organization={IEEE}, + publisher={IEEE}, + address={Cambridge, UK}, +} + +@inproceedings{kodali2016low, + title={Low cost ambient monitoring using ESP8266}, + author={Kodali, Ravi Kishore and Mahesh, Kopulwar Shishir}, + booktitle={2016 2nd International Conference on Contemporary Computing and Informatics (IC3I)}, + pages={779--782}, + year={2016}, + organization={IEEE}, + publisher={IEEE}, + address={Greater Noida, India} +} + +@article{beaven1993explaining, + title={Explaining type errors in polymorphic languages}, + author={Beaven, Mike and Stansifer, Ryan}, + journal={ACM Letters on Programming Languages and Systems (LOPLAS)}, + volume={2}, + number={1-4}, + pages={17--30}, + year={1993}, + publisher={ACM New York, NY, USA} +} + +@phdthesis{armstrong2003making, + title={Making reliable distributed systems in the presence of software errors}, + author={Armstrong, Joe}, + year={2003} +} + +@article{madsen1990strong, + title={Strong typing of object-oriented languages revisited}, + author={Madsen, Ole Lehrmann and Magnusson, Boris and M{\o}lier-Pedersen, Birger}, + journal={ACM SIGPLAN Notices}, + volume={25}, + number={10}, + pages={140--150}, + year={1990}, + publisher={ACM New York, NY, USA} +} + +@article{cass20182017, + title={The 2017 top programming languages}, + author={Cass, Stephen}, + journal={IEEE Spectrum}, + volume={31}, + year={2018} +} + +@book{tollervey2017programming, + title={Programming with MicroPython: Embedded Programming with Microcontrollers and Python}, + author={Tollervey, Nicholas H}, + year={2017}, + publisher={" O'Reilly Media, Inc."} +} + +@inproceedings{alpernaswonderful, +author = {Alpernas, Kalev and Feldman, Yotam M. Y. and Peleg, Hila}, +title = {The Wonderful Wizard of LoC: Paying Attention to the Man behind the Curtain of Lines-of-Code Metrics}, +year = {2020}, +isbn = {9781450381789}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/3426428.3426921}, +doi = {10.1145/3426428.3426921}, +abstract = {Lines-of-code metrics (loc) are commonly reported in Programming Languages (PL), Software Engineering (SE), and Systems papers. This convention has several different, often contradictory, goals, including demonstrating the `hardness' of a problem, and demonstrating the `easiness' of a problem. In many cases, the reporting of loc metrics is done not with a clearly communicated intention, but instead in an automatic, checkbox-ticking, manner. In this paper we investigate the uses of code metrics in PL, SE, and System papers. We consider the different goals that reporting metrics aims to achieve, several various domains wherein metrics are relevant, and various alternative metrics and their pros and cons for the different goals and domains. We argue that communicating claims about research software is usually best achieved not by reporting quantitative metrics, but by reporting the qualitative experience of researchers, and propose guidelines for the cases when quantitative metrics are appropriate. We end with a case study of the one area in which lines of code are not the default measurement---code produced by papers' solutions---and identify how measurements offered are used to support an explicit claim about the algorithm. Inspired by this positive example, we call for other cogent measures to be developed to support other claims authors wish to make.}, +booktitle = {Proceedings of the 2020 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software}, +pages = {146–156}, +numpages = {11}, +keywords = {research papers, loc, lines of code}, +location = {Virtual, USA}, +series = {Onward! 2020} +} + +@inproceedings{epstein2011towards, + author = {Epstein, Jeff and Black, Andrew P. and Peyton-Jones, Simon}, + title = {Towards Haskell in the Cloud}, + year = {2011}, + isbn = {9781450308601}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/2034675.2034690}, + doi = {10.1145/2034675.2034690}, + abstract = {We present Cloud Haskell, a domain-specific language for developing programs for a distributed computing environment. Implemented as a shallow embedding in Haskell, it provides a message-passing communication model, inspired by Erlang, without introducing incompatibility with Haskell's established shared-memory concurrency. A key contribution is a method for serializing function closures for transmission across the network. Cloud Haskell has been implemented; we present example code and some preliminary performance measurements.}, + booktitle = {Proceedings of the 4th ACM Symposium on Haskell}, + pages = {118–129}, + numpages = {12}, + keywords = {message-passing, haskell, erlang}, + location = {Tokyo, Japan}, + series = {Haskell '11} +} + +@book{gupta2012akka, + title={Akka essentials}, + address={Livery Place, 35 Livery Street, Birmingham B3 2PB, UK}, + author={Gupta, Munish}, + year={2012}, + publisher={Packt Publishing Ltd} +} + +@article{millman2011python, + title={Python for scientists and engineers}, + author={Millman, K Jarrod and Aivazis, Michael}, + journal={Computing in Science \& Engineering}, + volume={13}, + number={2}, + pages={9--12}, + year={2011}, + publisher={IEEE} +} + +@misc{pyforum, + title = "Python Official Forum", + author = "", + year = "2021", + note = "https://www.python.org/community/forums/" +} + +@misc{microforum, + title = "Micropython Official Forum", + author = "", + year = "2021", + note = "https://forum.micropython.org/" +} + +@misc{microdocs, + title = "Official Micropython Docs", + author = "", + year = "2021", + note = "https://docs.micropython.org/en/latest/" +} + +@misc{ wiki:IO, + author = "HaskellWiki", + title = "Introduction to IO --- HaskellWiki{,} ", + year = "2020", + url = "https://wiki.haskell.org/index.php?title=Introduction_to_IO&oldid=63493", + note = "[Online; accessed 19-January-2021]" +} + +@misc{CircuitPython, + author = "CircuitPython Team", + title = "CircuitPython", + year = "2022", + url = "https://circuitpython.org/", + note = "[Online; accessed 2-March-2022]" +} + +@article{barendsen_smetsers_1996, + title={Uniqueness typing for functional languages with graph rewriting semantics}, + volume={6}, + DOI={10.1017/S0960129500070109}, + number={6}, + journal={Mathematical Structures in Computer Science}, + publisher={Cambridge University Press}, + author={Barendsen, Erik and Smetsers, Sjaak}, + year={1996}, + pages={579–612} +} +@InProceedings{GenericProgrammingExtensionForClean, + author = "Alimarine, Artem and Plasmeijer, Rinus", + editor = "Arts, Thomas and Mohnen, Markus", + title="A Generic Programming Extension for Clean", + booktitle="Implementation of Functional Languages", + year="2002", + publisher="Springer Berlin Heidelberg", + address="Berlin, Heidelberg", + pages="168--185", + abstract="Generic programming enables the programmer to define functions by induction on the structure of types. Defined once, such a generic function can be used to generate a specialized function for any user defined data type. Several ways to support generic programming in functional languages have been proposed, each with its own pros and cons. In this paper we describe a combination of two existing approaches, which has the advantages of both of them. In our approach overloaded functions with class variables of an arbitrary kind can be defined generically. A single generic definition defines a kind-indexed family of overloaded functions, one for each kind. For instance, the generic mapping function generates an overloaded mapping function for each kind.", + isbn="978-3-540-46028-2" +} +@inproceedings{HinzeGenericFunctionalProgramming, + author = {Hinze, Ralf}, + title = {A New Approach to Generic Functional Programming}, + year = {2000}, + isbn = {1581131259}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/325694.325709}, + doi = {10.1145/325694.325709}, + abstract = {This paper describes a new approach to generic functional programming, which allows us to define functions generically for all datatypes expressible in Haskell. A generic function is one that is defined by induction on the structure of types. Typical examples include pretty printers, parsers, and comparison functions. The advanced type system of Haskell presents a real challenge: datatypes may be parameterized not only by types but also by type constructors, type definitions may involve mutual recursion, and recursive calls of type constructors can be arbitrarily nested. We show that—despite this complexity—a generic function is uniquely defined by giving cases for primitive types and type constructors (such as disjoint unions and cartesian products). Given this information a generic function can be specialized to arbitrary Haskell datatypes. The key idea of the approach is to model types by terms of the simply typed λ-calculus augmented by a family of recursion operators. While conceptually simple, our approach places high demands on the type system: it requires polymorphic recursion, rank-n types, and a strong form of type constructor polymorphism. Finally, we point out connections to Haskell's class system and show that our approach generalizes type classes in some respects.}, + booktitle = {Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, + pages = {119–132}, + numpages = {14}, + location = {Boston, MA, USA}, + series = {POPL '00} +} +@inproceedings{TOP-PPDP12, + author = {Plasmeijer, Rinus and Lijnse, Bas and Michels, Steffen and Achten, Peter and Koopman, Pieter}, + title = {Task-Oriented Programming in a Pure Functional Language}, + year = {2012}, + isbn = {9781450315227}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/2370776.2370801}, + doi = {10.1145/2370776.2370801}, + abstract = {Task-Oriented Programming (TOP) is a novel programming paradigm for the construction of distributed systems where users work together on the internet. When multiple users collaborate, they need to interact with each other frequently. TOP supports the definition of tasks that react to the progress made by others. With TOP, complex multi-user interactions can be programmed in a declarative style just by defining the tasks that have to be accomplished, thus eliminating the need to worry about the implementation detail that commonly frustrates the development of applications for this domain. TOP builds on four core concepts: tasks that represent computations or work to do which have an observable value that may change over time, data sharing enabling tasks to observe each other while the work is in progress, generic type driven generation of user interaction, and special combinators for sequential and parallel task composition. The semantics of these core concepts is defined in this paper. As an example we present the iTask3 framework, which embeds TOP in the functional programming language Clean.}, + booktitle = {Proceedings of the 14th Symposium on Principles and Practice of Declarative Programming}, + pages = {195–206}, + numpages = {12}, + keywords = {task-oriented programming, clean}, + location = {Leuven, Belgium}, + series = {PPDP '12} +} +@inproceedings{ + TOP-ICFP07, + author = {Plasmeijer, Rinus and Achten, Peter and Koopman, Pieter}, + title = {{iTasks}: {E}xecutable {S}pecifications of {I}nteractive {W}ork {F}low {S}ystems for the {W}eb}, + booktitle = {{P}roceedings of the 12th {ACM SIGPLAN} {I}nternational {C}onference on {F}unctional {P}rogramming ({ICFP} 2007)}, + address = {{F}reiburg, {G}ermany}, + year = 2007, + month = {Oct 1--3}, + publisher = {ACM}, + isbn = "978-1-59593-815-2", + pages = {141-152} +} +@article{FinallyTagless, + author = {Jacques Carette and Oleg Kiselyov and Chung{-}chieh Shan}, + title = {Finally tagless, partially evaluated: Tagless staged interpreters + for simpler typed languages}, + journal = {J. Funct. Program.}, + volume = {19}, + number = {5}, + pages = {509--543}, + year = {2009}, + url = {https://doi.org/10.1017/S0956796809007205}, + doi = {10.1017/S0956796809007205}, + timestamp = {Sun, 02 Jun 2019 21:00:12 +0200}, + biburl = {https://dblp.org/rec/journals/jfp/CaretteKS09.bib}, + bibsource = {dblp computer science bibliography, https://dblp.org} +} + +@inproceedings{oortgiese_distributed_2017, + title = {A {Distributed} {Dynamic} {Architecture} for {Task} {Oriented} {Programming}}, + booktitle = {Proceedings of the 29th {Symposium} on {Implementation} and {Application} of {Functional} {Programming} {Languages}}, + publisher = {ACM}, + author = {Oortgiese, Arjan and van Groningen, John and Achten, Peter and Plasmeijer, Rinus}, + year = {2017}, + pages = {7}, + address = {Bristol, UK} +} + +@inproceedings{stefik14programming, + author = {Stefik, Andreas and Hanenberg, Stefan}, + title = {The Programming Language Wars: Questions and Responsibilities for the Programming Language Community}, + year = {2014}, + doi = {10.1145/2661136.2661156}, + booktitle = {Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming \& Software}, + pages = {283--299}, +} + +@inproceedings{ParametricLenses, + author = {Domoszlai, L\'{a}szl\'{o} and Lijnse, Bas and Plasmeijer, Rinus}, + title = {Parametric Lenses: Change Notification for Bidirectional Lenses}, + year = {2014}, + isbn = {9781450332842}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/2746325.2746333}, + doi = {10.1145/2746325.2746333}, + abstract = {Most complex applications inevitably need to maintain dependencies between subsystems based on some shared data. The dependent parts must be informed that the shared information is changed. As every actual notification has some communication cost, and every triggered task has associated computation cost, it is crucial for the overall performance of the application to reduce the number of notifications as much as possible. To achieve this, one must be able to define, with arbitrary precision, which party is depending on which data. In this paper we offer a general solution to this general problem. The solution is based on an extension to bidirectional lenses, called parametric lenses. With the help of parametric lenses one can define compositional parametric views in a declarative way to access some shared data. Parametric views, besides providing read/write access to the shared data, also enable to observe changes of some parts, given by an explicit parameter, the focus domain. The focus domain can be specified as a type-based query language defined over one or more resources using predefined combinators of parametric views.}, + booktitle = {Proceedings of the 26th International Symposium on Implementation and Application of Functional Languages}, + articleno = {9}, + numpages = {11}, + keywords = {notification systems, parametric views, lenses, parametric lenses, Bi-directional programming}, + location = {Boston, MA, USA}, + series = {IFL '14} +} + +@inproceedings{steenvoorden_tophat_2019, + address = {New York, NY, USA}, + series = {{PPDP} '19}, + title = {{TopHat}: {A} {Formal} {Foundation} for {Task}-{Oriented} {Programming}}, + isbn = {978-1-4503-7249-7}, + url = {https://doi.org/10.1145/3354166.3354182}, + doi = {10.1145/3354166.3354182}, + abstract = {Software that models how people work is omnipresent in today's society. Current languages and frameworks often focus on usability by non-programmers, sacrificing flexibility and high level abstraction. Task-oriented programming (TOP) is a programming paradigm that aims to provide the desired level of abstraction while still being expressive enough to describe real world collaboration. It prescribes a declarative programming style to specify multi-user workflows. Workflows can be higher-order. They communicate through typed values on a local and global level. Such specifications can be turned into interactive applications for different platforms, supporting collaboration during execution. TOP has been around for more than a decade, in the forms of iTasks and mTasks, which are tailored for real-world usability. So far, it has not been given a formalisation which is suitable for formal reasoning.In this paper we give a description of the TOP paradigm and then decompose its rich features into elementary language elements, which makes them suitable for formal treatment. We use the simply typed lambda-calculus, extended with pairs and references, as a base language. On top of this language, we develop TopHat, a language for modular interactive workflows. We describe TopHat by means of a layered semantics. These layers consist of multiple big-step evaluations on expressions, and two labelled transition systems, handling user inputs.With TopHat we prepare a way to formally reason about TOP languages and programs. This approach allows for comparison with other work in the field. We have implemented the semantic rules of TopHat in Haskell, and the task layer on top of the iTasks framework. This shows that our approach is feasible, and lets us demonstrate the concepts by means of illustrative case studies. TOP has been applied in projects with the Dutch coast guard, tax office, and navy. Our work matters because formal program verification is important for mission-critical software, especially for systems with concurrency.}, + booktitle = {Proceedings of the 21st {International} {Symposium} on {Principles} and {Practice} of {Declarative} {Programming}}, + publisher = {Association for Computing Machinery}, + author = {Steenvoorden, Tim and Naus, Nico and Klinik, Markus}, + year = {2019}, + note = {event-place: Porto, Portugal}, + file = {Steenvoorden et al. - 2019 - TopHat A Formal Foundation for Task-Oriented Prog.pdf:/home/mrl/.local/share/zotero/storage/W7HJ5MEF/Steenvoorden et al. - 2019 - TopHat A Formal Foundation for Task-Oriented Prog.pdf:application/pdf} +} + +@article{10.1145/1543134.1411301, + author = {Rodriguez, Alexey and Jeuring, Johan and Jansson, Patrik and Gerdes, Alex and Kiselyov, Oleg and Oliveira, Bruno C. d. S.}, + title = {Comparing Libraries for Generic Programming in Haskell}, + year = {2008}, + issue_date = {February 2009}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + volume = {44}, + number = {2}, + issn = {0362-1340}, + url = {https://doi.org/10.1145/1543134.1411301}, + doi = {10.1145/1543134.1411301}, + abstract = {Datatype-generic programming is defining functions that depend on the structure, or "shape", of datatypes. It has been around for more than 10 years, and a lot of progress has been made, in particular in the lazy functional programming language Haskell. There are morethan 10 proposals for generic programming libraries orlanguage extensions for Haskell. To compare and characterise the many generic programming libraries in atyped functional language, we introduce a set of criteria and develop a generic programming benchmark: a set of characteristic examples testing various facets of datatype-generic programming. We have implemented the benchmark for nine existing Haskell generic programming libraries and present the evaluation of the libraries. The comparison is useful for reaching a common standard for generic programming, but also for a programmer who has to choose a particular approach for datatype-generic programming.}, + journal = {SIGPLAN Not.}, + month = sep, + pages = {111–122}, + numpages = {12}, + keywords = {datatype-generic programming, libraries comparison} +} + +@inproceedings{ComparingGenericProgramming, + author = {Rodriguez, Alexey and Jeuring, Johan and Jansson, Patrik and Gerdes, Alex and Kiselyov, Oleg and Oliveira, Bruno C. d. S.}, + title = {Comparing Libraries for Generic Programming in Haskell}, + year = {2008}, + isbn = {9781605580647}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/1411286.1411301}, + doi = {10.1145/1411286.1411301}, + abstract = {Datatype-generic programming is defining functions that depend on the structure, or "shape", of datatypes. It has been around for more than 10 years, and a lot of progress has been made, in particular in the lazy functional programming language Haskell. There are morethan 10 proposals for generic programming libraries orlanguage extensions for Haskell. To compare and characterise the many generic programming libraries in atyped functional language, we introduce a set of criteria and develop a generic programming benchmark: a set of characteristic examples testing various facets of datatype-generic programming. We have implemented the benchmark for nine existing Haskell generic programming libraries and present the evaluation of the libraries. The comparison is useful for reaching a common standard for generic programming, but also for a programmer who has to choose a particular approach for datatype-generic programming.}, + booktitle = {Proceedings of the First ACM SIGPLAN Symposium on Haskell}, + pages = {111–122}, + numpages = {12}, + keywords = {datatype-generic programming, libraries comparison}, + location = {Victoria, BC, Canada}, + series = {Haskell '08} +} + +@InProceedings{ComposingReactiveGUIs, + author="Bjornson, Joel + and Tayanovskyy, Anton + and Granicz, Adam", + editor="Hage, Jurriaan + and Moraz{\'a}n, Marco T.", + title="Composing Reactive GUIs in F{\#} Using WebSharper", + booktitle="Implementation and Application of Functional Languages", + year="2011", + publisher="Springer Berlin Heidelberg", + address="Berlin, Heidelberg", + pages="203--216", + abstract="We present a generic library for constructing composable and interactive user interfaces in a declarative style. The paper introduces flowlets, an extension of formlets[3,2] providing interactivity. Real-world examples are given using the current implementation that compiles flowlets defined in F{\#} to JavaScript with WebSharper.", + isbn="978-3-642-24276-2" +} + +@inproceedings{FunctionalReactiveAnimation, + author = {Elliott, Conal and Hudak, Paul}, + title = {Functional Reactive Animation}, + year = {1997}, + isbn = {0897919181}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/258948.258973}, + doi = {10.1145/258948.258973}, + abstract = {Fran (Functional Reactive Animation) is a collection of data types and functions for composing richly interactive, multimedia animations. The key ideas in Fran are its notions of behaviors and events. Behaviors are time-varying, reactive values, while events are sets of arbitrarily complex conditions, carrying possibly rich information. Most traditional values can be treated as behaviors, and when images are thus treated, they become animations. Although these notions are captured as data types rather than a programming language, we provide them with a denotational semantics, including a proper treatment of real time, to guide reasoning and implementation. A method to effectively and efficiently perform event detection using interval analysis is also described, which relies on the partial information structure on the domain of event times. Fran has been implemented in Hugs, yielding surprisingly good performance for an interpreter-based system. Several examples are given, including the ability to describe physical phenomena involving gravity, springs, velocity, acceleration, etc. using ordinary differential equations.}, + booktitle = {Proceedings of the Second ACM SIGPLAN International Conference on Functional Programming}, + pages = {263–273}, + numpages = {11}, + location = {Amsterdam, The Netherlands}, + series = {ICFP '97} +} + +@inproceedings{kochhar2016large, + author={P. S. {Kochhar} and D. {Wijedasa} and D. {Lo}}, + booktitle={23rd International Conference on Software Analysis, Evolution, and Reengineering}, + title={A Large Scale Study of Multiple Programming Languages and Code Quality}, + year={2016}, + pages={563--573}, + doi={10.1109/SANER.2016.112}, + address={Osaka, Japan}, + publisher={IEEE} +} + +@inproceedings{hao2020approaching, + author = {Rebecca L. Hao and Elena L. Glassman}, + title = {{Approaching Polyglot Programming: What Can We Learn from Bilingualism Studies?}}, + booktitle = {10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019)}, + pages = {1:1--1:7}, + year = {2020}, + volume = {76}, + doi = {10.4230/OASIcs.PLATEAU.2019.1}, +} + +@article{cass2020top, + title={The top programming languages: Our latest rankings put Python on top-again-[Careers]}, + author={Cass, Stephen}, + journal={IEEE Spectrum}, + volume={57}, + number={8}, + pages={22--22}, + year={2020}, + publisher={IEEE} +} + +@inproceedings{tanganelli2015coapthon, + title={CoAPthon: Easy development of CoAP-based IoT applications with Python}, + author={Tanganelli, Giacomo and Vallati, Carlo and Mingozzi, Enzo}, + booktitle={2015 IEEE 2nd World Forum on Internet of Things (WF-IoT)}, + pages={63--68}, + year={2015}, + publisher={IEEE}, + address={Milan, Italy} +} + +@INPROCEEDINGS{Wadler92comprehendingmonads, +author = {Wadler, Philip}, +title = {Comprehending Monads}, +year = {1990}, +isbn = {089791368X}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/91556.91592}, +doi = {10.1145/91556.91592}, +abstract = {Category theorists invented monads in the 1960's to concisely express certain aspects of universal algebra. Functional programmers invented list comprehensions in the 1970's to concisely express certain programs involving lists. This paper shows how list comprehensions may be generalised to an arbitrary monad, and how the resulting programming feature can concisely express in a pure functional language some programs that manipulate state, handle exceptions, parse text, or invoke continuations. A new solution to the old problem of destructive array update is also presented. No knowledge of category theory is assumed.}, +booktitle = {Proceedings of the 1990 ACM Conference on LISP and Functional Programming}, +pages = {61–78}, +numpages = {18}, +location = {Nice, France}, +series = {LFP '90} +} +@misc{smartcampus, + author = {Mott Macdonald}, + title = "University of Glasgow Smart Campus Digital Masterplan", + year = "2019", + note = "\url{https://www.gla.ac.uk/media/Media_702108_smxx.pdf}", +} + +@misc{IIO, + author = "Bijan Mottahedeh", + title = "An Introduction to the io XXX uring Asynchronous I/O Framework", + year = "2020", + url = "https://blogs.oracle.com/linux/an-introduction-to-the-io XXX uring-asynchronous-io-framework", + note = "[Online; accessed 13-May-2021]" +} + +@inproceedings{10.1145/1806596.1806601, +author = {Lee, Byeongcheol and Wiedermann, Ben and Hirzel, Martin and Grimm, Robert and McKinley, Kathryn S.}, +title = {Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces}, +year = {2010}, +isbn = {9781450300193}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/1806596.1806601}, +doi = {10.1145/1806596.1806601}, +abstract = {Programming language specifications mandate static and dynamic analyses to preclude syntactic and semantic errors. Although individual languages are usually well-specified, composing languages is not, and this poor specification is a source of many errors in multilingual programs. For example, virtually all Java programs compose Java and C using the Java Native Interface (JNI). Since JNI is informally specified, developers have difficulty using it correctly, and current Java compilers and virtual machines (VMs) inconsistently check only a subset of JNI constraints.This paper's most significant contribution is to show how to synthesize dynamic analyses from state machines to detect foreign function interface (FFI) violations. We identify three classes of FFI constraints encoded by eleven state machines that capture thousands of JNI and Python/C FFI rules. We use a mapping function to specify which state machines, transitions, and program entities (threads, objects, references) to check at each FFI call and return. From this function, we synthesize a context-specific dynamic analysis to find FFI bugs. We build bug detection tools for JNI and Python/C using this approach. For JNI, we dynamically and transparently interpose the analysis on Java and C language transitions through the JVM tools interface. The resulting tool, called Jinn, is compiler and virtual machine independent. It detects and diagnoses a wide variety of FFI bugs that other tools miss. This approach greatly reduces the annotation burden by exploiting common FFI constraints: whereas the generated Jinn code is 22,000+ lines, we wrote only 1,400 lines of state machine and mapping code. Overall, this paper lays the foundation for a more principled approach to developing correct multilingual software and a more concise and automated approach to FFI specification.}, +booktitle = {Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation}, +pages = {36–49}, +numpages = {14}, +keywords = {dynamic analysis, multilingual programs, foreign function interfaces (FFI), python/C, java native interface (jni), specification, specification generation, ffi bugs}, +location = {Toronto, Ontario, Canada}, +series = {PLDI '10} +} + + +@article{Jinn +, +author = {Lee, Byeongcheol and Wiedermann, Ben and Hirzel, Martin and Grimm, Robert and McKinley, Kathryn S.}, +title = {Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces}, +year = {2010}, +issue_date = {June 2010}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +volume = {45}, +number = {6}, +issn = {0362-1340}, +url = {https://doi.org/10.1145/1809028.1806601}, +doi = {10.1145/1809028.1806601}, +abstract = {Programming language specifications mandate static and dynamic analyses to preclude syntactic and semantic errors. Although individual languages are usually well-specified, composing languages is not, and this poor specification is a source of many errors in multilingual programs. For example, virtually all Java programs compose Java and C using the Java Native Interface (JNI). Since JNI is informally specified, developers have difficulty using it correctly, and current Java compilers and virtual machines (VMs) inconsistently check only a subset of JNI constraints.This paper's most significant contribution is to show how to synthesize dynamic analyses from state machines to detect foreign function interface (FFI) violations. We identify three classes of FFI constraints encoded by eleven state machines that capture thousands of JNI and Python/C FFI rules. We use a mapping function to specify which state machines, transitions, and program entities (threads, objects, references) to check at each FFI call and return. From this function, we synthesize a context-specific dynamic analysis to find FFI bugs. We build bug detection tools for JNI and Python/C using this approach. For JNI, we dynamically and transparently interpose the analysis on Java and C language transitions through the JVM tools interface. The resulting tool, called Jinn, is compiler and virtual machine independent. It detects and diagnoses a wide variety of FFI bugs that other tools miss. This approach greatly reduces the annotation burden by exploiting common FFI constraints: whereas the generated Jinn code is 22,000+ lines, we wrote only 1,400 lines of state machine and mapping code. Overall, this paper lays the foundation for a more principled approach to developing correct multilingual software and a more concise and automated approach to FFI specification.}, +journal = {SIGPLAN Not.}, +month = jun, +pages = {36–49}, +numpages = {14}, +keywords = {specification generation, specification, python/C, dynamic analysis, multilingual programs, java native interface (jni), foreign function interfaces (FFI), ffi bugs} +} +@inproceedings{10.1145/1065010.1065019, +author = {Furr, Michael and Foster, Jeffrey S.}, +title = {Checking Type Safety of Foreign Function Calls}, +year = {2005}, +isbn = {1595930566}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/1065010.1065019}, +doi = {10.1145/1065010.1065019}, +abstract = {We present a multi-lingual type inference system for checking type safety across a foreign function interface. The goal of our system is to prevent foreign function calls from introducing type and memory safety violations into an otherwise safe language. Our system targets OCaml's FFI to C, which is relatively lightweight and illustrates some interesting challenges in multi-lingual type inference. The type language in our system embeds OCaml types in C types and vice-versa, which allows us to track type information accurately even through the foreign language, where the original types are lost. Our system uses representational types that can model multiple OCaml types, because C programs can observe that many OCaml types have the same physical representation. Furthermore, because C has a low-level view of OCaml data, our inference system includes a dataflow analysis to track memory offsets and tag information. Finally, our type system includes garbage collection information to ensure that pointers from the FFI to the OCaml heap are tracked properly. We have implemented our inference system and applied it to a small set of benchmarks. Our results show that programmers do misuse these interfaces, and our implementation has found several bugs and questionable coding practices in our benchmarks.}, +booktitle = {Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation}, +pages = {62–72}, +numpages = {11}, +keywords = {dataflow analysis, multi-lingual type system, representational type, flow-sensitive type system, foreign function interface, FFI, multi-lingual type inference, foreign function calls, OCaml}, +location = {Chicago, IL, USA}, +series = {PLDI '05} +} + +@article{Furr2005, +author = {Furr, Michael and Foster, Jeffrey S.}, +title = {Checking Type Safety of Foreign Function Calls}, +year = {2005}, +issue_date = {June 2005}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +volume = {40}, +number = {6}, +issn = {0362-1340}, +url = {https://doi.org/10.1145/1064978.1065019}, +doi = {10.1145/1064978.1065019}, +abstract = {We present a multi-lingual type inference system for checking type safety across a foreign function interface. The goal of our system is to prevent foreign function calls from introducing type and memory safety violations into an otherwise safe language. Our system targets OCaml's FFI to C, which is relatively lightweight and illustrates some interesting challenges in multi-lingual type inference. The type language in our system embeds OCaml types in C types and vice-versa, which allows us to track type information accurately even through the foreign language, where the original types are lost. Our system uses representational types that can model multiple OCaml types, because C programs can observe that many OCaml types have the same physical representation. Furthermore, because C has a low-level view of OCaml data, our inference system includes a dataflow analysis to track memory offsets and tag information. Finally, our type system includes garbage collection information to ensure that pointers from the FFI to the OCaml heap are tracked properly. We have implemented our inference system and applied it to a small set of benchmarks. Our results show that programmers do misuse these interfaces, and our implementation has found several bugs and questionable coding practices in our benchmarks.}, +journal = {SIGPLAN Not.}, +month = jun, +pages = {62–72}, +numpages = {11}, +keywords = {foreign function calls, multi-lingual type system, OCaml, multi-lingual type inference, flow-sensitive type system, FFI, foreign function interface, dataflow analysis, representational type} +} + +@INPROCEEDINGS{LubbersMIPRO, + author={Lubbers, Mart and Koopman, Pieter and Plasmeijer, Rinus}, + booktitle={2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO)}, + title={Multitasking on Microcontrollers using Task Oriented Programming}, + year={2019}, + volume={}, + number={}, + pages={1587-1592}, + publisher={IEEE}, + address={Opatija, Croatia}, + doi={10.23919/MIPRO.2019.8756711}} + +@inproceedings{plamauer2017evaluation, + title={Evaluation of micropython as application layer programming language on cubesats}, + author={Plamauer, Sebastian and Langer, Martin}, + booktitle={ARCS 2017; 30th International Conference on Architecture of Computing Systems}, + pages={1--9}, + year={2017}, + organization={VDE}, + publisher={VDE}, + address={Vienna, Austria} +} + +@inproceedings{egyed1999automatically, + title={Automatically detecting mismatches during component-based and model-based development}, + author={Egyed, Alexander and Gacek, Cristina}, + booktitle={14th IEEE International Conference on Automated Software Engineering}, + pages={191--198}, + year={1999}, + organization={IEEE} +} + +@inproceedings{suchocki_microscheme:_2015, + title = {Microscheme: {Functional} programming for the {Arduino}}, + booktitle = {Proceedings of the 2014 {Scheme} and {Functional} {Programming} {Workshop}}, + author = {Suchocki, Ryan and Kalvala, Sara}, + publisher = {University of Indiana}, + address = {Washington DC, USA}, + year = {2015}, + pages = {9}, +} + +@misc{johnson-davies_lisp_2020, + title = {Lisp for microcontrollers}, + url = {https://ulisp.com}, + urldate = {2020-02-14}, + journal = {Lisp for microcontrollers}, + author = {Johnson-Davies, David}, + year = {2020}, + address = {Boston, MA, USA}, +} + +@article{dube_bit:_2000, + title = {{BIT}: {A} very compact {Scheme} system for embedded applications}, + journal = {Proceedings of the Fourth Workshop on Scheme and Functional Programming}, + author = {Dubé, Danny}, + year = {2000}, + file = {dube.ps:/home/mrl/.local/share/zotero/storage/RNG6V7HT/dube.ps:application/postscript}, +} + +@inproceedings{feeley_picbit:_2003, + title = {{PICBIT}: {A} {Scheme} system for the {PIC} microcontroller}, + booktitle = {Proceedings of the {Fourth} {Workshop} on {Scheme} and {Functional} {Programming}}, + publisher = {Citeseer}, + author = {Feeley, Marc and Dubé, Danny}, + year = {2003}, + pages = {7--15}, + address = {Boston, MA, USA}, +} + +@inproceedings{st-amour_picobit:_2009, + title = {{PICOBIT}: a compact scheme system for microcontrollers}, + booktitle = {International {Symposium} on {Implementation} and {Application} of {Functional} {Languages}}, + publisher = {Springer}, + author = {St-Amour, Vincent and Feeley, Marc}, + year = {2009}, + pages = {1--17}, + address = {South Orange, NJ, USA}, +} +@book{Ravulavaru18, +author = {Ravulavaru, Arvind}, +isbn = {1-78883-378-3}, +language = {eng}, +publisher = {Packt Publishing}, +title = {Enterprise internet of things handbook : build end-to-end IoT solutions using popular IoT platforms}, +year = {2018}, +address = {Birmingham, UK}, +} + +@InProceedings{Alphonsa20, +author="Alphonsa, Mandla", +editor="Kumar, Amit +and Mozar, Stefan", +title="A Review on IOT Technology Stack, Architecture and Its Cloud Applications in Recent Trends", +booktitle="ICCCE 2020", +year="2021", +publisher="Springer Singapore", +address="Singapore", +pages="703--711", +abstract="The Internet of Things (IoT) senses, gather and transmit data over the internet without any human interference. This technology is a mixture of embedded technology, network technology and information technology. On various advancement of huge network and the broadcasting of (IoT), wireless sensored networks are considered to be part of the huge heterogeneous network. IoT architecture is the system of various rudiments like sensored networks, protocol, actuators, cloud service and layers. Internet of Things can also be called as an event-driven model. The IOT device is connected to gateway through Radio Frequency, LORA-WAN, Node MCU Pin-out. This review paper describes all protocol stack including its types of sensors in IOT their applications in real time environment and its architecture. In this paper we come together with the two different technologies Cloud Computing and IoT to observe the most common features, and to determine the benefits of their integration. The Cloud IoT prototype involves various applications, research issues and challenges.", +isbn="978-981-15-7961-5" +} +@inproceedings{jones_clean_io, +author = {Jones, Simon B}, +title = {Experiences with Clean I/O}, +year = {1995}, +publisher = {BCS Learning \& Development Ltd.}, +address = {Swindon, GBR}, +abstract = {The Clean system is a powerful functional programming tool. It contains experiments +in a number of different areas of functional language design. In particular, it has +a novel proposal for the organization of input and output, and contains impressive +libraries of facilities for programming graphical user interfaces.Clean I/O is based +on collections of operations that act to cause side effects on multiple explicit abstract +values representing physical I/O entities, such as files and graphical interfaces. +A system of unique types is used to ensure that these values are individually single +threaded through the program; and the side effecting I/O operations are therefore +well controlled. This approach is distinct from monadic I/O, which is being widely +adopted; monadic I/O schemes are based on a single, implicit environment, and guarantee +that this is single threaded.In this paper we will show that the Clean and monadic +approaches to I/O merge nicely. The functionality provided by the Clean and its I/O +libraries allows libraries for monadic I/O to be implemented. The paper presents an +implementation of a basic I/O monad library in Clean that can serve for future development. +In itself, the fact that the monadic approach can be implemented in Clean is unsurprising. +However, some interesting technical difficulties arose during implementation of the +monad; these and their solutions are discussed. The opportunity to express programs +using the implicit environments of monadic I/O allows us to simplify Clean programs +by removing some of the spaghetti, whilst retaining the generality of the explicit +environments where it is the most appropriate approach.}, +booktitle = {Proceedings of the 1995 International Conference on Functional Programming}, +pages = {167–177}, +numpages = {11}, +location = {Glasgow, UK}, +series = {FP'95} +} + +@inproceedings{sivieri2012drop, + title={Drop the phone and talk to the physical world: Programming the internet of things with Erlang}, + author={Sivieri, Alessandro and Mottola, Luca and Cugola, Gianpaolo}, + booktitle={2012 Third International Workshop on Software Engineering for Sensor Network Applications (SESENA)}, + pages={8--14}, + year={2012}, + organization={IEEE} +} + +@article{chong2007secure, + title={Secure web applications via automatic partitioning}, + author={Chong, Stephen and Liu, Jed and Myers, Andrew C and Qi, Xin and Vikram, Krishnaprasad and Zheng, Lantian and Zheng, Xin}, + journal={ACM SIGOPS Operating Systems Review}, + volume={41}, + number={6}, + pages={31--44}, + year={2007}, + publisher={ACM New York, NY, USA} +} + +@article{zdancewic2002secure, + title={Secure program partitioning}, + author={Zdancewic, Steve and Zheng, Lantian and Nystrom, Nathaniel and Myers, Andrew C}, + journal={ACM Transactions on Computer Systems (TOCS)}, + volume={20}, + number={3}, + pages={283--328}, + year={2002}, + publisher={ACM New York, NY, USA} +} + +@article{bhatt2012analysis, + title={Analysis of source lines of code (SLOC) metric}, + author={Bhatt, Kaushal and Tarey, Vinit and Patel, Pushpraj and Mits, Kaushal Bhatt and Ujjain, Datana}, + journal={International Journal of Emerging Technology and Advanced Engineering}, + volume={2}, + number={5}, + pages={150--154}, + year={2012}, + publisher={Citeseer} +} + +@article{10.1145/2775050.2633367, +author = {Ekblad, Anton and Claessen, Koen}, +title = {A Seamless, Client-Centric Programming Model for Type Safe Web Applications}, +year = {2014}, +issue_date = {December 2014}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +volume = {49}, +number = {12}, +issn = {0362-1340}, +url = {https://doi.org/10.1145/2775050.2633367}, +doi = {10.1145/2775050.2633367}, +abstract = {We propose a new programming model for web applications which is (1) seamless; one program and one language is used to produce code for both client and server, (2) client-centric; the programmer takes the viewpoint of the client that runs code on the server rather than the other way around, (3) functional and type-safe, and (4) portable; everything is implemented as a Haskell library that implicitly takes care of all networking code. Our aim is to improve the painful and error-prone experience of today's standard development methods, in which clients and servers are coded in different languages and communicate with each other using ad-hoc protocols. We present the design of our library called Haste.App, an example web application that uses it, and discuss the implementation and the compiler technology on which it depends.}, +journal = {SIGPLAN Not.}, +month = {sep}, +pages = {79–89}, +numpages = {11}, +keywords = {distributed systems, web applications, network communication} +} + +@article{jones_1992, title={Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine}, volume={2}, DOI={10.1017/S0956796800000319}, number={2}, journal={Journal of Functional Programming}, publisher={Cambridge University Press}, author={Jones, Simon L. Peyton}, year={1992}, pages={127–202}} + + +@article{domoszlai_implementing_2011, + title = {Implementing a non-strict purely functional language in {JavaScript}}, + volume = {3}, + url = {https://www.researchgate.net/profile/Jan_Martin_Jansen2/publication/230607075_Implementing_a_non-strict_purely_functional_language_in_JavaScript/links/53fc40190cf22f21c2f3b28a.pdf}, + urldate = {2017-05-23}, + journal = {Acta Universitatis Sapientiae}, + author = {Domoszlai, Laszlo and Bruel, Eddy and Jansen, Jan Martin}, + year = {2011}, + pages = {76--98}, + file = {53fc40190cf22f21c2f3b28a.pdf:/home/mrl/.local/share/zotero/storage/2EVHREI3/53fc40190cf22f21c2f3b28a.pdf:application/pdf}, +} +@Inbook{Domoszlai2013, +author={Domoszlai, L{\'a}szl{\'o} and Kozsik, Tam{\'a}s}, +editor={Achten, Peter and Koopman, Pieter}, +title={Clean Up the Web!}, +bookTitle={The Beauty of Functional Code: Essays Dedicated to Rinus Plasmeijer on the Occasion of His 61st Birthday}, +year=2013, +publisher={Springer Berlin Heidelberg}, +address={Berlin, Heidelberg}, +pages={133--150}, +abstract={Programming in Clean is much more appealing than programming in JavaScript. Therefore, solutions that can replace JavaScript with Clean in client-side web development are widely welcomed. This paper describes a technology for the cross-compilation of Clean to JavaScript and for the tight integration of the generated code into a web application. Our solution is based on the iTask framework and its extension, the so-called Tasklets. The application server approach provides simple and easy deployment, thus supporting rapid development. Examples are shown to illustrate how communication between the Clean and JavaScript code can be established.}, +isbn={978-3-642-40355-2}, +doi={10.1007/978-3-642-40355-2_10}, +url={https://doi.org/10.1007/978-3-642-40355-2_10} +} + +@inproceedings{10.1145/3412932.3412941, +author = {Staps, Camil and van Groningen, John and Plasmeijer, Rinus}, +title = {Lazy Interworking of Compiled and Interpreted Code for Sandboxing and Distributed Systems}, +year = {2019}, +isbn = {9781450375627}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/3412932.3412941}, +doi = {10.1145/3412932.3412941}, +abstract = {More and more applications rely on the safe execution of code unknown at compile-time, for example in the implementation of web browsers and plugin systems. Furthermore, these applications usually require some form of communication between the added code and its embedder, and hence a communication channel must be set up in which values are serialized and deserialized. This paper shows that in a functional programming language we can solve these two problems at once, if we realize that the execution of extra code is nothing more than the deserialization of a value which happens to be a function. To demonstrate this, we describe the implementation of a serialization library for the language Clean, which internally uses an interpreter to evaluate added code in a separate, sandboxed environment. Remarkable is that despite the conceptual asymmetry between "host" and "interpreter", lazy interworking must be implemented in a highly symmetric fashion, much akin to distributed systems. The library interworks on a low level with the native Clean program, but has been implemented without any changes to the native runtime system. It can therefore easily be ported to other programming languages.We can use the same technique in the context of the web, where we want to be able to share possibly lazy values between a server and a client. In this case the interpreter runs in WebAssembly in the browser and communicates seamlessly with the server, written in Clean. We use this in the iTasks web framework to handle communication and offload computations to the client to reduce stress on the server-side. Previously, this framework cross-compiled the Clean source code to JavaScript and used JSON for communication. The interpreter has a more predictable and better performance, and integration is much simpler because it interworks on a lower level with the web server.}, +booktitle = {Proceedings of the 31st Symposium on Implementation and Application of Functional Languages}, +articleno = {9}, +numpages = {12}, +keywords = {functional programming, sandboxing, web-assembly, laziness, interpreters}, +location = {Singapore, Singapore}, +series = {IFL '19} +} + +@inproceedings{elliott_guilt_2015, + title = {Guilt free ivory}, + volume = {50}, + booktitle = {{ACM} {SIGPLAN} {Notices}}, + publisher = {ACM}, + author = {Elliott, Trevor and Pike, Lee and Winwood, Simon and Hickey, Pat and Bielman, James and Sharp, Jamey and Seidel, Eric and Launchbury, John}, + year = {2015}, + pages = {189--200}, + file = {5678351608ae125516ee79c6.pdf:/home/mrl/.local/share/zotero/storage/KJMFUH7T/5678351608ae125516ee79c6.pdf:application/pdf}, +} + +@inproceedings{sawada_emfrp:_2016, + title = {Emfrp: a functional reactive programming language for small-scale embedded systems}, + booktitle = {Companion {Proceedings} of the 15th {International} {Conference} on {Modularity}}, + publisher = {ACM}, + author = {Sawada, Kensuke and Watanabe, Takuo}, + year = {2016}, + pages = {36--44}, + file = {Sawada and Watanabe - 2016 - Emfrp a functional reactive programming language .pdf:/home/mrl/.local/share/zotero/storage/9U95ER5P/Sawada and Watanabe - 2016 - Emfrp a functional reactive programming language .pdf:application/pdf}, +} + +@inproceedings{lv_designing_2018, + title = {Designing of {IoT} {Platform} {Based} on {Functional} {Reactive} {Pattern}}, + booktitle = {2018 {International} {Conference} on {Computer} {Science}, {Electronics} and {Communication} {Engineering} ({CSECE} 2018)}, + publisher = {Atlantis Press}, + author = {Lv, Haidong and Ge, Xiaolong and Zhu, Hongzhi and Yuan, Zhiwei and Wang, Zhen and Zhu, Yongkang}, + year = {2018}, + file = {Lv et al. - 2018 - Designing of IoT Platform Based on Functional Reac.pdf:/home/mrl/.local/share/zotero/storage/IBVT6MHW/Lv et al. - 2018 - Designing of IoT Platform Based on Functional Reac.pdf:application/pdf}, +} + +@inproceedings{helbling_juniper:_2016, + title = {Juniper: a functional reactive programming language for the {Arduino}}, + booktitle = {Proceedings of the 4th {International} {Workshop} on {Functional} {Art}, {Music}, {Modelling}, and {Design}}, + publisher = {ACM}, + author = {Helbling, Caleb and Guyer, Samuel Z}, + year = {2016}, + pages = {8--16}, + file = {Helbling and Guyer - 2016 - Juniper a functional reactive programming languag.pdf:/home/mrl/.local/share/zotero/storage/M4UWK57F/Helbling and Guyer - 2016 - Juniper a functional reactive programming languag.pdf:application/pdf}, +} + +@incollection{wang_functional_2020, + address = {Cham}, + title = {Functional {Reactive} {EDSL} with {Asynchronous} {Execution} for {Resource}-{Constrained} {Embedded} {Systems}}, + isbn = {978-3-030-26428-4}, + url = {https://doi.org/10.1007/978-3-030-26428-4_12}, + abstract = {This paper presents a functionalWang, Sheng reactive embedded domain-specific language (EDSL) for resource-constrained embedded systems and its efficient execution method. In the language, time-varying values changes at discrete points of time rather than continuously. Combined with a mechanismWatanabe, Takuo to let users designate the update interval of values, it is possible to derive the minimal value-updates required to produce the user-desired output. Also, the event-driven backend asynchronously updates an input value when its value is required. In this way, we can greatly reduce the number of updates.}, + booktitle = {Software {Engineering}, {Artificial} {Intelligence}, {Networking} and {Parallel}/{Distributed} {Computing}}, + publisher = {Springer International Publishing}, + author = {Wang, Sheng and Watanabe, Takuo}, + editor = {Lee, Roger}, + year = {2020}, + doi = {10.1007/978-3-030-26428-4_12}, + pages = {171--190}, + file = {Wang and Watanabe - 2020 - Functional Reactive EDSL with Asynchronous Executi.pdf:/home/mrl/.local/share/zotero/storage/5JUBWXYV/Wang and Watanabe - 2020 - Functional Reactive EDSL with Asynchronous Executi.pdf:application/pdf}, +} + +@incollection{valliappan_towards_2020, + address = {New York, NY, USA}, + title = {Towards {Secure} {IoT} {Programming} in {Haskell}}, + isbn = {978-1-4503-8050-8}, + url = {https://doi.org/10.1145/3406088.3409027}, + abstract = {IoT applications are often developed in programming languages with low-level abstractions, where a seemingly innocent mistake might lead to severe security vulnerabilities. Current IoT development tools make it hard to identify these vulnerabilities as they do not provide end-to-end guarantees about how data flows within and between appliances. In this work we present Haski, an embedded domain specific language in Haskell (eDSL) for secure programming of IoT devices. Haski enables developers to write Haskell programs that generate C code without falling into many of C’s pitfalls. Haski is designed after the synchronous programming language Lustre, and sports a backwards compatible information-flow control extension to restrict how sensitive data is propagated and modified within the application. We present a novel eDSL design which uses recursive monadic bindings and allows a natural use of functions and pattern-matching in Haskell to write Haski programs. To showcase Haski, we implement a simple smart house controller where communication is done via low-energy Bluetooth on Zephyr OS.}, + booktitle = {Proceedings of the 13th {ACM} {SIGPLAN} {International} {Symposium} on {Haskell}}, + publisher = {Association for Computing Machinery}, + author = {Valliappan, Nachiappan and Krook, Robert and Russo, Alejandro and Claessen, Koen}, + year = {2020}, + pages = {136--150}, + file = {Valliappan et al. - 2020 - Towards Secure IoT Programming in Haskell.pdf:/home/mrl/.local/share/zotero/storage/BF6YIT2S/Valliappan et al. - 2020 - Towards Secure IoT Programming in Haskell.pdf:application/pdf}, +} + +@inproceedings{sarkar_hailstorm_2020, + address = {New York, NY, USA}, + series = {{PPDP} '20}, + title = {Hailstorm: {A} {Statically}-{Typed}, {Purely} {Functional} {Language} for {IoT} {Applications}}, + isbn = {978-1-4503-8821-4}, + url = {https://doi.org/10.1145/3414080.3414092}, + doi = {10.1145/3414080.3414092}, + abstract = {With the growing ubiquity of Internet of Things (IoT), more complex logic is being programmed on resource-constrained IoT devices, almost exclusively using the C programming language. While C provides low-level control over memory, it lacks a number of high-level programming abstractions such as higher-order functions, polymorphism, strong static typing, memory safety, and automatic memory management. We present Hailstorm, a statically-typed, purely functional programming language that attempts to address the above problem. It is a high-level programming language with a strict typing discipline. It supports features like higher-order functions, tail-recursion, and automatic memory management, to program IoT devices in a declarative manner. Applications running on these devices tend to be heavily dominated by I/O. Hailstorm tracks side effects like I/O in its type system using resource types. This choice allowed us to explore the design of a purely functional standalone language, in an area where it is more common to embed a functional core in an imperative shell. The language borrows the combinators of arrowized FRP, but has discrete-time semantics. The design of the full set of combinators is work in progress, driven by examples. So far, we have evaluated Hailstorm by writing standard examples from the literature (earthquake detection, a railway crossing system and various other clocked systems), and also running examples on the GRiSP embedded systems board, through generation of Erlang.}, + booktitle = {Proceedings of the 22nd {International} {Symposium} on {Principles} and {Practice} of {Declarative} {Programming}}, + publisher = {Association for Computing Machinery}, + author = {Sarkar, Abhiroop and Sheeran, Mary}, + year = {2020}, + note = {event-place: Bologna, Italy}, + keywords = {functional programming, compilers, embedded systems, IoT}, + file = {Sarkar and Sheeran - 2020 - Hailstorm A Statically-Typed, Purely Functional L.pdf:/home/mrl/.local/share/zotero/storage/BKFJKGQP/Sarkar and Sheeran - 2020 - Hailstorm A Statically-Typed, Purely Functional L.pdf:application/pdf}, +} +@inproceedings{10.1145/3281366.3281370, +author = {Shibanai, Kazuhiro and Watanabe, Takuo}, +title = {Distributed Functional Reactive Programming on Actor-Based Runtime}, +year = {2018}, +isbn = {9781450360661}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/3281366.3281370}, +doi = {10.1145/3281366.3281370}, +abstract = {Reactive programming over a network is a challenging task because efficient elimination of temporary violations of data flow invariants, known as glitches, in a distributed setting is still an open issue. In this paper, we propose a method for constructing a distributed reactive programming system of which runtime guarantees the properties of single source glitch-freedom and the robustness against out-of-order messages. Based on the method, we developed a purely functional reactive programming language XFRP whose compiler produces Erlang code. Using some examples, we show that the proposed method is beneficial for constructing distributed reactive applications without suffering from inconsistencies.}, +booktitle = {Proceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control}, +pages = {13–22}, +numpages = {10}, +keywords = {Distributed Functional Reactive Programming, Erlang, Glitch Freedom, Synchronization, Actor-Based Runtime System}, +location = {Boston, MA, USA}, +series = {AGERE 2018} +} + +@inproceedings{suzuki_cfrp_2017, + address = {The University of The Philippines Cebu, Cebu City, The Philippines}, + title = {{CFRP}: {A} {Functional} {Reactive} {Programming} {Language} for {Small}-{Scale} {Embedded} {Systems}}, + isbn = {978-981-323-406-2 978-981-323-407-9}, + shorttitle = {{CFRP}}, + url = {http://www.worldscientific.com/doi/abs/10.1142/9789813234079_0001}, + doi = {10.1142/9789813234079_0001}, + language = {en}, + urldate = {2022-03-02}, + booktitle = {Theory and {Practice} of {Computation}}, + publisher = {WORLD SCIENTIFIC}, + author = {Suzuki, Kohei and Nagayama, Kanato and Sawada, Kensuke and Watanabe, Takuo}, + month = dec, + year = {2017}, + pages = {1--13}, + file = {Suzuki et al. - 2017 - CFRP A Functional Reactive Programming Language f.pdf:/home/mrl/.local/share/zotero/storage/XHPSZCJH/Suzuki et al. - 2017 - CFRP A Functional Reactive Programming Language f.pdf:application/pdf}, +} + + +@inproceedings{shibanai_distributed_2018, + address = {New York, NY, USA}, + series = {{AGERE} 2018}, + title = {Distributed {Functional} {Reactive} {Programming} on {Actor}-{Based} {Runtime}}, + isbn = {978-1-4503-6066-1}, + url = {https://doi.org/10.1145/3281366.3281370}, + doi = {10.1145/3281366.3281370}, + abstract = {Reactive programming over a network is a challenging task because efficient elimination of temporary violations of data flow invariants, known as glitches, in a distributed setting is still an open issue. In this paper, we propose a method for constructing a distributed reactive programming system of which runtime guarantees the properties of single source glitch-freedom and the robustness against out-of-order messages. Based on the method, we developed a purely functional reactive programming language XFRP whose compiler produces Erlang code. Using some examples, we show that the proposed method is beneficial for constructing distributed reactive applications without suffering from inconsistencies.}, + booktitle = {Proceedings of the 8th {ACM} {SIGPLAN} {International} {Workshop} on {Programming} {Based} on {Actors}, {Agents}, and {Decentralized} {Control}}, + publisher = {Association for Computing Machinery}, + author = {Shibanai, Kazuhiro and Watanabe, Takuo}, + year = {2018}, + note = {event-place: Boston, MA, USA}, + keywords = {Actor-Based Runtime System, Distributed Functional Reactive Programming, Erlang, Glitch Freedom, Synchronization}, + pages = {13--22}, + file = {Shibanai and Watanabe - 2018 - Distributed Functional Reactive Programming on Act.pdf:/home/mrl/.local/share/zotero/storage/UJ5IG7R4/Shibanai and Watanabe - 2018 - Distributed Functional Reactive Programming on Act.pdf:application/pdf}, +} + +@inproceedings{nilsson_functional_2002, + address = {New York, NY, USA}, + series = {Haskell '02}, + title = {Functional {Reactive} {Programming}, {Continued}}, + isbn = {1-58113-605-6}, + url = {https://doi.org/10.1145/581690.581695}, + doi = {10.1145/581690.581695}, + abstract = {Functional Reactive Programming (FRP) extends a host programming language with a notion of time flow. Arrowized FRP (AFRP) is a version of FRP embedded in Haskell based on the arrow combinators. AFRP is a powerful synchronous dataflow programming language with hybrid modeling capabilities, combining advanced synchronous dataflow features with the higher-order lazy functional abstractions of Haskell. In this paper, we describe the AFRP programming style and our Haskell-based implementation. Of particular interest are the AFRP combinators that support dynamic collections and continuation-based switching. We show how these combinators can be used to express systems with an evolving structure that are difficult to model in more traditional dataflow languages.}, + booktitle = {Proceedings of the 2002 {ACM} {SIGPLAN} {Workshop} on {Haskell}}, + publisher = {Association for Computing Machinery}, + author = {Nilsson, Henrik and Courtney, Antony and Peterson, John}, + year = {2002}, + note = {event-place: Pittsburgh, Pennsylvania}, + keywords = {functional programming, Haskell, domain-specific languages, FRP, hybrid modeling, synchronous dataflow languages}, + pages = {51--64}, + file = {Nilsson et al. - 2002 - Functional reactive programming, continued.pdf:/home/mrl/.local/share/zotero/storage/X79J47NP/Nilsson et al. - 2002 - Functional reactive programming, continued.pdf:application/pdf}, +} +@inproceedings{10.1145/2661136.2661146, +author = {Philips, Laure and De Roover, Coen and Van Cutsem, Tom and De Meuter, Wolfgang}, +title = {Towards Tierless Web Development without Tierless Languages}, +year = {2014}, +isbn = {9781450332101}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/2661136.2661146}, +doi = {10.1145/2661136.2661146}, +abstract = {Tierless programming languages enable developing the typical server, client and database tiers of a web application as a single mono-linguistic program. This development style is in stark contrast to the current practice which requires combining multiple technologies and programming languages. A myriad of tierless programming languages has already been proposed, often featuring a JavaScript-like syntax. Instead of introducing yet another, we advocate that it should be possible to develop tierless web applications in existing general-purpose languages. This not only reduces the complexity that developers are exposed to, but also precludes the need for new development tools. We concretize this novel approach to tierless programming by discussing requirements on its future instantiations. We explore the design space of the program analysis for determining and the program transformation for realizing the tier split respectively. The former corresponds to new adaptations of an old familiar, program slicing, for tier splitting. The latter includes several strategies for handling cross-tier function calls and data accesses. Using a prototype instantiation for JavaScript, we demonstrate the feasibility of our approach on an example web application. We conclude with a discussion of open questions and challenges for future research.}, +booktitle = {Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming \& Software}, +pages = {69–81}, +numpages = {13}, +keywords = {tier splitting, program slicing, tierless programming, javascript}, +location = {Portland, Oregon, USA}, +series = {Onward! 2014} +} + +@misc{hess_arduino-copilot_2020, + title = {arduino-copilot: {Arduino} programming in haskell using the {Copilot} stream {DSL}}, + shorttitle = {arduino-copilot}, + url = {//hackage.haskell.org/package/arduino-copilot}, + urldate = {2020-02-14}, + journal = {Hackage}, + author = {Hess, Joey}, + year = {2020}, + file = {Snapshot:/home/mrl/.local/share/zotero/storage/PSHYKF52/arduino-copilot.html:text/html}, +} +@INPROCEEDINGS{5558637, + + author={Axelsson, Emil and Claessen, Koen and Dévai, Gergely and Horváth, Zoltán and Keijzer, Karin and Lyckegård, Bo and Persson, Anders and Sheeran, Mary and Svenningsson, Josef and Vajdax, András}, + + booktitle={Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2010)}, + + title={Feldspar: A domain specific language for digital signal processing algorithms}, + + year={2010}, + + volume={}, + + number={}, + + pages={169-178}, + + abstract={A new language, Feldspar, is presented, enabling high-level and platform-independent description of digital signal processing (DSP) algorithms. Feldspar is a pure functional language embedded in Haskell. It offers a high-level dataflow style of programming, as well as a more mathematical style based on vector indices. The key to generating efficient code from such descriptions is a high-level optimization technique called vector fusion. Feldspar is based on a low-level, functional core language which has a relatively small semantic gap to machine-oriented languages like C. The core language serves as the interface to the back-end code generator, which produces C. For very small examples, the generated code performs comparably to hand-written C code when run on a DSP target. While initial results are promising, to achieve good performance on larger examples, issues related to memory access patterns and array copying will have to be addressed.}, + + keywords={}, + + doi={10.1109/MEMCOD.2010.5558637}, + + ISSN={}, + + month={July},} + +@article{sheetz2009understanding, + title={Understanding developer and manager perceptions of function points and source lines of code}, + author={Sheetz, Steven D and Henderson, David and Wallace, Linda}, + journal={Journal of Systems and Software}, + volume={82}, + number={9}, + pages={1540--1549}, + year={2009}, + publisher={Elsevier} +} + +@article{fichera2017python, + title={A Python framework for programming autonomous robots using a declarative approach}, + author={Fichera, Loris and Messina, Fabrizio and Pappalardo, Giuseppe and Santoro, Corrado}, + journal={Science of Computer Programming}, + volume={139}, + pages={36--55}, + year={2017}, + publisher={Elsevier} +} + +@inproceedings{balat2006ocsigen, + title={Ocsigen: Typing web interaction with objective caml}, + author={Balat, Vincent}, + booktitle={Proceedings of the 2006 Workshop on ML}, + pages={84--94}, + year={2006} +} + +@inproceedings{bjornson2010composing, + title={Composing reactive GUIs in F\# using WebSharper}, + author={Bjornson, Joel and Tayanovskyy, Anton and Granicz, Adam}, + booktitle={Symposium on Implementation and Application of Functional Languages}, + pages={203--216}, + year={2010}, + organization={Springer} +} + +@book{strack2015getting, + title={Getting Started with Meteor. js JavaScript Framework}, + author={Strack, Isaac}, + year={2015}, + publisher={Packt Publishing Ltd} +} + +@incollection{hall1993glasgow, + title={The Glasgow Haskell compiler: a retrospective}, + author={Hall, Cordelia and Hammond, Kevin and Partain, Will and Peyton Jones, Simon L and Wadler, Philip}, + booktitle={Functional Programming, Glasgow 1992}, + pages={62--71}, + year={1993}, + publisher={Springer} +} + +@misc{diffmicro, + title = "MicroPython Differences from CPython", + author = "Micropython Official Website", + year = "2022", + note = "https://docs.micropython.org/en/latest/genrst/index.html", +} + +@article{weisenburger2020survey, + title={A survey of multitier programming}, + author={Weisenburger, Pascal and Wirth, Johannes and Salvaneschi, Guido}, + journal={ACM Computing Surveys (CSUR)}, + volume={53}, + number={4}, + pages={1--35}, + year={2020}, + publisher={ACM New York, NY, USA} +} + +@inproceedings {203628, +author = {Manos Antonakakis and Tim April and Michael Bailey and Matt Bernhard and Elie Bursztein and Jaime Cochran and Zakir Durumeric and J. Alex Halderman and Luca Invernizzi and Michalis Kallitsis and Deepak Kumar and Chaz Lever and Zane Ma and Joshua Mason and Damian Menscher and Chad Seaman and Nick Sullivan and Kurt Thomas and Yi Zhou}, +title = {Understanding the Mirai Botnet}, +booktitle = {26th USENIX Security Symposium (USENIX Security 17)}, +year = {2017}, +isbn = {978-1-931971-40-9}, +address = {Vancouver, BC}, +pages = {1093--1110}, +url = {https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/antonakakis}, +publisher = {USENIX Association}, +month = aug, +} + +@inproceedings{herwig_measurement_2019, + address = {San Diego, CA, USA}, + title = {Measurement and {Analysis} of {Hajime}, a {Peer}-to-peer {IoT} {Botnet}}, + isbn = {1-891562-55-X}, + url = {https://par.nsf.gov/biblio/10096257}, + doi = {10.14722/ndss.2019.23488}, + booktitle = {Network and {Distributed} {Systems} {Security} ({NDSS}) {Symposium} 2019}, + author = {Herwig, Stephen and Harvey, Katura and Hughey, George and Roberts, Richard and Levin, Dave}, + year = {2019}, + pages = {15}, + file = {Herwig et al. - Measurement and Analysis of Hajime, a Peer-to-peer.pdf:/home/mrl/.local/share/zotero/storage/YFB8C8CU/Herwig et al. - Measurement and Analysis of Hajime, a Peer-to-peer.pdf:application/pdf}, +} +@article{10.1145/3437537, +author = {Alhirabi, Nada and Rana, Omer and Perera, Charith}, +title = {Security and Privacy Requirements for the Internet of Things: A Survey}, +year = {2021}, +issue_date = {February 2021}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +volume = {2}, +number = {1}, +issn = {2691-1914}, +url = {https://doi.org/10.1145/3437537}, +doi = {10.1145/3437537}, +abstract = {The design and development process for internet of things (IoT) applications is more complicated than that for desktop, mobile, or web applications. First, IoT applications require both software and hardware to work together across many different types of nodes with different capabilities under different conditions. Second, IoT application development involves different types of software engineers such as desktop, web, embedded, and mobile to work together. Furthermore, non-software engineering personnel such as business analysts are also involved in the design process. In addition to the complexity of having multiple software engineering specialists cooperating to merge different hardware and software components together, the development process requires different software and hardware stacks to be integrated together (e.g., different stacks from different companies such as Microsoft Azure and IBM Bluemix). Due to the above complexities, non-functional requirements (such as security and privacy, which are highly important in the context of the IoT) tend to be ignored or treated as though they are less important in the IoT application development process. This article reviews techniques, methods, and tools to support security and privacy requirements in existing non-IoT application designs, enabling their use and integration into IoT applications. This article primarily focuses on design notations, models, and languages that facilitate capturing non-functional requirements (i.e., security and privacy). Our goal is not only to analyse, compare, and consolidate the empirical research but also to appreciate their findings and discuss their applicability for the IoT.}, +journal = {ACM Trans. Internet Things}, +month = {feb}, +articleno = {6}, +numpages = {37}, +keywords = {design principles, software design tools, Internet of Things, non functional requirements, notation, software engineering} +} + +@phdthesis{wijkhuizen_security_2018, + address = {Nijmegen}, + type = {Bachelor's {Thesis}}, + title = {Security analysis of the {iTasks} framework}, + url = {http://www.ru.nl/publish/pages/769526/arjan_oortgiese.pdf}, + language = {English}, + urldate = {2017-04-08}, + school = {Radboud University}, + author = {Wijkhuizen, Mark}, + year = {2018}, + file = {Wijkhuizen - 2018 - Security analysis of the iTasks framework.pdf:/home/mrl/.local/share/zotero/storage/AWFT6PGL/Wijkhuizen - 2018 - Security analysis of the iTasks framework.pdf:application/pdf}, +} +@inproceedings{Steenvoorden2019tophat, +author = {Steenvoorden, Tim and Naus, Nico and Klinik, Markus}, +title = {TopHat: A Formal Foundation for Task-Oriented Programming}, +year = {2019}, +isbn = {9781450372497}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/3354166.3354182}, +doi = {10.1145/3354166.3354182}, +booktitle = {Proceedings of the 21st International Symposium on Principles and Practice of Declarative Programming}, +articleno = {17}, +numpages = {13}, +location = {Porto, Portugal}, +series = {PPDP '19} +} + + + + -- 2.20.1