Access the full text.
Sign up today, get DeepDyve free for 14 days.
Eric Horvitz (2009)
Association for Computing Machinery
2020. arduino-copilot: Arduino programming in haskell using the Copilot stream DSL
Ryan Suchocki (2014)
Microscheme : Functional programming for the Arduino
Philip Mayer, Alexander Bauer (2015)
An empirical analysis of the utilization of multiple programming languages in open source projectsProceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering
[ (2014)
Parametric lenses: Change notification for bidirectional lensesProceedings of the 26th International Symposium on Implementation and Application of Functional Languages (IFL’14). Association for Computing Machinery
Mart Lubbers, Pieter Koopman, M. Plasmeijer (2019)
Writing Internet of Things Applications with Task Oriented Programming
R. Motta, K. Oliveira, G. Travassos (2018)
On challenges in engineering IoT software systemsProceedings of the XXXII Brazilian Symposium on Software Engineering
Henrik Nilsson, A. Courtney, John Peterson (2002)
Functional reactive programming, continued
[ (2014)
Towards tierless web development without tierless languagesProceedings of the ACM International Symposium on New Ideas
(2022)
MicroPython Diferences from CPython
Ezra Cooper, S. Lindley, P. Wadler, J. Yallop (2006)
Links: Web Programming Without Tiers
Laure Philips, Coen Roover, T. Cutsem, W. Meuter (2014)
Towards Tierless Web Development without Tierless LanguagesProceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software
Stephen Chong, Jed Liu, A. Myers, Xin Qi, K. Vikram, Lantian Zheng, Xin Zheng (2007)
Secure web applications via automatic partitioning
Nachiappan Valliappan, Robert Krook, Alejandro Russo, Koen Claessen (2020)
Towards secure IoT programming in HaskellProceedings of the 13th ACM SIGPLAN International Symposium on Haskell
Mart Lubbers, P. Koopman, M. Plasmeijer (2019)
Interpreting task oriented programs on tiny computersProceedings of the 31st Symposium on Implementation and Application of Functional Languages
M. Serrano, Erick Gallesio, Florian Loitsch (2006)
Hop: a language for programming the web 2.0
John Hughes (1989)
Why Functional Programming MattersComput. J., 32
A. Ekblad, Koen Claessen (2014)
A seamless, client-centric programming model for type safe web applicationsACM SIGPLAN Notices, 49
Christopher Ireland, D. Bowers, M. Newton, K. Waugh (2009)
A Classification of Object-Relational Impedance Mismatch2009 First International Confernce on Advances in Databases, Knowledge, and Data Applications
Pavneet Kochhar, Dinusha Wijedasa, D. Lo (2016)
A Large Scale Study of Multiple Programming Languages and Code Quality2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), 1
[ (2019)
Measurement and analysis of hajime, a peer-to-peer IoT botnetProceedings of the Network and Distributed Systems Security Symposium (NDSS’19). Internet Society
A. Alimarine, M. Plasmeijer (2001)
A Generic Programming Extension for Clean
(2018)
Security analysis of the iTasks framework
Mart Lubbers, P. Koopman, M. Plasmeijer (2019)
Multitasking on Microcontrollers using Task Oriented Programming2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO)
Jong-Kook Lee, Seung Seung, Soo Kim, Woo Hyun, D. Han (2001)
Component identification method with coupling and cohesionProceedings Eighth Asia-Pacific Software Engineering Conference
[ (2020)
The wonderful wizard of LoC: Paying attention to the man behind the curtain of lines-of-code metricsProceedings of the ACM SIGPLAN International Symposium on New Ideas
(2012)
Akka Essentials
Stephen Herwig, Katura Harvey, George Hughey, Richard Roberts, Dave Levin (2019)
Measurement and Analysis of Hajime, a Peer-to-peer IoT BotnetProceedings 2019 Network and Distributed System Security Symposium
(2018)
IoT Architectural Styles
Danny Dub
BIT: A Very Compact Scheme System for Embedded Applications
Byeongcheol Lee, Ben Wiedermann, Martin Hirzel, R. Grimm, K. McKinley (2010)
Jinn: synthesizing dynamic bug detectors for foreign language interfaces
J. Stutterheim, P. Achten, M. Plasmeijer (2017)
Maintaining Separation of Concerns Through Task Oriented Software Development
Arjan Oortgiese, John Groningen, P. Achten, M. Plasmeijer (2017)
A Distributed Dynamic Architecture for Task Oriented ProgrammingProceedings of the 29th Symposium on the Implementation and Application of Functional Programming Languages
(2007)
Krishnaprasad Vikram, Lantian Zheng, and Xin Zheng
[ (2014)
A seamless, client-centric programming model for type safe web applicationsSIGPLAN Not., 49
J. Rosenberg (1997)
Some misconceptions about lines of codeProceedings Fourth International Software Metrics Symposium
A. Belle, Ghizlane El-Boussaidi, Christian Desrosiers, H. Mili (2013)
The Layered Architecture revisited: Is it an Optimization Problem?
Mart Lubbers, P. Koopman, Adrian Ramsingh, Jeremy Singer, P. Trinder (2020)
Tiered versus tierless IoT stacks: comparing smart campus software architecturesProceedings of the 10th International Conference on the Internet of Things
Kensuke Sawada, Takuo Watanabe (2016)
Emfrp: a functional reactive programming language for small-scale embedded systemsCompanion Proceedings of the 15th International Conference on Modularity
P. Levis, D. Culler (2002)
Maté: a tiny virtual machine for sensor networks
Alan MacCormack, J. Rusnak, Carliss Baldwin (2007)
The Impact of Component Modularity on Design Evolution: Evidence from the Software IndustryIRPN: Innovation Processes (Topic)
Michael Furr, J. Foster (2005)
Checking type safety of foreign function calls
[ (2022)
CircuitPythonhttps://circuitpython.org/. [Online; accessed 2-March-2022].
P. Koopman, Mart Lubbers, M. Plasmeijer (2018)
A Task-Based DSL for Microcomputers
M. Plasmeijer, P. Achten, P. Koopman (2007)
iTasks: executable specifications of interactive work flow systems for the web
[ (2018)
Reprogramming low-end IoT devices from the cloudProceedings of the 3rd Cloudification of the Internet of Things (CIoT’18). IEEE
Abhiroop Sarkar, M. Sheeran (2020)
Hailstorm: A Statically-Typed, Purely Functional Language for IoT ApplicationsProceedings of the 22nd International Symposium on Principles and Practice of Declarative Programming
M. Alphonsa (2020)
A Review on IOT Technology Stack, Architecture and Its Cloud Applications in Recent Trends
(2018)
Enterprise internet of things handbook : build end-to-end IoT solutions using popular IoT platforms
Natascha Harth, C. Anagnostopoulos, D. Pezaros (2018)
Predictive intelligence to the edge: impact on edge analyticsEvolving Systems, 9
[ (2020)
Uniqueness TypingRetrieved February 2, 2021 from https://cloogle.org/doc/#_9., 2
J. Epstein, A. Black, S. Jones (2012)
Towards Haskell in the cloud
[ (1993)
Imperative functional programmingProceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’93). Association for Computing Machinery
Could Tierless Languages Reduce IoT Development Grief
Pallavi Sethi, S. Sarangi (2017)
Internet of Things: Architectures, Protocols, and ApplicationsJ. Electr. Comput. Eng., 2017
Cordelia Hall, K. Hammond, Will Partain, S. Jones, P. Wadler (1992)
The Glasgow Haskell Compiler: A Retrospective
D. Guinard, V. Trifa (2016)
Building the Web of Things: With examples in Node.js and Raspberry Pi
Philip Mayer, Michael Kirsch, Minh Le (2017)
On multi-language software development, cross-language links and accompanying tools: a survey of professional software developersJournal of Software Engineering Research and Development, 5
A. Sivieri, L. Mottola, G. Cugola (2012)
Drop the phone and talk to the physical world: Programming the internet of things with Erlang2012 Third International Workshop on Software Engineering for Sensor Network Applications (SESENA)
(2015)
Eric Seidel, and John Launchbury
[ (2008)
SOliveira
[ (2013)
The layered architecture revisited: Is it an optimization problem? In Proceedings of the 25th International Conference on Software Engineering & Knowledge E, Vol
S. Sheetz, David Henderson, Linda Wallace (2009)
Understanding developer and manager perceptions of function points and source lines of codeJ. Syst. Softw., 82
(2020)
Lisp for microcontrollers
S. Zdancewic, Lantian Zheng, Nathaniel Nystrom, A. Myers (2002)
Secure program partitioningACM Trans. Comput. Syst., 20
U. Reddy (1996)
Imperative functional programmingACM Comput. Surv., 28
(2020)
Secure Communication Channels for the mTask System. Bachelor's thesis
Introduction to IO-HaskellWiki
S. Cass (2020)
The top programming languages: Our latest rankings put Python on top-again - [Careers]IEEE Spectrum, 57
J. Kittler, M. Naor (2003)
Formal Methods for Components and Objects, 3188
J. Bjornson, Anton Tayanovskyy, Adam Granicz (2010)
Composing Reactive GUIs in F# Using WebSharper
D. Mazzei, Giacomo Baldi, G. Montelisciani, G. Fantoni (2016)
A full stack for quick prototyping of IoT solutionsAnnals of Telecommunications, 73
Roger Light (2017)
Mosquitto: server and client implementation of the MQTT protocolJ. Open Source Softw., 2
[ (2015)
CoAPthon: Easy development of CoAP-based IoT applications with pythonProceedings of the IEEE 2nd World Forum on Internet of Things (WF-IoT). IEEE
E. Baccelli, Jörg Dörr, Ons Jallouli, S. Kikuchi, A. Morgenstern, Francisco Padilla, K. Schleiser, I. Thomas (2018)
Reprogramming Low-end IoT Devices from the Cloud2018 3rd Cloudification of the Internet of Things (CIoT)
G. Tanganelli, C. Vallati, E. Mingozzi (2015)
CoAPthon: Easy development of CoAP-based IoT applications with Python2015 IEEE 2nd World Forum on Internet of Things (WF-IoT)
[ (2007)
The Impact of Component Modularity on Design Evolution: Evidence from the Software IndustryTechnical Report 08-038. Harvard Business School Technology and Operations Management Unit
Tim Steenvoorden, N. Naus, M. Klinik (2019)
TopHat: A formal foundation for task-oriented programmingProceedings of the 21st International Symposium on Principles and Practice of Declarative Programming
A. Yakushev, J. Jeuring, Patrik Jansson, Alex Gerdes, O. Kiselyov, B. Oliveira (2008)
Comparing libraries for generic programming in haskell
[ (2016)
Building the Web of Things: With Examples in NodeManning Publications Co.
(2021)
Security and privacy requirements for the internet of things: A survey
Kristian Hentschel, D. Jacob, Jeremy Singer, M. Chalmers (2016)
Supersensors: Raspberry Pi Devices for Smart Campus Infrastructure2016 IEEE 4th International Conference on Future Internet of Things and Cloud (FiCloud)
[ (2021)
Reducing the Power Consumption of IoT Devices in Task-Oriented ProgrammingMaster’s thesis Radboud University
L. Domoszlai, B. Lijnse, M. Plasmeijer (2014)
Parametric lenses: change notification for bidirectional lensesProceedings of the 26nd 2014 International Symposium on Implementation and Application of Functional Languages
C. Troyer, Jens Nicolay, W. Meuter (2018)
Building IoT Systems Using Distributed First-Class Reactive Programming2018 IEEE International Conference on Cloud Computing Technology and Science (CloudCom)
Trevor Elliott, Lee Pike, Simon Winwood, P. Hickey, James Bielman, Jamey Sharp, Eric Seidel, J. Launchbury (2015)
Guilt free ivoryProceedings of the 2015 ACM SIGPLAN Symposium on Haskell
M. Feeley, Danny Dub (2003)
PICBIT: A Scheme System for the PIC Microcontroller
Sebastian Plamauer, M. Langer (2017)
Evaluation of MicroPython as Application Layer Programming Language on CubeSats
[ (2015)
Guilt free ivoryProceedings of the ACM SIGPLAN Symposium on Haskell (Haskell’15). Association for Computing Machinery
a Seamless
[ (2009)
A classification of object-relational impedance mismatchProceedings of the 1st International Confernce on Advances in Databases
Kalev Alpernas, Y. Feldman, Hila Peleg (2020)
The wonderful wizard of LoC: paying attention to the man behind the curtain of lines-of-code metricsProceedings of the 2020 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
P. Weisenburger, John Wirth, G. Salvaneschi (2020)
A Survey of Multitier ProgrammingACM Computing Surveys (CSUR), 53
M. Antonakakis, Tim April, Michael Bailey, Matthew Bernhard, Elie Bursztein, J. Cochran, Z. Durumeric, J. Halderman, L. Invernizzi, Michalis Kallitsis, Deepak Kumar, Chaz Lever, Zane Ma, Joshua Mason, D. Menscher, C. Seaman, N. Sullivan, Kurt Thomas, Yi Zhou (2017)
Understanding the Mirai Botnet
Erik Barendsen, S. Smetsers (1996)
Uniqueness typing for functional languages with graph rewriting semanticsMathematical Structures in Computer Science, 6
R. Kodali, K. Mahesh (2016)
Low cost ambient monitoring using ESP82662016 2nd International Conference on Contemporary Computing and Informatics (IC3I)
V. Balat (2006)
Ocsigen: typing web interaction with objective Caml
M. Plasmeijer, B. Lijnse, Steffen Michels, P. Achten, P. Koopman (2012)
Task-oriented programming in a pure functional language
(2015)
Getting Started with Meteor.js JavaScript Framework (2
R. Hinze (2000)
A new approach to generic functional programming
[ (2020)
Secure Communication Channels for the mTask SystemBachelor’s thesis. Radboud University
[ (2015)
Getting Started with MeteorPackt Publishing
Kazuhiro Shibanai, Takuo Watanabe (2018)
Distributed functional reactive programming on actor-based runtimeProceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control
P. Achten (2007)
Clean for Haskell98 Programmers -- A Quick Reference Guide --
Vincent St-Amour, M. Feeley (2009)
PICOBIT: A Compact Scheme System for Microcontrollers
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 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.
ACM Transactions on Internet of Things – Association for Computing Machinery
Published: Feb 23, 2023
Keywords: Tierless languages
Read and print from thousands of top scholarly journals.
Already have an account? Log in
Bookmark this article. You can see your Bookmarks on your DeepDyve Library.
To save an article, log in first, or sign up for a DeepDyve account if you don’t already have one.
Copy and paste the desired citation format or use the link below to download a file formatted for EndNote
Access the full text.
Sign up today, get DeepDyve free for 14 days.
All DeepDyve websites use cookies to improve your online experience. They were placed on your computer when you launched this website. You can change your cookie settings through your browser.