proofread chp 4
[phd-thesis.git] / self.bib
index b12fade..daad4b1 100644 (file)
--- a/self.bib
+++ b/self.bib
        file = {Lubbers et al. - 2019 - Interpreting Task Oriented Programs on Tiny Comput.pdf:/home/mrl/.local/share/zotero/storage/ATYSJXJ3/Lubbers et al. - 2019 - Interpreting Task Oriented Programs on Tiny Comput.pdf:application/pdf},
 }
 
-@incollection{lubbers_writing_2019,
+@incollection{lubbers_writing_2023,
        address = {Cham},
+       series = {Lecture {Notes} in {Computer} {Science}},
        title = {Writing {Internet} of {Things} applications with {Task} {Oriented} {Programming}},
        abstract = {The Internet of Things (IOT) is growing fast. In 2018, there was approximately one connected device per person on earth and the number has been growing ever since. The devices interact with the environment via different modalities at the same time using sensors and actuators making the programs parallel. Yet, writing this type of programs is difficult because the devices have little computation power and memory, the platforms are heterogeneous and the languages are low level. Task Oriented Programming (TOP) is a novel declarative programming language paradigm that is used to express coordination of work, collaboration of users and systems, the distribution of shared data and the human computer interaction. The mTask language is a specialized, yet full-fledged, multi-backend TOP language for IOT devices. With the bytecode interpretation backend and the integration with iTasks, tasks can be executed on the device dynamically. This means that —according to the current state of affairs— tasks can be tailor-made at run time, compiled to device-agnostic bytecode and shipped to the device for interpretation. Tasks sent to the device are fully integrated in iTasks to allow every form of interaction with the tasks such as observation of the task value and interaction with Shared Data Sources (SDSs). The application is —server and devices— are programmed in a single language, albeit using two embedded Domain Specific Languages (EDSLs).},
        language = {en},
-       booktitle = {Central {European} {Functional} {Programming} {School}: 8th {Summer} {School}, {CEFP} 2019, {Budapest}, {Hungary}, {July} 17–21, 2019, {Revised} {Selected} {Papers}},
-       publisher = {Springer International Publishing},
+       number = {11950},
+       booktitle = {Composability, {Comprehensibility} and {Correctness} of {Working} {Software}, 8th {Summer} {School}, {Budapest}, {Hungary}, {June} 17–21, 2019, {Revised} {Selected} {Papers}},
+       publisher = {Springer},
        author = {Lubbers, Mart and Koopman, Pieter and Plasmeijer, Rinus},
-       year = {2019},
-       note = {in-press},
+       year = {2023},
+       note = {in-press. preprint at: https://arxiv.org/abs/2212.04193},
        pages = {51},
-       file = {Lubbers - Writing Internet of Things applications with Task .pdf:/home/mrl/.local/share/zotero/storage/ILZIBYW5/Lubbers - Writing Internet of Things applications with Task .pdf:application/pdf},
+       file = {cefp.pdf:/home/mrl/.local/share/zotero/storage/VEWFI5DG/cefp.pdf:application/pdf},
 }
 
 @inproceedings{lubbers_tiered_2020,
@@ -93,7 +95,6 @@
 @inproceedings{lubbers_task_2018,
        address = {Lowell, MA},
        title = {Task {Oriented} {Programming} and the {Internet} of {Things}},
-       copyright = {All rights reserved},
        isbn = {978-1-4503-7143-8},
        doi = {10.1145/3310232.3310239},
        abstract = {In the omnipresent Internet of Things (IoT), tiny devices sense and alter the environment, process information and communicate with the world. These devices have limited amounts of processing power and memory. This imposes severe restrictions on their software and communication protocols. As a result, applications are composed of parts written in various programming languages that communicate in many different ways. This impedance mismatch hampers development and maintenance. In previous work we have shown how an IoT device can be programmed by defining an embedded Domain Specific Language (eDSL). In this paper we show how IoT tasks can be seemlessly integrated with a Task Oriented Programming (TOP) server such as iTasks. It allows the specification on a high-level of abstraction of arbitrary collaborations between human beings, large systems, and now also IoT devices. The implementation is made in three steps. First, there is an interface to connect devices dynamically to an iTasks server using various communication protocols. Next, we solve the communication problem between IoT devices and the server by porting Shared Data Sources (SDSs) from TOP. As a result, data can be shared, viewed and updated from the server or IoT device. Finally, we crack the maintenance problem by switching from generating fixed code for the IoT devices to dynamically shipping code. It makes it possible to run multiple tasks on an IoT device and to decide at runtime what tasks that should be.},
        publisher = {ACM},
        author = {Lubbers, Mart and Koopman, Pieter and Plasmeijer, Rinus},
        year = {2018},
-       pages = {83--94},
-       file = {Lubbers et al. - 2018 - Task Oriented Programming and the Internet of Thin.pdf:/home/mrl/.local/share/zotero/storage/3E5KLI5V/Lubbers et al. - 2018 - Task Oriented Programming and the Internet of Thin.pdf:application/pdf},
+       pages = {12},
+       file = {Lubbers et al. - 2018 - Task Oriented Programming and the Internet of Thin.pdf:/home/mrl/.local/share/zotero/storage/3E5KLI5V/Lubbers et al. - 2018 - Task Oriented Programming and the Internet of Thin.pdf:application/pdf;Lubbers et al. - 2019 - Task Oriented Programming and the Internet of Thin.pdf:/home/mrl/.local/share/zotero/storage/R7TFJGVR/Lubbers et al. - 2019 - Task Oriented Programming and the Internet of Thin.pdf:application/pdf},
 }
 
 @mastersthesis{lubbers_task_2017,
        file = {amlap2015.pdf:/home/mrl/.local/share/zotero/storage/H9WTW9TM/amlap2015.pdf:application/pdf;Will_Schuerman_AMLAP2015_Draft2.pdf:/home/mrl/.local/share/zotero/storage/BFBDDVIQ/Will_Schuerman_AMLAP2015_Draft2.pdf:application/pdf},
 }
 
-@incollection{koopman_simulation_2018,
+@incollection{koopman_simulation_2023,
        address = {Cham},
+       series = {Lecture {Notes} in {Computer} {Science}},
        title = {Simulation of a {Task}-{Based} {Embedded} {Domain} {Specific} {Language} for the {Internet} of {Things}},
        language = {en},
-       booktitle = {Central {European} {Functional} {Programming} {School}: 7th {Summer} {School}, {CEFP} 2018, {Košice}, {Slovakia}, {January} 22–26, 2018, {Revised} {Selected} {Papers}},
-       publisher = {Springer International Publishing},
+       number = {11916},
+       booktitle = {Composability, {Comprehensibility} and {Correctness} of {Working} {Software}, 7th {Winter} {School}, {Kosice}, {Slovakia}, {January} 22–26, 2018, {Revised} {Selected} {Papers}},
+       publisher = {Springer},
        author = {Koopman, Pieter and Lubbers, Mart and Plasmeijer, Rinus},
-       year = {2018},
+       year = {2023},
        note = {in-press},
        pages = {51},
 }
        file = {Koopman et al. - 2022 - SusTrainable Promoting Sustainability as a Fundam.pdf:/home/mrl/.local/share/zotero/storage/5F9SRJQI/Koopman et al. - 2022 - SusTrainable Promoting Sustainability as a Fundam.pdf:application/pdf},
 }
 
-@inproceedings{lubbers_deep_2022,
-       address = {Berlin, Heidelberg},
-       title = {Deep {Embedding} with {Class}},
-       booktitle = {Revised {Selected} {Papers} from the 23rd {International} {Symposium} on {Trends} in {Functional} {Programming}, {TFP} 2022, {Online}, 17-18 {March} 2022},
-       publisher = {Springer Berlin Heidelberg},
-       author = {Lubbers, Mart},
-       year = {2022},
-       note = {in-press},
-       pages = {20},
-}
-
 @inproceedings{lubbers_first-class_2022,
        address = {New York, NY, USA},
        series = {{IFL} '22},
        keywords = {clean, distributed applications, functional programming, internet of things, task oriented programming},
 }
 
-@inproceedings{crooijmans_reducing_2022,
-       address = {Berlin, Heidelberg},
-       title = {Reducing the {Power} {Consumption} of {IoT} with {Task}-{Oriented} {Programming}},
-       booktitle = {Revised {Selected} {Papers} from the 23rd {International} {Symposium} on {Trends} in {Functional} {Programming}, {TFP} 2022, {Online}, 17-18 {March} 2022},
-       publisher = {Springer Berlin Heidelberg},
-       author = {Crooijmans, Sjoerd and Lubbers, Mart and Koopman, Pieter},
+@book{lubbers_orchestrating_2023,
+       address = {Nijmegen},
+       title = {Orchestrating the {Internet} of {Things} using {Task}-{Oriented} {Programming}},
+       shorttitle = {A {Cocktail} of {Tools}: {DSLs} for {TOSD}},
+       publisher = {UB Nijmegen},
+       author = {Lubbers, Mart},
+       year = {2023},
+}
+
+@incollection{lubbers_green_2022,
+       address = {Cham},
+       title = {Green {Computing} for the {Internet} of {Things}},
+       language = {en},
+       booktitle = {{SusTrainable} {Summer} {School} 2022, {Rijeka}, {Croatia}, {July} 4–5, 2022, {Revised} {Selected} {Papers}},
+       publisher = {Springer International Publishing},
+       author = {Lubbers, Mart and Koopman, Pieter},
        year = {2022},
        note = {in-press},
-       pages = {20},
+       pages = {1},
 }
 
 @article{lubbers_could_2022,
        title = {Could {Tierless} {Languages} {Reduce} {IoT} {Development} {Grief}?},
-       volume = {3},
-       number = {5},
+       issn = {2691-1914},
+       doi = {10.1145/3572901},
+       abstract = {Internet of Things (IoT) software is notoriously complex, conventionally comprising multiple tiers. Traditionally an IoT developer must use multiple programming languages and ensure that the components interoperate correctly. A novel alternative is to use a single 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 IoT stacks: one for resource-rich sensor nodes (Clean with iTask), and one for resource-constrained sensor nodes (Clean with iTask and mTask). The evaluation is based on four implementations of a typical smart campus application: two tierless and two Python-based tiered. (1) We show that tierless languages have the potential to significantly reduce the development effort for IoT systems, requiring 70\% less code than the tiered implementations. Careful analysis attributes this code reduction to reduced interoperation (e.g. two embedded domain-specific languages (DSLs) and one paradigm versus seven languages and two paradigms), automatically generated distributed communication, and powerful IoT programming abstractions. (2) We show that tierless languages have the potential to significantly improve the reliability of IoT systems, describing how Clean iTask/mTask maintains type safety, provides higher order failure management, and simplifies maintainability. (3) We report the first comparison of a tierless 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. (4) We present the first comparison of two tierless IoT languages, one for resource-rich sensor nodes, and the other for resource-constrained sensor nodes.},
        journal = {ACM Trans. Internet Things},
        author = {Lubbers, Mart and Koopman, Pieter and Ramsingh, Adrian and Singer, Jeremy and Trinder, Phil},
-       month = sep,
+       month = nov,
        year = {2022},
        note = {Place: New York, NY, USA
-Publisher: Association for Computing Machinery
-in-press},
-       keywords = {access control, internet-of-things, policy language, privilege escalation, Smart home system},
+Publisher: Association for Computing Machinery},
+       keywords = {access control, internet-of-things, policy language, privilege escalation, Smart home system, IoT stacks, Tierless languages},
 }
-@incollection{lubbers_green_2022,
+
+@inproceedings{koopman_strongly-typed_2022,
+       address = {New York, NY, USA},
+       series = {{IFL} '22},
+       title = {Strongly-{Typed} {Multi}-{View} {Stack}-{Based} {Computations}},
+       booktitle = {Proceedings of the 34st {Symposium} on {Implementation} and {Application} of {Functional} {Languages}},
+       publisher = {Association for Computing Machinery},
+       author = {Koopman, Pieter and Lubbers, Mart},
+       year = {2022},
+       note = {event-place: Kopenhagen, Denmark. under-review},
+       keywords = {clean, distributed applications, functional programming, internet of things, task oriented programming},
+}
+
+@inproceedings{lubbers_deep_2022,
        address = {Cham},
-       title = {Green {Computing} for the {Internet} of {Things}},
-       language = {en},
-       booktitle = {{SusTrainable} {Summer} {School} 2022, {Rijeka}, {Croatia}, {July} 4–5, 2022, {Revised} {Selected} {Papers}},
+       title = {Deep {Embedding} with {Class}},
+       isbn = {978-3-031-21314-4},
+       abstract = {The two flavours of DSL embedding are shallow and deep embedding. In functional languages, shallow embedding models the language constructs as functions in which the semantics are embedded. Adding semantics is therefore cumbersome while adding constructs is a breeze. Upgrading the functions to type classes lifts this limitation to a certain extent.},
+       booktitle = {Trends in {Functional} {Programming}},
        publisher = {Springer International Publishing},
-       author = {Lubbers, Mart and Koopman, Pieter},
+       author = {Lubbers, Mart},
+       editor = {Swierstra, Wouter and Wu, Nicolas},
        year = {2022},
-       note = {in-press},
-       pages = {1},
+       pages = {39--58},
+       file = {Lubbers - 2022 - Deep Embedding with Class.pdf:/home/mrl/.local/share/zotero/storage/KDFM73Z7/Lubbers - 2022 - Deep Embedding with Class.pdf:application/pdf},
+}
+
+@inproceedings{crooijmans_reducing_2022,
+       address = {Cham},
+       title = {Reducing the {Power} {Consumption} of {IoT} with {Task}-{Oriented} {Programming}},
+       isbn = {978-3-031-21314-4},
+       abstract = {Limiting the energy consumption of IoT nodes is a hot topic in green computing. For battery-powered devices this necessity is obvious, but the enormous growth of the number of IoT nodes makes energy efficiency important for every node in the IoT. In this paper, we show how we can automatically compute execution intervals for our task-oriented programs for the IoT. These intervals offer the possibility to save energy by bringing the microprocessor driving the IoT node into a low-power sleep mode until the task need to be executed. Furthermore, they offer an elegant way to add interrupts to the system. We do allow an arbitrary number of tasks on the IoT nodes and achieve significant reductions of the energy consumption by bringing the microprocessor in sleep mode as much as possible. We have seen energy reductions of an order of magnitude without imposing any constraints on the tasks to be executed on the IoT nodes.},
+       booktitle = {Trends in {Functional} {Programming}},
+       publisher = {Springer International Publishing},
+       author = {Crooijmans, Sjoerd and Lubbers, Mart and Koopman, Pieter},
+       editor = {Swierstra, Wouter and Wu, Nicolas},
+       year = {2022},
+       pages = {80--99},
+       file = {Crooijmans et al. - 2022 - Reducing the Power Consumption of IoT with Task-Or.pdf:/home/mrl/.local/share/zotero/storage/6DPWZRNJ/Crooijmans et al. - 2022 - Reducing the Power Consumption of IoT with Task-Or.pdf:application/pdf},
 }