项目作者: timjs

项目描述 :
Formal semantics for Task Oriented Programming
高级语言: TeX
项目地址: git://github.com/timjs/tophat.git
创建时间: 2019-09-16T14:57:15Z
项目社区:https://github.com/timjs/tophat

开源协议:

下载


Formal semantics for Task Oriented Programming.
Article accepted for publication and presentation at PPDP’19.

Abstract

Software that models how people work is omnipresent in today’s society.
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.

Article

Can be found in main.pdf.

Appendices

Can be found in appendix.pdf.

Implementation

A Haskell implementation can be found in a separate repository.

02-contents_1647933591467.pdf
03-preface_1647933591537.pdf
04-motivation_1647933591602.pdf
05-coalgebras_of_polynomial_functors_1647933591673.pdf
06-bisimulations_1647933591777.pdf
06-logic_lifting_and_finality_1647933591859.pdf
07-monads_comonads_and_distributive_laws_1647933591949.pdf
08-invariants_and_assertions_1647933592098.pdf
09-references_1647933592212.pdf
10-definition_and_symbol_index_1647933592234.pdf
11-subject_index_1647933592265.pdf
amsden2010-a-survey-of-functional-reactive-programming_1647933592329.pdf
elliot2009-push-pull-functional-reactive-programming_1647933592381.pdf
wan2000-frp-from-first-principles_1647933592429.pdf
HaskellForDSLs_1647933592488.pdf
Plasmeijer, R. J., Achten, P., Koopman, P. W. M., Lijnse, B., van Noort, T., & van Groningen, J. H. G. (2011). iTasks for a change - type-safe run-time change in dynamically evolving workflows_1647933592540.pdf
Plasmeijer, R. J., Lijnse, B., Michels, S., Achten, P., & Koopman, P. W. M. (2012). Task-oriented programming in a pure functional language_1647933592608.pdf
koopman2009-an-executable-and-testable-semantics-for-itasks_1647933592877.pdf
koopman2010-an-effective-methodology-for-defining-consistent-semantics-of-complex-systems_1647933592944.pdf
reynolds1972-definitional-interpreters_1647933593086.pdf
reynolds1998-definitional-interpreters_1647933593230.pdf
Esterel-implementation_1647933593359.pdf
Esterel-primer_1647933593788.pdf
Esterel_1647933593903.pdf
HipHop1_1647933593966.pdf
HipHop2_1647933594014.pdf
Pop-PL_1647933594275.pdf
YAWL_1647933594706.pdf
subtext_1647933594780.pdf
mimos_1647933594867.pdf
Swierstra 2009 - A Functional Specification of Effects_1647933594946.pdf
ThePowerOfPi_1647933594997.pdf
dijkstra1975-guarded-commands-nondeterminism-formal-derivation-of-programs_1647933595068.pdf
gibbons2015-fp-for-dsls_1647933595264.pdf
intrinsic_def_interp_1647933595444.pdf
modular-monadic-semantics_1647933595548.pdf
nielson1992-semantics_with_applications_1647933595634.pdf
peytonjones2010-awkward-squad-io-exceptions-ffi-haskell_1647933595664.pdf
tobin-hochstadtH2012-higher-order-symbolic-execution-via-contracts_1647933595788.pdf
xu2008-static-contract-checking-for-haskell_1647933595939.pdf
drawings-crop_1647933596544.pdf
drive_1647933597098.pdf
evaluation_1647933597387.pdf
handling_1647933597574.pdf
normalisation_1647933597679.pdf
succeeding_1647933597765.pdf
value_1647933597869.pdf
main_1647933598037.pdf
fp-day_1647933598599.pdf
appendix_1647933591269.pdf
2011_Jacobs_Rutten_new_1647933591318.pdf
01-frontmatter_1647933591412.pdf
draft task laws_1647933592793.pptx