updates
[phd-thesis.git] / self.bib
1
2 @inproceedings{lubbers_interpreting_2019,
3 address = {New York, NY, USA},
4 series = {{IFL} '19},
5 title = {Interpreting {Task} {Oriented} {Programs} on {Tiny} {Computers}},
6 isbn = {978-1-4503-7562-7},
7 doi = {10.1145/3412932.3412936},
8 abstract = {Small Microcontroller Units (MCUs) drive the omnipresent Internet of Things (IoT). These devices are small, cheap, and energy efficient. However, they are not very powerful and lack an Operating System. Hence it is difficult to apply high level abstractions and write software that stays close to the design.Task Oriented Programming (TOP) is a paradigm for creating multi-user collaborative systems. A program consists of tasks—descriptions of what needs to be done. The tasks represent the actual work and a task value is observable during execution. Furthermore, tasks can be combined and transformed using combinators.mTask is an embedded Domain Specific Language (eDSL) to program MCUs following the TOP paradigm. Previous work has described the mTask language, a static C code generator, and how to integrate mTask with TOP servers. This paper shows that for dynamic IOT applications, tasks must be sent at runtime to the devices for interpretation. It describes in detail how to compile specialized IOT TOP tasks to bytecode and how to interpret them on devices with very little memory. These additions allow the creation of complete, dynamic IOT applications arising from a single source using a mix of iTasks and mTask tasks. Details such as serialization and communication are captured in simple abstractions.},
9 booktitle = {Proceedings of the 31st {Symposium} on {Implementation} and {Application} of {Functional} {Languages}},
10 publisher = {Association for Computing Machinery},
11 author = {Lubbers, Mart and Koopman, Pieter and Plasmeijer, Rinus},
12 editor = {Stutterheim, Jurriën and Chin, Wei Ngan},
13 year = {2019},
14 note = {event-place: Singapore, Singapore},
15 keywords = {clean, distributed applications, functional programming, internet of things, task oriented programming},
16 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},
17 }
18
19 @incollection{lubbers_writing_2019,
20 address = {Cham},
21 title = {Writing {Internet} of {Things} applications with {Task} {Oriented} {Programming}},
22 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).},
23 language = {en},
24 booktitle = {Central {European} {Functional} {Programming} {School}: 8th {Summer} {School}, {CEFP} 2019, {Budapest}, {Hungary}, {July} 1721, 2019, {Revised} {Selected} {Papers}},
25 publisher = {Springer International Publishing},
26 author = {Lubbers, Mart and Koopman, Pieter and Plasmeijer, Rinus},
27 year = {2019},
28 note = {in-press},
29 pages = {51},
30 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},
31 }
32
33 @inproceedings{lubbers_tiered_2020,
34 address = {Malmö},
35 series = {{IoT} '20},
36 title = {Tiered versus {Tierless} {IoT} {Stacks}: {Comparing} {Smart} {Campus} {Software} {Architectures}},
37 isbn = {978-1-4503-8758-3},
38 doi = {10.1145/3410992.3411002},
39 abstract = {Internet of Things (IoT) software stacks are notoriously complex, conventionally comprising multiple tiers/components and requiring that the developer not only uses multiple programming languages, but also correctly interoperate the components. A novel alternative is to use a single tierless language with a compiler that generates the code for each component, and for their correct interoperation.We report the first ever systematic comparison of tiered and tierless IoT software architectures. The comparison is based on two implementations of a non-trivial smart campus application. PRSS has a conventional tiered Python-based architecture, and Clean Wemos Super Sensors (CWSS) has a novel tierless architecture based on Clean and the iTask and mTask embedded DSLs. An operational comparison of CWSS and PRSS demonstrates that they have equivalent functionality, and that both meet the University of Glasgow (UoG) smart campus requirements.Crucially, the tierless CWSS stack requires 70\% less code than the tiered PRSS stack. We analyse the impact of the following three main factors. (1) Tierless developers need to manage less interoperation: CWSS uses two DSLs in a single paradigm where PRSS uses five languages and three paradigms. (2) Tierless developers benefit from automatically generated, and hence correct, communication. (3) Tierless developers can exploit the powerful high-level abstractions such as Task Oriented Programming (TOP) in CWSS. A far smaller and single paradigm codebase improves software quality, dramatically reduces development time, and improves the maintainability of tierless stacks.},
40 booktitle = {Proceedings of the 10th {International} {Conference} on the {Internet} of {Things}},
41 publisher = {Association for Computing Machinery},
42 author = {Lubbers, Mart and Koopman, Pieter and Ramsingh, Adrian and Singer, Jeremy and Trinder, Phil},
43 year = {2020},
44 note = {event-place: Malmö, Sweden},
45 keywords = {internet of things, domain specific languages, network reliability, software architectures},
46 file = {Lubbers et al. - 2020 - Tiered versus Tierless IoT Stacks Comparing Smart.pdf:/home/mrl/.local/share/zotero/storage/YY3MJRZ6/Lubbers et al. - 2020 - Tiered versus Tierless IoT Stacks Comparing Smart.pdf:application/pdf},
47 }
48
49 @inproceedings{koopman_task-based_2018,
50 address = {Vienna, Austria},
51 title = {A {Task}-{Based} {DSL} for {Microcomputers}},
52 copyright = {All rights reserved},
53 isbn = {978-1-4503-6355-6},
54 doi = {10.1145/3183895.3183902},
55 abstract = {The Internet of Things, IoT, makes small connected computing devices almost omnipresent. These devices have typically very limited computing power and severe memory restrictions to make them cheap and power efficient. These devices can interact with the environment via special sensors and actuators. Since each device controls several peripherals running interleaved, the control software is quite complicated and hard to maintain. Task Oriented Programming, TOP, offers lightweight communicating threads that can inspect each other’s intermediate results. This makes it well suited for the IoT. In this paper presents a functional task-based domain specific language for these IoT devices. We show that it yields concise control programs. By restricting the datatypes and using strict evaluation these programs fit within the restrictions of microcontrollers.},
56 language = {en},
57 urldate = {2019-01-14},
58 booktitle = {Proceedings of the {Real} {World} {Domain} {Specific} {Languages} {Workshop} 2018 on - {RWDSL2018}},
59 publisher = {ACM Press},
60 author = {Koopman, Pieter and Lubbers, Mart and Plasmeijer, Rinus},
61 year = {2018},
62 pages = {1--11},
63 file = {a4-Koopman.pdf:/home/mrl/.local/share/zotero/storage/TXZD529C/a4-Koopman.pdf:application/pdf;Koopman et al. - 2018 - A Task-Based DSL for Microcomputers.pdf:/home/mrl/.local/share/zotero/storage/9ETMTMX2/Koopman et al. - 2018 - A Task-Based DSL for Microcomputers.pdf:application/pdf},
64 }
65
66 @inproceedings{lubbers_multitasking_2019,
67 address = {Opatija, Croatia},
68 title = {Multitasking on {Microcontrollers} using {Task} {Oriented} {Programming}},
69 copyright = {All rights reserved},
70 shorttitle = {Multitasking on {Microcontrollers} using {TOP}},
71 doi = {10.23919/MIPRO.2019.8756711},
72 booktitle = {2019 42nd {International} {Convention} on {Information} and {Communication} {Technology}, {Electronics} and {Microelectronics} ({MIPRO})},
73 author = {Lubbers, M. and Koopman, P. and Plasmeijer, R.},
74 month = may,
75 year = {2019},
76 pages = {1587--1592},
77 file = {03_4cows_5338.pdf:/home/mrl/.local/share/zotero/storage/3QJTF5HT/03_4cows_5338.pdf:application/pdf;08756711.pdf:/home/mrl/.local/share/zotero/storage/4S44JZPK/08756711.pdf:application/pdf;mipro_2019_proceedings.pdf:/home/mrl/.local/share/zotero/storage/5FFJLMTG/mipro_2019_proceedings.pdf:application/pdf},
78 }
79
80 @phdthesis{lubbers_adaptable_2015,
81 address = {Nijmegen},
82 type = {Bachelor's {Thesis}},
83 title = {Adaptable crawler specification generation system for leisure activity {RSS} feeds},
84 copyright = {All rights reserved},
85 url = {http://theses.ubn.ru.nl/handle/123456789/220},
86 urldate = {2017-04-12},
87 school = {Radboud University},
88 author = {Lubbers, Mart},
89 year = {2015},
90 file = {Adaptable crawler specification generation system for leisure activity RSS feeds - Lubbers,M._BA_Thesis_2015.pdf:/home/mrl/.local/share/zotero/storage/7SDHJ3KD/Lubbers,M._BA_Thesis_2015.pdf:application/pdf},
91 }
92
93 @inproceedings{lubbers_task_2018,
94 address = {Lowell, MA},
95 title = {Task {Oriented} {Programming} and the {Internet} of {Things}},
96 copyright = {All rights reserved},
97 isbn = {978-1-4503-7143-8},
98 doi = {10.1145/3310232.3310239},
99 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.},
100 language = {en},
101 booktitle = {Proceedings of the 30th {Symposium} on the {Implementation} and {Application} of {Functional} {Programming} {Languages}},
102 publisher = {ACM},
103 author = {Lubbers, Mart and Koopman, Pieter and Plasmeijer, Rinus},
104 year = {2018},
105 pages = {83--94},
106 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},
107 }
108
109 @mastersthesis{lubbers_task_2017,
110 address = {Nijmegen},
111 title = {Task {Oriented} {Programming} and the {Internet} of {Things}},
112 copyright = {All rights reserved},
113 shorttitle = {{TOP} and the {IoT}},
114 school = {Radboud University},
115 author = {Lubbers, Mart},
116 year = {2017},
117 file = {thesis.pdf:/home/mrl/.local/share/zotero/storage/M49MWHPX/thesis.pdf:application/pdf},
118 }
119
120 @article{schuerman_praatalign:_2015,
121 title = {Praatalign: {Phonetic} {Alignment} {Made} {Easier} {For} {Psycholinguistic} {Data} {Processing}},
122 journal = {Architectures and Mechanisms for Language Processing},
123 author = {Schuerman, Will and Torreira, Francisco and Lubbers, Mart},
124 year = {2015},
125 pages = {92},
126 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},
127 }
128
129 @incollection{koopman_simulation_2018,
130 address = {Cham},
131 title = {Simulation of a {Task}-{Based} {Embedded} {Domain} {Specific} {Language} for the {Internet} of {Things}},
132 language = {en},
133 booktitle = {Central {European} {Functional} {Programming} {School}: 7th {Summer} {School}, {CEFP} 2018, {Košice}, {Slovakia}, {January} 2226, 2018, {Revised} {Selected} {Papers}},
134 publisher = {Springer International Publishing},
135 author = {Koopman, Pieter and Lubbers, Mart and Plasmeijer, Rinus},
136 year = {2018},
137 note = {in-press},
138 pages = {51},
139 }
140
141 @misc{koopman_sustrainable_2022,
142 title = {{SusTrainable}: {Promoting} {Sustainability} as a {Fundamental} {Driver} in {Software} {Development} {Training} and {Education}. {Teacher} {Training}, {November} 1-5, {Nijmegen}, {The} {Netherlands}. {Revised} lecture notes},
143 copyright = {Creative Commons Attribution Non Commercial No Derivatives 4.0 International},
144 publisher = {arXiv},
145 author = {Koopman, Pieter and Lubbers, Mart and Fernandes, João Paulo},
146 year = {2022},
147 doi = {10.48550/ARXIV.2204.13993},
148 keywords = {Computers and Society (cs.CY), FOS: Computer and information sciences, Software Engineering (cs.SE)},
149 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},
150 }
151
152 @inproceedings{lubbers_deep_2022,
153 address = {Berlin, Heidelberg},
154 title = {Deep {Embedding} with {Class}},
155 booktitle = {Revised {Selected} {Papers} from the 23rd {International} {Symposium} on {Trends} in {Functional} {Programming}, {TFP} 2022, {Online}, 17-18 {March} 2022},
156 publisher = {Springer Berlin Heidelberg},
157 author = {Lubbers, Mart},
158 year = {2022},
159 note = {in-press},
160 pages = {20},
161 }
162
163 @inproceedings{lubbers_first-class_2022,
164 address = {New York, NY, USA},
165 series = {{IFL} '22},
166 title = {First-{Class} {Data} {Types} in {Shallow} {Embedded} {Domain}-{Specific} {Languages} using {Metaprogramming}},
167 booktitle = {Proceedings of the 34st {Symposium} on {Implementation} and {Application} of {Functional} {Languages}},
168 publisher = {Association for Computing Machinery},
169 author = {Lubbers, Mart and Koopman, Pieter and Plasmeijer, Rinus},
170 year = {2022},
171 note = {event-place: Kopenhagen, Denmark. under-review},
172 keywords = {clean, distributed applications, functional programming, internet of things, task oriented programming},
173 }
174
175 @inproceedings{crooijmans_reducing_2022,
176 address = {Berlin, Heidelberg},
177 title = {Reducing the {Power} {Consumption} of {IoT} with {Task}-{Oriented} {Programming}},
178 booktitle = {Revised {Selected} {Papers} from the 23rd {International} {Symposium} on {Trends} in {Functional} {Programming}, {TFP} 2022, {Online}, 17-18 {March} 2022},
179 publisher = {Springer Berlin Heidelberg},
180 author = {Crooijmans, Sjoerd and Lubbers, Mart and Koopman, Pieter},
181 year = {2022},
182 note = {in-press},
183 pages = {20},
184 }
185
186 @article{lubbers_could_2022,
187 title = {Could {Tierless} {Languages} {Reduce} {IoT} {Development} {Grief}?},
188 volume = {3},
189 number = {5},
190 journal = {ACM Trans. Internet Things},
191 author = {Lubbers, Mart and Koopman, Pieter and Ramsingh, Adrian and Singer, Jeremy and Trinder, Phil},
192 month = sep,
193 year = {2022},
194 note = {Place: New York, NY, USA
195 Publisher: Association for Computing Machinery
196 in-press},
197 keywords = {access control, internet-of-things, policy language, privilege escalation, Smart home system},
198 }
199 @incollection{lubbers_green_2022,
200 address = {Cham},
201 title = {Green {Computing} for the {Internet} of {Things}},
202 language = {en},
203 booktitle = {{SusTrainable} {Summer} {School} 2022, {Rijeka}, {Croatia}, {July} 45, 2022, {Revised} {Selected} {Papers}},
204 publisher = {Springer International Publishing},
205 author = {Lubbers, Mart and Koopman, Pieter},
206 year = {2022},
207 note = {in-press},
208 pages = {1},
209 }