Source code for the symbolic TopHat execution engine

DOI

Source code accompanying the paper:Naus, N., Steenvoorden, T.J. & Klinik, M.A.A. (2019). A symbolic execution semantics for TopHat. In J. Stutterheim (Ed.), IFL'19: The 31st Symposium on Implementationand Application of Functional Languages, National University of Singapore, 25th – 27th September 2019 (pp. 15-44). S.l.: ACMDESCRIPTIONThis repo contains a symbolic execution engine for TopHat,a formalisation of Task-Oriented Programming.The code here is a deep embedding of the entire TopHat language,including the underlying lambda calculus,on which TopHat is built.CONTENTS- src: contains the source code of symbolic TopHat- package.yaml, stack.yaml: project files for compiling with stack- test: output of the Flight and Tax test workflows, see the paper fordocumentation on them.- More information on how to compile and run this program can be found in README.txtSHORT SUMMARYTask-Oriented Programming (TOP) is a programming paradigm that allows declarative specification of workflows. TOP is typically used in domains where functional correctness is essential, and where failure can have financial or strategical consequences. In this paper we aim to make formal verification of software written in TOP easier. Currently, only testing is used to verify that programs behave as intended. We use symbolic execution to guarantee that no aberrant behaviour can occur. In previous work we presented TopHat, a formal language that implements the core aspects of TOP. In this paper we develop a symbolic execution semantics for TopHat. Symbolic execution allows to prove that a given property holds for all possible execution paths of TopHat programs.We show that the symbolic execution semantics is consistent with the original TopHat semantics, by proving soundness and completeness. We present an implementation of the symbolic execution semantics in Haskell. By running example programs, we validate our approach. This work represents a step forward in the formal verification of TOP software.

Identifier
DOI https://doi.org/10.17026/dans-zub-xac3
Metadata Access https://phys-techsciences.datastations.nl/oai?verb=GetRecord&metadataPrefix=oai_datacite&identifier=doi:10.17026/dans-zub-xac3
Provenance
Creator N. Naus; T.J. Steenvoorden; M.A.A. Klinik
Publisher DANS Data Station Phys-Tech Sciences
Contributor RU Radboud University
Publication Year 2020
Rights CC BY 4.0; info:eu-repo/semantics/openAccess; http://creativecommons.org/licenses/by/4.0
OpenAccess true
Contact RU Radboud University
Representation
Resource Type Dataset
Format application/octet-stream; text/xml; text/plain; application/zip; text/plain; charset=US-ASCII
Size 1130; 4936; 470; 34866; 4836; 12948; 930; 148870; 634642; 31; 931; 584; 1529; 279; 432; 4911; 2431; 4020; 7537; 1275; 12288; 1584; 2254; 1377; 46; 10585; 1159; 2183; 2791; 4124; 1905; 186321; 3999; 2411; 1168; 7419
Version 2.0
Discipline Other