Data · dataset · 2020
Source code for the TopHat implementation
Listed in DANS Data Station Physical and Technical Sciences
Source code accompanying the paper: Steenvoorden, T.J., Naus, N. & Klinik, M. (2019).
Description
TopHat: A formal foundation for task-oriented programming. In E. Komendantskaya (Ed.), PPDP '19: Proceedings of the 21st International Symposium on Principles and Practice of Programming Languages 2019, Porto, Portugal — October 07 - 09, 2019 (pp. 1-13).
New York: ACM DESCRIPTION TopHat is a formalisation of Task Oriented Programming. This is the Haskell implementation of the language. CONTENTS - The language is specified as a GADT in Data.Task - Semantics, including all observations, can be found in Data.Task.Run - Main includes a couple of examples which can be executed. - More information on how to compile and run this program can be found in README.txt SHORT SUMMARY Software that models how people work is omnipresent in today's society.
Read the rest (7 more)
Current languages and frameworks often focus on usability by non-programmers, sacrificing flexibility and high level abstraction. Task-oriented programming (TOP) is a programming paradigm that aims to provide the desired level of abstraction while still being expressive enough to describe real world collaboration. It prescribes a declarative programming style to specify multi-user workflows.
Workflows can be higher-order. They communicate through typed values on a local and global level. Such specifications can be turned into interactive applications for different platforms, supporting collaboration during execution.
TOP has been around for more than a decade, in the forms of iTasks and mTasks, which are tailored for real-world usability. So far, it has not been given a formalisation which is suitable for formal reasoning. In this paper we give a description of the TOP paradigm and then decompose its rich features into elementary language elements, which makes them suitable for formal treatment.
We use the simply typed lambda-calculus, extended with pairs and references, as a base language. On top of this language, we develop TopHat, a language for modular interactive workflows. We describe TopHat by means of a layered semantics.
These layers consist of multiple big-step evaluations on expressions, and two labelled transition systems, handling user inputs. With TopHat we prepare a way to formally reason about TOP languages and programs. This approach allows for comparison with other work in the field.
We have implemented the semantic rules of TopHat in Haskell, and the task layer on top of the iTasks framework. This shows that our approach is feasible, and lets us demonstrate the concepts by means of illustrative case studies. TOP has been applied in projects with the Dutch coast guard, tax office, and navy.
Our work matters because formal program verification is important for mission-critical software, especially for systems with concurrency.
Links
Where it is published
- Dataverse dataset page phys-techsciences.datastations.nl/dataset.xhtml?persistentId=doi%3A10.17026%2FDANS-ZKS-P82Q ↗
landing page · from phys techsciences datastations nl
- DOI doi.org/10.17026/dans-zks-p82q ↗
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
Provenance · 1 source records, 7 field assertions
| Source | Key | Last seen | Raw |
|---|---|---|---|
| DANS Data Station Physical and Technical Sciences | doi:10.17026/DANS-ZKS-P82Q | 11 d ago | JSON v1 |
| Field | Assertion | Extractor | Evidence |
|---|---|---|---|
| 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 |