george comments
[phd-thesis.git] / other.bib
index f12fde3..5e26061 100644 (file)
--- a/other.bib
+++ b/other.bib
        language = {English},
        urldate = {2021-02-24},
        publisher = {Release},
-       author = {GHC Team},
+       author = {{GHC Team}},
        year = {2021},
        file = {GHC Team - 2021 - GHC User’s Guide Documentation.pdf:/home/mrl/.local/share/zotero/storage/87ZT5VXL/GHC Team - 2021 - GHC User’s Guide Documentation.pdf:application/pdf},
 }
        language = {English},
        urldate = {2021-02-24},
        publisher = {Release},
-       author = {GHC Team},
+       author = {{GHC Team}},
        year = {2021},
 }
 
@@ -278,21 +278,6 @@ Publisher: Association for Computing Machinery},
        file = {Mitchell and Plotkin - 1988 - Abstract types have existential type.pdf:/home/mrl/.local/share/zotero/storage/QXDE5H7C/Mitchell and Plotkin - 1988 - Abstract types have existential type.pdf:application/pdf},
 }
 
-@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},
-       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},
-}
-
 @inproceedings{yorgey_giving_2012,
        address = {New York, NY, USA},
        series = {{TLDI} '12},
@@ -357,12 +342,12 @@ Publisher: Association for Computing Machinery},
        file = {Gibbons - 2015 - Functional Programming for Domain-Specific Languag.pdf:/home/mrl/.local/share/zotero/storage/ARUBLFU6/Gibbons - 2015 - Functional Programming for Domain-Specific Languag.pdf:application/pdf},
 }
 
-@mastersthesis{veen_van_der_mutable_2020,
+@mastersthesis{van_der_veen_mutable_2020,
        address = {Nijmegen},
        title = {Mutable {Collection} {Types} in {Shallow} {Embedded} {DSLs}},
        language = {en},
        school = {Radboud University},
-       author = {Veen, van der, Erin},
+       author = {van der Veen, Erin},
        month = jun,
        year = {2020},
        file = {thesis_final.pdf:/home/mrl/.local/share/zotero/storage/Y9QWGGB9/thesis_final.pdf:application/pdf},
@@ -379,13 +364,13 @@ Publisher: Association for Computing Machinery},
        file = {Alimarine - Generic Functional Programming.pdf:/home/mrl/.local/share/zotero/storage/PDTS3SGX/Alimarine - Generic Functional Programming.pdf:application/pdf},
 }
 
-@phdthesis{boer_de_secure_2020,
+@phdthesis{de_boer_secure_2020,
        address = {Nijmegen},
        type = {Bachelor's {Thesis}},
        title = {Secure {Communication} {Channels} for the {mTask} {System}.},
        language = {en},
        school = {Radboud University},
-       author = {Boer, de, Michel},
+       author = {de Boer, Michel},
        month = jun,
        year = {2020},
        file = {Boer, de - 2020 - Secure Communication Channels for the mTask System.pdf:/home/mrl/.local/share/zotero/storage/C46E3FBF/Boer, de - 2020 - Secure Communication Channels for the mTask System.pdf:application/pdf},
@@ -1230,7 +1215,6 @@ Publisher: Association for Computing Machinery},
        author = {{Peter T. Lewis}},
        month = sep,
        year = {1985},
-       annote = {By connecting devices such as traffic signal control boxes, underground gas station tanks and home refrigerators to supervisory control systems, modems, auto-dialers and cellular phones, we can transmit status of these devices to cell sites, then pipe that data through the Internet and address it to people near and far that need that information.  I predict that not only humans, but machines and other things will interactively communicate via the Internet.  The Internet of Things, or IoT, is the integration of people, processes and technology with connectable devices and sensors to enable remote monitoring, status, manipulation and evaluation of trends of such devices.  When all these technologies and voluminous amounts of Things are interfaced together -- namely, devices/machines, supervisory controllers, cellular and the Internet, there is nothing we cannot connect to and communicate with.  What I am calling the Internet of Things will be far reaching.},
 }
 
 @article{weiser_computer_1991,
@@ -1269,6 +1253,21 @@ Publisher: Association for Computing Machinery},
        pages = {36--43},
 }
 
