Source code for a simplified mTask language integrated with the iTask system

DOI

Source code accompanying the paper:Lubbers, M., Koopman, P. & Plasmeijer, R. (2018). Task Oriented Programming and the Internet of Things. In M. Cimini (Ed.), IFL 2018 Proceedings of the 30th Symposium on Implementation and Application of Functional Languages: Lowell, MA, USA — September 05 - 07, 2018 (pp. 83-94). New York: ACM doi: 10.1145/3310232.3310239Abstract: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). This paper shows how IoT tasks can be seemlessly integrated with a Task Oriented Programming (TOP) server such asiTasks. 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 dynamicallyto 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.This is a snapshot of the mTask git repository:https://gitlab.science.ru.nl/mlubbers/mTaskContents:- Zip file containing a snapshot of the CVS repository of mTask. client/: contains the mTask run-time-system C source code library/: contains the mTask library Clean source code programs/: contains the mTask examples tests/: contains some tests for library functionality- README.md: contains information about mTask and installation instructions

Zip file unpacked by DANS.

Identifier
DOI https://doi.org/10.17026/dans-xv6-fvxd
Metadata Access https://phys-techsciences.datastations.nl/oai?verb=GetRecord&metadataPrefix=oai_datacite&identifier=doi:10.17026/dans-xv6-fvxd
Provenance
Creator M. Lubbers; P. Koopman; R. Plasmeijer
Publisher DANS Data Station Phys-Tech Sciences
Contributor RU Radboud University
Publication Year 2021
Rights BSD-2-Clause; info:eu-repo/semantics/openAccess; http://opensource.org/licenses/BSD-2-Clause
OpenAccess true
Contact RU Radboud University
Representation
Resource Type Dataset
Format text/x-c; application/octet-stream; text/xml; text/plain; application/zip; text/x-makefile; text/x-python; text/markdown; application/x-sh
Size 14445; 5281; 11; 489; 1942; 12804; 16901; 3197; 144; 6180; 23436; 642; 565; 6613; 626; 2121; 118; 1323; 3089; 9980; 95581; 700; 2564; 7392; 1077; 3170; 7241; 720; 2994; 39; 20; 283; 385; 220; 12120; 4066; 1161; 534; 64; 1160; 3389; 2166; 1287; 3338; 2560; 14; 2261; 4841; 4238; 210; 9665; 6601; 1372; 2269; 4516; 3097; 170; 800; 6538; 496; 215; 205; 7361; 3797; 46; 77; 1329; 17292; 465; 8; 297; 2227; 879; 17; 855; 4136; 2038; 4179; 400; 882; 155; 992; 1629; 4925; 522; 11450; 4231; 9125; 943; 1593; 10715; 9; 374; 130; 3513; 1010; 492; 2366; 652; 1946; 1806; 637; 305; 260; 2590
Version 2.0
Discipline Other