split up more and updatE
[phd-thesis.git] / bib / self.bib
index b5ca3c5..1a2e403 100644 (file)
@@ -7,7 +7,7 @@
        doi = {10.1145/3412932.3412936},
        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.},
        booktitle = {Proceedings of the 31st {Symposium} on {Implementation} and {Application} of {Functional} {Languages}},
-       publisher = {Association for Computing Machinery},
+       publisher = {ACM},
        author = {Lubbers, Mart and Koopman, Pieter and Plasmeijer, Rinus},
        editor = {Stutterheim, Jurriën and Chin, Wei Ngan},
        year = {2019},
@@ -40,7 +40,7 @@
        doi = {10.1145/3410992.3411002},
        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.},
        booktitle = {Proceedings of the 10th {International} {Conference} on the {Internet} of {Things}},
-       publisher = {Association for Computing Machinery},
+       publisher = {ACM},
        author = {Lubbers, Mart and Koopman, Pieter and Ramsingh, Adrian and Singer, Jeremy and Trinder, Phil},
        year = {2020},
        note = {event-place: Malmö, Sweden},
        series = {{IFL} '22},
        title = {First-{Class} {Data} {Types} in {Shallow} {Embedded} {Domain}-{Specific} {Languages} using {Metaprogramming}},
        booktitle = {Proceedings of the 34st {Symposium} on {Implementation} and {Application} of {Functional} {Languages}},
-       publisher = {Association for Computing Machinery},
+       publisher = {ACM},
        author = {Lubbers, Mart and Koopman, Pieter and Plasmeijer, Rinus},
        year = {2022},
        note = {event-place: Kopenhagen, Denmark. in-press},
@@ -204,7 +204,7 @@ Publisher: Association for Computing Machinery},
        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},
+       publisher = {ACM},
        author = {Koopman, Pieter and Lubbers, Mart},
        year = {2022},
        note = {event-place: Kopenhagen, Denmark. under-review},