+@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},
+       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/E9W4WKZC/Steenvoorden et al. - 2019 - TopHat A Formal Foundation for Task-Oriented Prog.pdf:application/pdf},
+}
+
 @incollection{koopman_type-safe_2019,
        address = {Cham},
        title = {Type-{Safe} {Functions} and {Tasks} in a {Shallow} {Embedded} {DSL} for {Microprocessors}},
@@ -1393,9 +1392,6 @@ Publisher: Association for Computing Machinery},
        month = nov,
        year = {1998},
        note = {e-mail message, accessed on 2021-02-24},
-       annote = {
-
-},
 }
 
 @misc{margaret_deuter_rhapsody_2015,
@@ -1417,7 +1413,6 @@ Publisher: Association for Computing Machinery},
        author = {{Wikipedia contributors}},
        year = {2022},
        note = {accessed on: 2022-09-06},
-       annote = {[Online; accessed 6-September-2022]},
 }
 
 @incollection{backus_introduction_1990,
@@ -1580,6 +1575,18 @@ Publisher: Association for Computing Machinery},
        file = {Pickering et al. - 2021 - A Specification for Typed Template Haskell.pdf:/home/mrl/.local/share/zotero/storage/YBTN4DLK/Pickering et al. - 2021 - A Specification for Typed Template Haskell.pdf:application/pdf},
 }
 
+@book{steenvoorden_tophat_2022,
+       address = {Nijmegen},
+       title = {{TopHat}: {Task}-{Oriented} {Programming} with {Style}},
+       isbn = {978-94-6458-595-7},
+       shorttitle = {{TopHat}: {TOP} with {Style}},
+       language = {English},
+       publisher = {UB Nijmegen},
+       author = {Steenvoorden, Tim},
+       year = {2022},
+       file = {Steenvoorden - 2022 - TopHat Task-Oriented Programming with Style.pdf:/home/mrl/.local/share/zotero/storage/ZV8IT9J5/Steenvoorden - 2022 - TopHat Task-Oriented Programming with Style.pdf:application/pdf},
+}
+
 @inproceedings{folmer_high-level_2022,
        address = {Cham},
        title = {High-{Level} {Synthesis} of {Digital} {Circuits} from {Template} {Haskell} and {SDF}-{AP}},
@@ -1655,7 +1662,6 @@ Publisher: Association for Computing Machinery},
        doi = {10.3990/1.9789036538039},
        note = {ISBN: 978-90-365-3803-9},
        keywords = {Haskell, Digital Circuits, EC Grant Agreement nr.: FP7/248465, EC Grant Agreement nr.: FP7/610686, EWI-23939, FPGA, Functional Programming, Hardware, IR-93962, Lambda calculus, METIS-308711, Rewrite Systems},
-       annote = {eemcs-eprint-23939 },
        file = {Baaij - 2015 - Digital circuit in CλaSH functional specification.pdf:/home/mrl/.local/share/zotero/storage/MYJ33ISL/Baaij - 2015 - Digital circuit in CλaSH functional specification.pdf:application/pdf},
 }
 
@@ -1726,14 +1732,6 @@ Publisher: Association for Computing Machinery},
        year = {2022},
 }
 
-@misc{lubbers_htask_2022,
-       title = {hTask},
-       url = {https://gitlab.com/mlubbers/acsds},
-       urldate = {2022-10-17},
-       author = {Lubbers, Mart},
-       year = {2022},
-}
-
 @article{sun_compositional_2022,
        title = {Compositional {Embeddings} of {Domain}-{Specific} {Languages}},
        volume = {6},
@@ -1746,3 +1744,41 @@ Publisher: Association for Computing Machinery},
        pages = {34},
        file = {Sun and Dhandhania - Compositional Embeddings of Domain-Specific Langua.pdf:/home/mrl/.local/share/zotero/storage/Y4GADQFP/Sun and Dhandhania - Compositional Embeddings of Domain-Specific Langua.pdf:application/pdf},
 }
