{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,13]],"date-time":"2025-12-13T23:10:00Z","timestamp":1765667400721,"version":"3.41.0"},"reference-count":84,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2023,2,23]],"date-time":"2023-02-23T00:00:00Z","timestamp":1677110400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Royal Netherlands Navy, the Radboud-Glasgow Collaboration Fund and UK EPSRC","award":["EP\/P006434"],"award-info":[{"award-number":["EP\/P006434"]}]},{"name":"STARDUST","award":["EP\/T014628"],"award-info":[{"award-number":["EP\/T014628"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Internet Things"],"published-print":{"date-parts":[[2023,2,28]]},"abstract":"<jats:p>\n            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\n            <jats:italic>tierless<\/jats:italic>\n            language with a compiler that generates the code for each component and ensures their correct interoperation.\n          <\/jats:p>\n          <jats:p>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.<\/jats:p>\n          <jats:p>(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 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.<\/jats:p>","DOI":"10.1145\/3572901","type":"journal-article","created":{"date-parts":[[2022,11,30]],"date-time":"2022-11-30T13:07:06Z","timestamp":1669813626000},"page":"1-35","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Could Tierless Languages Reduce IoT Development Grief?"],"prefix":"10.1145","volume":"4","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-4015-4878","authenticated-orcid":false,"given":"Mart","family":"Lubbers","sequence":"first","affiliation":[{"name":"Radboud University, Nijmegen, Netherlands"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3688-0957","authenticated-orcid":false,"given":"Pieter","family":"Koopman","sequence":"additional","affiliation":[{"name":"Radboud University, Nijmegen, Netherlands"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3501-902X","authenticated-orcid":false,"given":"Adrian","family":"Ramsingh","sequence":"additional","affiliation":[{"name":"University of Glasgow, Glasgow, United Kingdom"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9462-6802","authenticated-orcid":false,"given":"Jeremy","family":"Singer","sequence":"additional","affiliation":[{"name":"University of Glasgow, Glasgow, United Kingdom"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0190-7010","authenticated-orcid":false,"given":"Phil","family":"Trinder","sequence":"additional","affiliation":[{"name":"University of Glasgow, Glasgow, United Kingdom"}]}],"member":"320","published-online":{"date-parts":[[2023,2,23]]},"reference":[{"key":"e_1_3_2_2_2","unstructured":"Peter Achten. 2007. Clean for Haskell98 Programmers\u2014A Quick Reference Guide. Retrieved from http:\/\/www.st.cs.ru.nl\/papers\/2007\/CleanHaskellQuickGuide.pdf."},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/3437537"},{"key":"e_1_3_2_4_2","doi-asserted-by":"crossref","first-page":"168","DOI":"10.1007\/3-540-46028-4_11","volume-title":"Implementation of Functional Languages","author":"Alimarine Artem","year":"2002","unstructured":"Artem Alimarine and Rinus Plasmeijer. 2002. A generic programming extension for clean. In Implementation of Functional Languages, Thomas Arts and Markus Mohnen (Eds.). Springer, Berlin, 168\u2013185."},{"key":"e_1_3_2_5_2","first-page":"146","volume-title":"Proceedings of the ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!\u201920)","author":"Alpernas Kalev","year":"2020","unstructured":"Kalev Alpernas, Yotam M. Y. Feldman, and Hila Peleg. 2020. The wonderful wizard of LoC: Paying attention to the man behind the curtain of lines-of-code metrics. In Proceedings of the ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!\u201920). Association for Computing Machinery, New York, NY, 146\u2013156. DOI:10.1145\/3426428.3426921"},{"key":"e_1_3_2_6_2","first-page":"703","volume-title":"Proceedings of the International Conference on Communications and Cyber-Physical Engineering (ICCCE\u201920)","author":"Alphonsa Mandla","year":"2021","unstructured":"Mandla Alphonsa. 2021. A review on IOT technology stack, architecture and its cloud applications in recent trends. In Proceedings of the International Conference on Communications and Cyber-Physical Engineering (ICCCE\u201920), Amit Kumar and Stefan Mozar (Eds.). Springer Singapore, Singapore, 703\u2013711. DOI:10.1007\/978-981-15-7961-5_67"},{"key":"e_1_3_2_7_2","first-page":"1093","volume-title":"Proceedings of the 26th USENIX Security Symposium (USENIX Security\u201917)","author":"Antonakakis Manos","year":"2017","unstructured":"Manos Antonakakis, Tim April, Michael Bailey, Matt Bernhard, Elie Bursztein, Jaime Cochran, Zakir Durumeric, J. Alex Halderman, Luca Invernizzi, Michalis Kallitsis, Deepak Kumar, Chaz Lever, Zane Ma, Joshua Mason, Damian Menscher, Chad Seaman, Nick Sullivan, Kurt Thomas, and Yi Zhou. 2017. Understanding the mirai botnet. In Proceedings of the 26th USENIX Security Symposium (USENIX Security\u201917). USENIX Association, 1093\u20131110. https:\/\/www.usenix.org\/conference\/usenixsecurity17\/technical-sessions\/presentation\/antonakakis."},{"key":"e_1_3_2_8_2","first-page":"1","volume-title":"Proceedings of the 3rd Cloudification of the Internet of Things (CIoT\u201918)","author":"Baccelli Emmanuel","year":"2018","unstructured":"Emmanuel Baccelli, Joerg Doerr, Ons Jallouli, Shinji Kikuchi, Andreas Morgenstern, Francisco Acosta Padilla, Kaspar Schleiser, and Ian Thomas. 2018. Reprogramming low-end IoT devices from the cloud. In Proceedings of the 3rd Cloudification of the Internet of Things (CIoT\u201918). IEEE, 1\u20136. DOI:10.1109\/CIOT.2018.8627129"},{"key":"e_1_3_2_9_2","first-page":"84","volume-title":"Proceedings of the Workshop on Machine Learning (ML\u201906)","author":"Balat Vincent","year":"2006","unstructured":"Vincent Balat. 2006. Ocsigen: Typing web interaction with objective caml. In Proceedings of the Workshop on Machine Learning (ML\u201906) . Association for Computing Machinery, New York, NY, 84\u201394. DOI:10.1145\/1159876.1159889"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129500070109"},{"key":"e_1_3_2_11_2","first-page":"344","volume-title":"Proceedings of the 25th International Conference on Software Engineering & Knowledge E","volume":"1","author":"Belle Alvine Boaye","year":"2013","unstructured":"Alvine Boaye Belle, Ghizlane El-Boussaidi, Christian Desrosiers, and Hafedh Mili. 2013. The layered architecture revisited: Is it an optimization problem? In Proceedings of the 25th International Conference on Software Engineering & Knowledge E, Vol. 1. KSI Research Inc, Boston, MA, 344\u2013349."},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-24276-2_13"},{"key":"e_1_3_2_13_2","volume-title":"Secure Communication Channels for the mTask System.","author":"de Michel Boer,","year":"2020","unstructured":"Michel Boer, de. 2020. Secure Communication Channels for the mTask System. Bachelor\u2019s thesis. Radboud University, Nijmegen."},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/MSPEC.2020.9150550"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1145\/1323293.1294265"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-74792-5_12"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.1999.802242"},{"key":"e_1_3_2_18_2","volume-title":"Proceedings of the 26th International Symposium on Implementation and Application of Functional Languages (IFL\u201914)","author":"Domoszlai L\u00e1szl\u00f3","year":"2014","unstructured":"L\u00e1szl\u00f3 Domoszlai, Bas Lijnse, and Rinus Plasmeijer. 2014. Parametric lenses: Change notification for bidirectional lenses. In Proceedings of the 26th International Symposium on Implementation and Application of Functional Languages (IFL\u201914). Association for Computing Machinery, New York, NY. DOI:10.1145\/2746325.2746333"},{"key":"e_1_3_2_19_2","volume-title":"Proceedings of the Workshop on Scheme and Functional Programming","author":"Dub\u00e9 Danny","year":"2000","unstructured":"Danny Dub\u00e9. 2000. BIT: A very compact scheme system for embedded applications. In Proceedings of the Workshop on Scheme and Functional Programming."},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/2775050.2633367"},{"key":"e_1_3_2_21_2","doi-asserted-by":"crossref","first-page":"189","DOI":"10.1145\/2804302.2804318","volume-title":"Proceedings of the ACM SIGPLAN Symposium on Haskell (Haskell\u201915)","author":"Elliott Trevor","year":"2015","unstructured":"Trevor Elliott, Lee Pike, Simon Winwood, Pat Hickey, James Bielman, Jamey Sharp, Eric Seidel, and John Launchbury. 2015. Guilt free ivory. In Proceedings of the ACM SIGPLAN Symposium on Haskell (Haskell\u201915). Association for Computing Machinery, New York, NY, 189\u2013200. DOI:10.1145\/2804302.2804318"},{"key":"e_1_3_2_22_2","doi-asserted-by":"crossref","first-page":"118","DOI":"10.1145\/2034675.2034690","volume-title":"Proceedings of the 4th ACM Symposium on Haskell (Haskell\u201911)","author":"Epstein Jeff","year":"2011","unstructured":"Jeff Epstein, Andrew P. Black, and Simon Peyton-Jones. 2011. Towards haskell in the cloud. In Proceedings of the 4th ACM Symposium on Haskell (Haskell\u201911). Association for Computing Machinery, New York, NY, 118\u2013129. DOI:10.1145\/2034675.2034690"},{"key":"e_1_3_2_23_2","first-page":"7","volume-title":"Proceedings of the 4th Workshop on Scheme and Functional Programming","author":"Feeley Marc","year":"2003","unstructured":"Marc Feeley and Danny Dub\u00e9. 2003. PICBIT: A scheme system for the PIC microcontroller. In Proceedings of the 4th Workshop on Scheme and Functional Programming. 7\u201315."},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/1064978.1065019"},{"key":"e_1_3_2_25_2","volume-title":"Building the Web of Things: With Examples in Node.Js and Raspberry Pi","author":"Guinard Dominique","year":"2016","unstructured":"Dominique Guinard and Vlad Trifa. 2016. Building the Web of Things: With Examples in Node.Js and Raspberry Pi (1st ed.). Manning Publications Co., Shelter Island, NY."},{"key":"e_1_3_2_26_2","volume-title":"Akka Essentials","author":"Gupta Munish","year":"2012","unstructured":"Munish Gupta. 2012. Akka Essentials. Packt Publishing, Birmingham, England."},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4471-3215-8_6"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1007\/s12530-017-9190-z"},{"key":"e_1_3_2_29_2","unstructured":"HaskellWiki. 2020. Introduction to IO\u2014HaskellWiki. Retrieved January 19 2021 from https:\/\/wiki.haskell.org\/index.php?title=Introduction_to_IO&oldid=63493."},{"key":"e_1_3_2_30_2","first-page":"58","volume-title":"Proceedings of the 4th International Conference on Future Internet of Things and Cloud (FiCloud\u201916)","author":"Hentschel Kristian","year":"2016","unstructured":"Kristian Hentschel, Dejice Jacob, Jeremy Singer, and Matthew Chalmers. 2016. Supersensors: Raspberry pi devices for smart campus infrastructure. In Proceedings of the 4th International Conference on Future Internet of Things and Cloud (FiCloud\u201916), Muhammad Younas, Irfan Awan, and Winston Seah (Eds.). IEEE, 58\u201362. DOI:10.1109\/FiCloud.2016.16"},{"key":"e_1_3_2_31_2","first-page":"15","volume-title":"Proceedings of the Network and Distributed Systems Security Symposium (NDSS\u201919)","author":"Herwig Stephen","year":"2019","unstructured":"Stephen Herwig, Katura Harvey, George Hughey, Richard Roberts, and Dave Levin. 2019. Measurement and analysis of hajime, a peer-to-peer IoT botnet. In Proceedings of the Network and Distributed Systems Security Symposium (NDSS\u201919). Internet Society, Reston, VA, 15. DOI:10.14722\/ndss.2019.23488"},{"key":"e_1_3_2_32_2","unstructured":"Joey Hess. 2020. arduino-copilot: Arduino programming in haskell using the Copilot stream DSL. Retrieved from https\/\/hackage.haskell.org\/package\/arduino-copilot."},{"key":"e_1_3_2_33_2","first-page":"119","volume-title":"Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL\u201900)","author":"Hinze Ralf","year":"2000","unstructured":"Ralf Hinze. 2000. A new approach to generic functional programming. In Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL\u201900). Association for Computing Machinery, New York, NY, 119\u2013132. DOI:10.1145\/325694.325709"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/32.2.98"},{"key":"e_1_3_2_35_2","first-page":"36","volume-title":"Proceedings of the 1st International Confernce on Advances in Databases, Knowledge, and Data Applications","author":"Ireland Christopher","year":"2009","unstructured":"Christopher Ireland, David Bowers, Michael Newton, and Kevin Waugh. 2009. A classification of object-relational impedance mismatch. In Proceedings of the 1st International Confernce on Advances in Databases, Knowledge, and Data Applications. IEEE, 36\u201343. DOI:10.1109\/DBKDA.2009.11"},{"key":"e_1_3_2_36_2","unstructured":"David Johnson-Davies. 2020. Lisp for Microcontrollers. Retrieved from https:\/\/ulisp.com."},{"key":"e_1_3_2_37_2","first-page":"563","volume-title":"Proceedings of the 23rd International Conference on Software Analysis, Evolution, and Reengineering","author":"Kochhar P. S.","year":"2016","unstructured":"P. S. Kochhar, D. Wijedasa, and D. Lo. 2016. A large scale study of multiple programming languages and code quality. In Proceedings of the 23rd International Conference on Software Analysis, Evolution, and Reengineering. IEEE, 563\u2013573. DOI:10.1109\/SANER.2016.112"},{"key":"e_1_3_2_38_2","first-page":"779","volume-title":"Proceedings of the 2nd International Conference on Contemporary Computing and Informatics (IC3I\u201916)","author":"Kodali Ravi Kishore","year":"2016","unstructured":"Ravi Kishore Kodali and Kopulwar Shishir Mahesh. 2016. Low cost ambient monitoring using ESP8266. In Proceedings of the 2nd International Conference on Contemporary Computing and Informatics (IC3I\u201916). IEEE, 779\u2013782. DOI:10.1109\/IC3I.2016.7918788"},{"key":"e_1_3_2_39_2","first-page":"1","volume-title":"Proceedings of the Real World Domain Specific Languages Workshop (RWDSL20\u2019)","author":"Koopman Pieter","year":"2018","unstructured":"Pieter Koopman, Mart Lubbers, and Rinus Plasmeijer. 2018. A task-based DSL for microcomputers. In Proceedings of the Real World Domain Specific Languages Workshop (RWDSL20\u2019). ACM Press, New York, NY, 1\u201311. DOI:10.1145\/3183895.3183902"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/1809028.1806601"},{"key":"e_1_3_2_41_2","doi-asserted-by":"crossref","first-page":"79","DOI":"10.1109\/APSEC.2001.991462","volume-title":"Proceedings of the 8th Asia-Pacific Software Engineering Conference","author":"Lee Jong Kook","year":"2001","unstructured":"Jong Kook Lee, Seung Jae Jung, Soo Dong Kim, Woo Hyun Jang, and Dong Han Ham. 2001. Component identification method with coupling and cohesion. In Proceedings of the 8th Asia-Pacific Software Engineering Conference. IEEE, IEEE, 79\u201386. DOI:10.1109\/APSEC.2001.991462"},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/605432.605407"},{"issue":"13","key":"e_1_3_2_43_2","doi-asserted-by":"crossref","first-page":"265","DOI":"10.21105\/joss.00265","article-title":"Mosquitto: Server and client implementation of the MQTT protocol","volume":"2","author":"Light Roger","year":"2017","unstructured":"Roger Light. 2017. Mosquitto: Server and client implementation of the MQTT protocol. J. Open Source Softw. 2, 13 (2017), 265.","journal-title":"J. Open Source Softw."},{"key":"e_1_3_2_44_2","first-page":"1","volume-title":"Proceedings of the 31st Symposium on Implementation and Application of Functional Languages (IFL\u201919)","author":"Lubbers Mart","year":"2019","unstructured":"Mart Lubbers, Pieter Koopman, and Rinus Plasmeijer. 2019. Interpreting task oriented programs on tiny computers. In Proceedings of the 31st Symposium on Implementation and Application of Functional Languages (IFL\u201919), Jurri\u00ebn Stutterheim and Wei Ngan Chin (Eds.). Association for Computing Machinery, New York, NY, 1\u201312. DOI:10.1145\/3412932.3412936 event-place: Singapore, Singapore."},{"key":"e_1_3_2_45_2","first-page":"1587","volume-title":"Proceedings of the 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MICRO\u201919)","author":"Lubbers Mart","year":"2019","unstructured":"Mart Lubbers, Pieter Koopman, and Rinus Plasmeijer. 2019. Multitasking on microcontrollers using task oriented programming. In Proceedings of the 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MICRO\u201919). IEEE, 1587\u20131592. DOI:10.23919\/MIPRO.2019.8756711"},{"key":"e_1_3_2_46_2","first-page":"51","volume-title":"Proceedings of the Central European Functional Programming School: 8th Summer School (CEFP\u201919), Revised Selected Papers","author":"Lubbers Mart","year":"2019","unstructured":"Mart Lubbers, Pieter Koopman, and Rinus Plasmeijer. 2019. Writing internet of things applications with task oriented programming. In Proceedings of the Central European Functional Programming School: 8th Summer School (CEFP\u201919), Revised Selected Papers. Springer International Publishing, 51. DOI:10.1145\/3310232.3310239"},{"key":"e_1_3_2_47_2","volume-title":"Proceedings of the 10th International Conference on the Internet of Things (IoT\u201920)","author":"Lubbers Mart","year":"2020","unstructured":"Mart Lubbers, Pieter Koopman, Adrian Ramsingh, Jeremy Singer, and Phil Trinder. 2020. Tiered versus tierless IoT stacks: Comparing smart campus software architectures. In Proceedings of the 10th International Conference on the Internet of Things (IoT\u201920). Association for Computing Machinery, New York, NY, Article 21, 9 pages. DOI:10.1145\/3410992.3411002"},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.2139\/ssrn.1071720"},{"key":"e_1_3_2_49_2","volume-title":"Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering (EASE\u201915)","author":"Mayer Philip","year":"2015","unstructured":"Philip Mayer and Alexander Bauer. 2015. An empirical analysis of the utilization of multiple programming languages in open source projects. In Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering (EASE\u201915). Association for Computing Machinery, New York, NY, Article 4, 10 pages. DOI:10.1145\/2745802.2745805"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1186\/s40411-017-0035-z"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1007\/s12243-018-0644-5"},{"key":"e_1_3_2_52_2","doi-asserted-by":"crossref","first-page":"42","DOI":"10.1145\/3266237.3266263","volume-title":"Proceedings of the XXXII Brazilian Symposium on Software Engineering (SBES\u201918)","author":"Motta Rebeca C.","year":"2018","unstructured":"Rebeca C. Motta, K\u00e1thia M. de Oliveira, and Guilherme H. Travassos. 2018. On challenges in engineering IoT software systems. In Proceedings of the XXXII Brazilian Symposium on Software Engineering (SBES\u201918). Association for Computing Machinery, New York, NY, USA, 42\u201351. DOI:10.1145\/3266237.3266263"},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-00761-4_5"},{"key":"e_1_3_2_54_2","doi-asserted-by":"crossref","first-page":"51","DOI":"10.1145\/581690.581695","volume-title":"Proceedings of theACM SIGPLAN Workshop on Haskell (Haskell\u201902)","author":"Nilsson Henrik","year":"2002","unstructured":"Henrik Nilsson, Antony Courtney, and John Peterson. 2002. Functional reactive programming, continued. In Proceedings of theACM SIGPLAN Workshop on Haskell (Haskell\u201902). Association for Computing Machinery, New York, NY, 51\u201364. DOI:10.1145\/581690.581695"},{"key":"e_1_3_2_55_2","first-page":"7","volume-title":"Proceedings of the 29th Symposium on Implementation and Application of Functional Programming Languages","author":"Oortgiese Arjan","year":"2017","unstructured":"Arjan Oortgiese, John van Groningen, Peter Achten, and Rinus Plasmeijer. 2017. A distributed dynamic architecture for task oriented programming. In Proceedings of the 29th Symposium on Implementation and Application of Functional Programming Languages. ACM, New York, NY, 7."},{"key":"e_1_3_2_56_2","doi-asserted-by":"crossref","first-page":"71","DOI":"10.1145\/158511.158524","volume-title":"Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL\u201993)","author":"Jones Simon L. Peyton","year":"1993","unstructured":"Simon L. Peyton Jones and Philip Wadler. 1993. Imperative functional programming. In Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL\u201993). Association for Computing Machinery, New York, NY, 71\u201384. DOI:10.1145\/158511.158524"},{"key":"e_1_3_2_57_2","first-page":"69","volume-title":"Proceedings of the ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward!\u201914)","author":"Philips Laure","year":"2014","unstructured":"Laure Philips, Coen De Roover, Tom Van Cutsem, and Wolfgang De Meuter. 2014. Towards tierless web development without tierless languages. In Proceedings of the ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward!\u201914). Association for Computing Machinery, New York, NY, 69\u201381. DOI:10.1145\/2661136.2661146"},{"key":"e_1_3_2_58_2","first-page":"1","volume-title":"Proceedings of the 30th International Conference on Architecture of Computing Systems","author":"Plamauer Sebastian","year":"2017","unstructured":"Sebastian Plamauer and Martin Langer. 2017. Evaluation of micropython as application layer programming language on cubesats. In Proceedings of the 30th International Conference on Architecture of Computing Systems(ARCS\u201917). VDE, Vienna, Austria, 1\u20139."},{"key":"e_1_3_2_59_2","doi-asserted-by":"crossref","first-page":"141","DOI":"10.1145\/1291151.1291174","volume-title":"Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming (ICFP\u201907)","author":"Plasmeijer Rinus","year":"2007","unstructured":"Rinus Plasmeijer, Peter Achten, and Pieter Koopman. 2007. iTasks: Executable specifications of interactive work flow systems for the web. In Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming (ICFP\u201907). ACM, New York, NY, 141\u2013152."},{"key":"e_1_3_2_60_2","first-page":"195","volume-title":"Proceedings of the 14th Symposium on Principles and Practice of Declarative Programming (PPDP\u201912)","author":"Plasmeijer Rinus","year":"2012","unstructured":"Rinus Plasmeijer, Bas Lijnse, Steffen Michels, Peter Achten, and Pieter Koopman. 2012. Task-oriented programming in a pure functional language. In Proceedings of the 14th Symposium on Principles and Practice of Declarative Programming (PPDP\u201912). Association for Computing Machinery, New York, NY, 195\u2013206. DOI:10.1145\/2370776.2370801"},{"key":"e_1_3_2_61_2","volume-title":"Enterprise Internet of Things Handbook: Build End-to-end IoT Solutions using Popular IoT Platforms","author":"Ravulavaru Arvind","year":"2018","unstructured":"Arvind Ravulavaru. 2018. Enterprise Internet of Things Handbook: Build End-to-end IoT Solutions using Popular IoT Platforms. Packt Publishing, Birmingham, UK."},{"key":"e_1_3_2_62_2","unstructured":"Clean 3.0 Language Report. 2020. Uniqueness Typing. Retrieved February 2 2021 from https:\/\/cloogle.org\/doc\/#_9."},{"key":"e_1_3_2_63_2","doi-asserted-by":"crossref","first-page":"111","DOI":"10.1145\/1411286.1411301","volume-title":"Proceedings of the 1st ACM SIGPLAN Symposium on Haskell (Haskell\u201908)","author":"Rodriguez Alexey","year":"2008","unstructured":"Alexey Rodriguez, Johan Jeuring, Patrik Jansson, Alex Gerdes, Oleg Kiselyov, and Bruno C. d. S. Oliveira. 2008. Comparing libraries for generic programming in haskell. In Proceedings of the 1st ACM SIGPLAN Symposium on Haskell (Haskell\u201908). Association for Computing Machinery, New York, NY, 111\u2013122. DOI:10.1145\/1411286.1411301"},{"key":"e_1_3_2_64_2","doi-asserted-by":"crossref","first-page":"137","DOI":"10.1109\/METRIC.1997.637174","volume-title":"Proceedings of the 4th International Software Metrics Symposium","author":"Rosenberg Jarrett","year":"1997","unstructured":"Jarrett Rosenberg. 1997. Some misconceptions about lines of code. In Proceedings of the 4th International Software Metrics Symposium. IEEE, Los Alamitos, CA, 137\u2013142. DOI:10.1109\/METRIC.1997.637174"},{"key":"e_1_3_2_65_2","volume-title":"Proceedings of the 22nd International Symposium on Principles and Practice of Declarative Programming (PPDP\u201920)","author":"Sarkar Abhiroop","year":"2020","unstructured":"Abhiroop Sarkar and Mary Sheeran. 2020. Hailstorm: A statically-typed, purely functional language for IoT applications. In Proceedings of the 22nd International Symposium on Principles and Practice of Declarative Programming (PPDP\u201920). Association for Computing Machinery, New York, NY. DOI:10.1145\/3414080.3414092"},{"key":"e_1_3_2_66_2","doi-asserted-by":"crossref","first-page":"36","DOI":"10.1145\/2892664.2892670","volume-title":"Companion Proceedings of the 15th International Conference on Modularity","author":"Sawada Kensuke","year":"2016","unstructured":"Kensuke Sawada and Takuo Watanabe. 2016. Emfrp: A functional reactive programming language for small-scale embedded systems. In Companion Proceedings of the 15th International Conference on Modularity. Association for Computing Machinery, New York, NY, 36\u201344. DOI:10.1145\/2892664.2892670"},{"key":"e_1_3_2_67_2","first-page":"975","volume-title":"Companion to the Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA Companion\u201906)","author":"Serrano Manuel","year":"2006","unstructured":"Manuel Serrano, Erick Gallesio, and Florian Loitsch. 2006. Hop: A language for programming the web 2.0. In Companion to the Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA Companion\u201906). ACM, Portland, Oregon, USA, 975\u2013985."},{"key":"e_1_3_2_68_2","doi-asserted-by":"publisher","DOI":"10.1155\/2017\/9324035"},{"key":"e_1_3_2_69_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2009.04.038"},{"key":"e_1_3_2_70_2","first-page":"13","volume-title":"Proceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control (AGERE\u201918)","author":"Shibanai Kazuhiro","year":"2018","unstructured":"Kazuhiro Shibanai and Takuo Watanabe. 2018. Distributed functional reactive programming on actor-based runtime. In Proceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control (AGERE\u201918). Association for Computing Machinery, New York, NY, 13\u201322. DOI:10.1145\/3281366.3281370 event-place: Boston, MA, USA."},{"key":"e_1_3_2_71_2","first-page":"8","volume-title":"Proceedings of the 3rd International Workshop on Software Engineering for Sensor Network Applications (SESENA\u201912)","author":"Sivieri Alessandro","year":"2012","unstructured":"Alessandro Sivieri, Luca Mottola, and Gianpaolo Cugola. 2012. Drop the phone and talk to the physical world: Programming the internet of things with erlang. In Proceedings of the 3rd International Workshop on Software Engineering for Sensor Network Applications (SESENA\u201912). IEEE Press, Los Alamitos, CA, 8\u201314. DOI:10.1109\/SESENA.2012.6225763"},{"key":"e_1_3_2_72_2","first-page":"1","volume-title":"Proceedings of the International Symposium on Implementation and Application of Functional Languages","author":"St-Amour Vincent","year":"2009","unstructured":"Vincent St-Amour and Marc Feeley. 2009. PICOBIT: A compact scheme system for microcontrollers. In Proceedings of the International Symposium on Implementation and Application of Functional Languages. Springer, South Orange, NJ, USA, 1\u201317."},{"key":"e_1_3_2_73_2","unstructured":"PPDP\u201919 Proceedings of the 21st International Symposium on Principles and Practice of Declarative Programming Tim Steenvoorden Nico Naus Markus Klinik TopHat: A formal foundation for task-oriented programming 2019 17 10.1145\/3354166.3354182 10.1145\/3354166.3354182 10.1145\/3354166.3354182"},{"key":"e_1_3_2_74_2","volume-title":"Getting Started with Meteor.js JavaScript Framework","author":"Strack Isaac","year":"2015","unstructured":"Isaac Strack. 2015. Getting Started with Meteor.js JavaScript Framework (2nd ed.). Packt Publishing, Birmingham, England."},{"key":"e_1_3_2_75_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-89719-6_2"},{"key":"e_1_3_2_76_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-89719-6_2"},{"key":"e_1_3_2_77_2","first-page":"9","volume-title":"Proceedings of the 2014 Scheme and Functional Programming Workshop","author":"Suchocki Ryan","year":"2015","unstructured":"Ryan Suchocki and Sara Kalvala. 2015. Microscheme: Functional programming for the arduino. In Proceedings of the 2014 Scheme and Functional Programming Workshop. University of Indiana, Washington DC, USA, 9."},{"key":"e_1_3_2_78_2","first-page":"63","volume-title":"Proceedings of the IEEE 2nd World Forum on Internet of Things (WF-IoT)","author":"Tanganelli Giacomo","year":"2015","unstructured":"Giacomo Tanganelli, Carlo Vallati, and Enzo Mingozzi. 2015. CoAPthon: Easy development of CoAP-based IoT applications with python. In Proceedings of the IEEE 2nd World Forum on Internet of Things (WF-IoT). IEEE, Milan, Italy, 63\u201368. DOI:10.1109\/WF-IoT.2015.7389028"},{"key":"e_1_3_2_79_2","unstructured":"CircuitPython Team. 2022. CircuitPython. https:\/\/circuitpython.org\/. [Online; accessed 2-March-2022]."},{"key":"e_1_3_2_80_2","first-page":"185","volume-title":"Proceedings of the IEEE International Conference on Cloud Computing Technology and Science (CloudCom)","author":"de Troyer Christophe","year":"2018","unstructured":"Christophe de Troyer, Jens Nicolay, and Wolfgang de Meuter. 2018. Building IoT systems using distributed first-class reactive programming. In Proceedings of the IEEE International Conference on Cloud Computing Technology and Science (CloudCom). IEEE, Nicosia, Cyprus, 185\u2013192. DOI:10.1109\/CloudCom2018.2018.00045"},{"key":"e_1_3_2_81_2","doi-asserted-by":"crossref","first-page":"136","DOI":"10.1145\/3406088.3409027","volume-title":"Proceedings of the 13th ACM SIGPLAN International Symposium on Haskell","author":"Valliappan Nachiappan","year":"2020","unstructured":"Nachiappan Valliappan, Robert Krook, Alejandro Russo, and Koen Claessen. 2020. Towards secure IoT programming in haskell. In Proceedings of the 13th ACM SIGPLAN International Symposium on Haskell. Association for Computing Machinery, New York, NY, 136\u2013150. DOI:10.1145\/3406088.3409027"},{"key":"e_1_3_2_82_2","unstructured":"Micropython Official Website. 2022. MicroPython Differences from CPython. https:\/\/docs.micropython.org\/en\/latest\/genrst\/index.html."},{"key":"e_1_3_2_83_2","doi-asserted-by":"publisher","DOI":"10.1145\/3397495"},{"key":"e_1_3_2_84_2","volume-title":"Security Analysis of the iTasks Framework","author":"Wijkhuizen Mark","year":"2018","unstructured":"Mark Wijkhuizen. 2018. Security Analysis of the iTasks Framework. Bachelor\u2019s thesis. Radboud University, Nijmegen."},{"key":"e_1_3_2_85_2","doi-asserted-by":"publisher","DOI":"10.1145\/566340.566343"}],"container-title":["ACM Transactions on Internet of Things"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3572901","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3572901","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T17:51:38Z","timestamp":1750182698000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3572901"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,2,23]]},"references-count":84,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2023,2,28]]}},"alternative-id":["10.1145\/3572901"],"URL":"https:\/\/doi.org\/10.1145\/3572901","relation":{},"ISSN":["2691-1914","2577-6207"],"issn-type":[{"type":"print","value":"2691-1914"},{"type":"electronic","value":"2577-6207"}],"subject":[],"published":{"date-parts":[[2023,2,23]]},"assertion":[{"value":"2021-09-30","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-10-23","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-02-23","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}