{"status":"OK","data":{"id":68476,"identifier":"dans-zrn-2wv3","persistentUrl":"https://doi.org/10.17026/DANS-ZRN-2WV3","protocol":"doi","authority":"10.17026","separator":"/","publisher":"DANS Data Station Physical and Technical Sciences","publicationDate":"2021-01-01","storageIdentifier":"surf://10.17026/dans-zrn-2wv3","effectiveDatasetFileCountLimit":10000,"datasetFileUploadsAvailable":9994,"datasetType":"dataset","locks":[],"latestVersion":{"id":1124,"datasetId":68476,"datasetPersistentId":"doi:10.17026/DANS-ZRN-2WV3","datasetType":"dataset","storageIdentifier":"surf://10.17026/dans-zrn-2wv3","versionNumber":2,"internalVersionNumber":16,"versionMinorNumber":0,"versionState":"RELEASED","latestVersionPublishingState":"RELEASED","deaccessionLink":"","distributionDate":"2021-12-21","productionDate":"2021-01-01","lastUpdateTime":"2023-11-11T18:13:36Z","releaseTime":"2020-12-31T23:00:00Z","createTime":"2023-11-11T18:13:33Z","publicationDate":"2021-01-01","citationDate":"2021-01-01","effectiveDatasetFileCountLimit":10000,"datasetFileUploadsAvailable":9994,"license":{"name":"BSD-2-Clause","uri":"http://opensource.org/licenses/BSD-2-Clause","iconUri":""},"termsOfAccess":"N/a","fileAccessRequest":false,"metadataBlocks":{"citation":{"displayName":"Citation Metadata","name":"citation","fields":[{"typeName":"title","multiple":false,"typeClass":"primitive","value":"Source code for the interpreted mTask language"},{"typeName":"otherId","multiple":true,"typeClass":"compound","value":[{"otherIdAgency":{"typeName":"otherIdAgency","multiple":false,"typeClass":"primitive","value":"DANS-KNAW"},"otherIdValue":{"typeName":"otherIdValue","multiple":false,"typeClass":"primitive","value":"easy-dataset:230572"}},{"otherIdValue":{"typeName":"otherIdValue","multiple":false,"typeClass":"primitive","value":"700597"}}]},{"typeName":"author","multiple":true,"typeClass":"compound","value":[{"authorName":{"typeName":"authorName","multiple":false,"typeClass":"primitive","value":"M. Lubbers"},"authorAffiliation":{"typeName":"authorAffiliation","multiple":false,"typeClass":"primitive","value":"Radboud University"},"authorIdentifierScheme":{"typeName":"authorIdentifierScheme","multiple":false,"typeClass":"controlledVocabulary","value":"DAI"},"authorIdentifier":{"typeName":"authorIdentifier","multiple":false,"typeClass":"primitive","value":"info:eu-repo/dai/nl/434968870"}},{"authorName":{"typeName":"authorName","multiple":false,"typeClass":"primitive","value":"P. Koopman"},"authorAffiliation":{"typeName":"authorAffiliation","multiple":false,"typeClass":"primitive","value":"Radboud University"},"authorIdentifierScheme":{"typeName":"authorIdentifierScheme","multiple":false,"typeClass":"controlledVocabulary","value":"DAI"},"authorIdentifier":{"typeName":"authorIdentifier","multiple":false,"typeClass":"primitive","value":"info:eu-repo/dai/nl/079184340"}},{"authorName":{"typeName":"authorName","multiple":false,"typeClass":"primitive","value":"R. Plasmeijer"},"authorAffiliation":{"typeName":"authorAffiliation","multiple":false,"typeClass":"primitive","value":"Radboud University"},"authorIdentifierScheme":{"typeName":"authorIdentifierScheme","multiple":false,"typeClass":"controlledVocabulary","value":"DAI"},"authorIdentifier":{"typeName":"authorIdentifier","multiple":false,"typeClass":"primitive","value":"info:eu-repo/dai/nl/068439180"}}]},{"typeName":"datasetContact","multiple":true,"typeClass":"compound","value":[{"datasetContactName":{"typeName":"datasetContactName","multiple":false,"typeClass":"primitive","value":"RU  Radboud University"}}]},{"typeName":"dsDescription","multiple":true,"typeClass":"compound","value":[{"dsDescriptionValue":{"typeName":"dsDescriptionValue","multiple":false,"typeClass":"primitive","value":"<p>Source code accompanying the paper:<br>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.</p><p>This is a snapshot of the mTask git repository:<br>https://gitlab.science.ru.nl/mlubbers/mTask</p><p>Abstract:<br>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.</p><p>Contents:<br>- Zip file containing a snapshot of the CVS repository of mTask.<br>* README.md: contains information about mTask<br>* DEVICES.md: contains device specific installation notes<br>* INSTALL.md: contains installation instructions<br>* rts/: contains the mTask run-time-system C source code<br>* library/: contains the mTask library Clean source code<br>* programs/: contains the mTask examples<br>* tests/: contains some tests for library functionality<br>* tools/: contains auxiliary programs for generating symbols and class constraints<br>* dependencies/: library dependencies for the mTask library<br>- README.md: contains information about mTask and installation instructions</p>"}}]},{"typeName":"subject","multiple":true,"typeClass":"controlledVocabulary","value":["Computer and Information Science"]},{"typeName":"keyword","multiple":true,"typeClass":"compound","value":[{"keywordValue":{"typeName":"keywordValue","multiple":false,"typeClass":"primitive","value":"source code"}},{"keywordValue":{"typeName":"keywordValue","multiple":false,"typeClass":"primitive","value":"clean"}},{"keywordValue":{"typeName":"keywordValue","multiple":false,"typeClass":"primitive","value":"functional programming"}},{"keywordValue":{"typeName":"keywordValue","multiple":false,"typeClass":"primitive","value":"task oriented programming"}},{"keywordValue":{"typeName":"keywordValue","multiple":false,"typeClass":"primitive","value":"mTask"}}]},{"typeName":"language","multiple":true,"typeClass":"controlledVocabulary","value":["English"]},{"typeName":"productionDate","multiple":false,"typeClass":"primitive","value":"2021-01-01"},{"typeName":"distributionDate","multiple":false,"typeClass":"primitive","value":"2021-12-21"},{"typeName":"dateOfDeposit","multiple":false,"typeClass":"primitive","value":"2021-12-23"}]},"dansRights":{"displayName":"Rights Metadata","name":"dansRights","fields":[{"typeName":"dansRightsHolder","multiple":true,"typeClass":"primitive","value":["Radboud University"]},{"typeName":"dansPersonalDataPresent","multiple":false,"typeClass":"controlledVocabulary","value":"Unknown"}]},"dansRelationMetadata":{"displayName":"Relation Metadata","name":"dansRelationMetadata","fields":[{"typeName":"dansAudience","multiple":true,"typeClass":"primitive","value":["https://www.narcis.nl/classification/D16000"],"expandedvalue":[{"@id":"https://www.narcis.nl/classification/D16000","termName":[{"lang":"en","value":"Computer science"},{"lang":"nl","value":"Informatica"}],"vocabularyUri":"https://www.narcis.nl/classification/"}]},{"typeName":"dansRelation","multiple":true,"typeClass":"compound","value":[{"dansRelationType":{"typeName":"dansRelationType","multiple":false,"typeClass":"controlledVocabulary","value":"relation"},"dansRelationText":{"typeName":"dansRelationText","multiple":false,"typeClass":"primitive","value":"Lubbers, M., Koopman, P. & Plasmeijer, R. (2019). Multitasking on Microcontrollers using Task Oriented Programming. In M. Koricic (Ed.), <i>2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO): May 20 – 24, 2019 Opatija, Croatia. Proceedings</i> (pp. 1587-1592). Piscataway: IEEE doi: <a href=\"https://doi.org/10.23919/MIPRO.2019.8756711\" target=\"_blank\">10.23919/MIPRO.2019.8756711</a>"}},{"dansRelationType":{"typeName":"dansRelationType","multiple":false,"typeClass":"controlledVocabulary","value":"relation"},"dansRelationText":{"typeName":"dansRelationText","multiple":false,"typeClass":"primitive","value":"Lubbers, M., Koopman, P. & Plasmeijer, R. (2020). <i>Source code for the multitasking mTask language integrated with the iTask system.</i> DANS EASY [Dataset]. doi: <a href=\"https://doi.org/10.17026/dans-xv6-fvxd\" target=\"_blank\">10.17026/dans-xv6-fvxd</a>."}},{"dansRelationType":{"typeName":"dansRelationType","multiple":false,"typeClass":"controlledVocabulary","value":"relation"},"dansRelationText":{"typeName":"dansRelationText","multiple":false,"typeClass":"primitive","value":"Lubbers, M., Koopman, P. & Plasmeijer, R. (2020). <i>Source code for a simplified mTask language integrated with the iTask system.</i> DANS EASY [Dataset]. doi: <a href=\"https://doi.org/10.17026/dans-xv6-fvxd\" target=\"_blank\">10.17026/dans-xv6-fvxd</a>."}},{"dansRelationType":{"typeName":"dansRelationType","multiple":false,"typeClass":"controlledVocabulary","value":"relation"},"dansRelationText":{"typeName":"dansRelationText","multiple":false,"typeClass":"primitive","value":"Koopman, P., Lubbers, M. & Plasmeijer, R. (2020). <i>Source code for the mTask language.</i> DANS EASY [Dataset]. doi: <a href=\"https://doi.org/10.17026/dans-xx4-8zs9\" target=\"_blank\">10.17026/dans-xx4-8zs9</a>."}},{"dansRelationType":{"typeName":"dansRelationType","multiple":false,"typeClass":"controlledVocabulary","value":"relation"},"dansRelationText":{"typeName":"dansRelationText","multiple":false,"typeClass":"primitive","value":"Lubbers, M., Koopman, P.W.M. & Plasmeijer, M.J. (2019). Interpreting task oriented programs on tiny computers. In <i>IFL '19: Proceedings of the 31st Symposium on Implementation and Application of Functional Languages</i> (pp. 1-12) doi: <a href=\"https://doi.org/10.1145/3412932.3412936\" target=\"_blank\">10.1145/3412932.3412936</a>"}},{"dansRelationType":{"typeName":"dansRelationType","multiple":false,"typeClass":"controlledVocabulary","value":"relation"},"dansRelationText":{"typeName":"dansRelationText","multiple":false,"typeClass":"primitive","value":"Koopman, P., Lubbers, M. & Plasmeijer, R. (2018). A Task-Based DSL for Microcomputers. In R. Stewart (Ed.), <i>RWDSL2018: Proceedings of the Real World Domain Specific Languages Workshop 2018, Vienna, Austria — February 24 - 24, 2018</i> (pp. 1-11). New York: ACM doi: <a href=\"https://doi.org/10.1145/3183895.3183902\" target=\"_blank\">10.1145/3183895.3183902</a>"}},{"dansRelationType":{"typeName":"dansRelationType","multiple":false,"typeClass":"controlledVocabulary","value":"relation"},"dansRelationText":{"typeName":"dansRelationText","multiple":false,"typeClass":"primitive","value":"Lubbers, M., Koopman, P. & Plasmeijer, R. (2018). Task Oriented Programming and the Internet of Things. In M. Cimini (Ed.), <i>IFL 2018 Proceedings of the 30th Symposium on Implementation and Application of Functional Languages: Lowell, MA, USA — September 05 - 07, 2018</i> (pp. 83-94). New York: ACM doi: <a href=\"https://doi.org/10.1145/3310232.3310239\" target=\"_blank\">10.1145/3310232.3310239</a>"}}]}]},"dansDataVaultMetadata":{"displayName":"Data Vault Metadata","name":"dansDataVaultMetadata","fields":[{"typeName":"dansDataversePid","multiple":false,"typeClass":"primitive","value":"doi:10.17026/dans-zrn-2wv3"},{"typeName":"dansDataversePidVersion","multiple":false,"typeClass":"primitive","value":"2.0"},{"typeName":"dansBagId","multiple":false,"typeClass":"primitive","value":"urn:uuid:c2613c2a-8132-4279-b05e-7e9ee2796f65"},{"typeName":"dansNbn","multiple":false,"typeClass":"primitive","value":"urn:nbn:nl:ui:13-4a-a96x"}]}},"files":[{"description":"","label":"DatasetContent.txt","restricted":false,"directoryLabel":"data","version":1,"datasetVersionId":1124,"dataFile":{"id":68481,"persistentId":"","filename":"DatasetContent.txt","contentType":"text/plain","friendlyType":"Plain Text","filesize":626,"description":"","storageIdentifier":"surf://store:18bbf9690ed-778f961efe96","rootDataFileId":-1,"checksum":{"type":"SHA-1","value":"d292fb4cba652e8817fa03beb6be8b313c3a25e1"},"tabularData":false,"creationDate":"2023-11-11","publicationDate":"2021-01-01","directoryLabel":"data","lastUpdateTime":"2023-11-11T18:13:36Z","fileAccessRequest":false}},{"description":"","label":"easy-migration.zip","restricted":false,"version":2,"datasetVersionId":1124,"dataFile":{"id":68482,"persistentId":"","filename":"easy-migration.zip","contentType":"application/zip","friendlyType":"ZIP Archive","filesize":25619,"description":"","storageIdentifier":"surf://store:18bbf96d2cf-ae8dd7626f17","rootDataFileId":68477,"previousDataFileId":68477,"checksum":{"type":"SHA-1","value":"ff0d76cf40a44a2b0349b09e8b4e64eba80c86d7"},"tabularData":false,"creationDate":"2023-11-11","publicationDate":"2021-01-01","lastUpdateTime":"2023-11-11T18:13:36Z","fileAccessRequest":false}},{"description":"","label":"lubbers_ifl19_mTask_sourcecode.zip","restricted":false,"directoryLabel":"data","version":1,"datasetVersionId":1124,"dataFile":{"id":68480,"persistentId":"","filename":"lubbers_ifl19_mTask_sourcecode.zip","contentType":"application/zip","friendlyType":"ZIP Archive","filesize":183303,"description":"","storageIdentifier":"surf://store:18bbf96906e-2d0f1807586c","rootDataFileId":-1,"checksum":{"type":"SHA-1","value":"8db2857695d3e93edd0f53af9ba0ac41dbefe075"},"tabularData":false,"creationDate":"2023-11-11","publicationDate":"2021-01-01","directoryLabel":"data","lastUpdateTime":"2023-11-11T18:13:36Z","fileAccessRequest":false}},{"description":"","label":"README.md","restricted":false,"directoryLabel":"data","version":1,"datasetVersionId":1124,"dataFile":{"id":68478,"persistentId":"","filename":"README.md","contentType":"text/markdown","friendlyType":"Markdown Text","filesize":3108,"description":"","storageIdentifier":"surf://store:18bbf968f6a-e9620060c248","rootDataFileId":-1,"checksum":{"type":"SHA-1","value":"9781342adf6ed288f53b62b379a9e91dc60539ff"},"tabularData":false,"creationDate":"2023-11-11","publicationDate":"2021-01-01","directoryLabel":"data","lastUpdateTime":"2023-11-11T18:13:36Z","fileAccessRequest":false}}]}}}