+
+@misc{lubbers_htask_2022,
+       title = {{hTask}},
+       url = {https://gitlab.com/mlubbers/acsds},
+       urldate = {2022-10-07},
+       author = {Lubbers, Mart},
+       year = {2022},
+}
+
+@article{nizetic_internet_2020,
+       title = {Internet of {Things} ({IoT}): {Opportunities}, issues and challenges towards a smart and sustainable future},
+       volume = {274},
+       issn = {0959-6526},
+       doi = {https://doi.org/10.1016/j.jclepro.2020.122877},
+       abstract = {The rapid development and implementation of smart and IoT (Internet of Things) based technologies have allowed for various possibilities in technological advancements for different aspects of life. The main goal of IoT technologies is to simplify processes in different fields, to ensure a better efficiency of systems (technologies or specific processes) and finally to improve life quality. Sustainability has become a key issue for population where the dynamic development of IoT technologies is bringing different useful benefits, but this fast development must be carefully monitored and evaluated from an environmental point of view to limit the presence of harmful impacts and ensure the smart utilization of limited global resources. Significant research efforts are needed in the previous sense to carefully investigate the pros and cons of IoT technologies. This review editorial is partially directed on the research contributions presented at the 4th International Conference on Smart and Sustainable Technologies held in Split and Bol, Croatia, in 2019 (SpliTech 2019) as well as on recent findings from literature. The SpliTech2019 conference was a valuable event that successfully linked different engineering professions, industrial experts and finally researchers from academia. The focus of the conference was directed towards key conference tracks such as Smart City, Energy/Environment, e-Health and Engineering Modelling. The research presented and discussed at the SpliTech2019 conference helped to understand the complex and intertwined effects of IoT technologies on societies and their potential effects on sustainability in general. Various application areas of IoT technologies were discussed as well as the progress made. Four main topical areas were discussed in the herein editorial, i.e. latest advancements in the further fields: (i) IoT technologies in Sustainable Energy and Environment, (ii) IoT enabled Smart City, (iii) E-health – Ambient assisted living systems (iv) IoT technologies in Transportation and Low Carbon Products. The main outcomes of the review introductory article contributed to the better understanding of current technological progress in IoT application areas as well as the environmental implications linked with the increased application of IoT products.},
+       journal = {Journal of Cleaner Production},
+       author = {Nižetić, Sandro and Šolić, Petar and González-de-Artaza, Diego López-de-Ipiña and Patrono, Luigi},
+       year = {2020},
+       keywords = {Energy, Environment, IoT, Smart city, SpliTech2020, Sustainability},
+       pages = {122877},
+}
+
+@inproceedings{staps_lazy_2019,
+       address = {New York, NY, USA},
+       series = {{IFL} '19},
+       title = {Lazy {Interworking} of {Compiled} and {Interpreted} {Code} for {Sandboxing} and {Distributed} {Systems}},
+       isbn = {978-1-4503-7562-7},
+       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}},
+       publisher = {Association for Computing Machinery},
+       author = {Staps, Camil and van Groningen, John and Plasmeijer, Rinus},
+       year = {2019},
+       note = {event-place: Singapore, Singapore},
+       keywords = {functional programming, interpreters, laziness, sandboxing, web-assembly},
+       file = {Staps et al. - 2019 - Lazy Interworking of Compiled and Interpreted Code.pdf:/home/mrl/.local/share/zotero/storage/LGS69CH8/Staps et al. - 2019 - Lazy Interworking of Compiled and Interpreted Code.pdf:application/pdf},
+}