Data · dataset · 2020
Source code for the interpreted mTask language
Listed in DANS Data Station Physical and Technical Sciences
Description
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: gitlab.science.ru.nl/mlubbers/mTask
Abstract
Read the rest (6 more)
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
Links
Where it is published
- Dataverse dataset page phys-techsciences.datastations.nl/dataset.xhtml?persistentId=doi%3A10.17026%2FDANS-ZRN-2WV3 ↗
landing page · from phys techsciences datastations nl
- DOI doi.org/10.17026/dans-zrn-2wv3 ↗
DOI / persistent id · from phys techsciences datastations nl
Catalogue records · 1
- Dataverse API phys-techsciences.datastations.nl/api/datasets/:persistentId/?persistentId=doi%3A10.17026%2FDANS… ↗
metadata API · from phys techsciences datastations nl
Topics
- Stated by source
- Computer and Information Science
- Inferred from text
- Software engineering 75%
Provenance · 1 source records, 8 field assertions
| Source | Key | Last seen | Raw |
|---|---|---|---|
| DANS Data Station Physical and Technical Sciences | doi:10.17026/DANS-ZRN-2WV3 | 13 d ago | JSON v1 |
| Field | Assertion | Extractor | Evidence |
|---|---|---|---|
| concepts[field].anzsrc:group:4612 | enrichment · phys techsciences datastations nl | taxonomy-embedding@1.1.0 | title+keywords+description (75%) |
| concepts[field].dataverse_subject:computer-and-information-science | source · phys techsciences datastations nl | connector:phys_techsciences_datastations_nl@1.0.0 | /subjects |
| created_date | source · phys techsciences datastations nl | connector:phys_techsciences_datastations_nl@1.0.0 | |
| description | source · phys techsciences datastations nl | connector:phys_techsciences_datastations_nl@1.0.0 | /description |
| publication_date | source · phys techsciences datastations nl | connector:phys_techsciences_datastations_nl@1.0.0 | |
| title | source · phys techsciences datastations nl | connector:phys_techsciences_datastations_nl@1.0.0 | /name |
| updated_date | source · phys techsciences datastations nl | connector:phys_techsciences_datastations_nl@1.0.0 | |
| version_label | source · phys techsciences datastations nl | connector:phys_techsciences_datastations_nl@1.0.0 |