Source code for the interpreted mTask language

DOI

Source code accompanying the paper:M. Lubbers, P. Koopman, and R. Plasmeijer, ‘Interpreting Task Oriented Programs on Tiny Computers’, in Proceedings of the 31st Symposium on Implementation and Application of Functional Languages, New York, NY, USA, 2019. doi: 10.1145/3412932.3412936.This is a snapshot of the mTask git repository:https://gitlab.science.ru.nl/mlubbers/mTaskAbstract: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.Contents:- Zip file containing a snapshot of the CVS repository of mTask. README.md: contains information about mTask DEVICES.md: contains device specific installation notes INSTALL.md: contains installation instructions rts/: 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 tools/: contains auxiliary programs for generating symbols and class constraints* dependencies/: library dependencies for the mTask library- README.md: contains information about mTask and installation instructions

Identifier
DOI https://doi.org/10.17026/dans-zrn-2wv3
Metadata Access https://phys-techsciences.datastations.nl/oai?verb=GetRecord&metadataPrefix=oai_datacite&identifier=doi:10.17026/dans-zrn-2wv3
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/plain; application/zip; text/markdown
Size 626; 25619; 183303; 3108
Version 2.0
Discipline Other