A symbolic execution semantics for TopHat

被引:1
|
作者
Naus, Nico [1 ]
Steenvoorden, Tim [2 ]
Klinik, Markus [2 ]
机构
[1] Open Univ, Comp Sci, Heerlen, Netherlands
[2] Radboud Univ Nijmegen, Software Sci, Nijmegen, Netherlands
关键词
D O I
10.1145/3412932.3412933
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Task-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.
引用
收藏
页数:11
相关论文
共 50 条
  • [41] Symbolic Execution Debugger (SED)
    Hentschel, Martin
    Bubel, Richard
    Haehnle, Reiner
    [J]. RUNTIME VERIFICATION, RV 2014, 2014, 8734 : 255 - 262
  • [42] Directed Incremental Symbolic Execution
    Person, Suzette
    Yang, Guowei
    Rungta, Neha
    Khurshid, Sarfraz
    [J]. PLDI 11: PROCEEDINGS OF THE 2011 ACM CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2011, : 504 - 515
  • [43] Directed Incremental Symbolic Execution
    Yang, Guowei
    Person, Suzette
    Rungta, Neha
    Khurshid, Sarfraz
    [J]. ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2014, 24 (01)
  • [44] SYMBOLIC EXECUTION SYSTEMS - A REVIEW
    COWARD, PD
    [J]. SOFTWARE ENGINEERING JOURNAL, 1988, 3 (06): : 229 - 239
  • [45] Symbolic Execution for Java']JavaScript
    Santos, Jose Fragoso
    Maksimovic, Petar
    Grohens, Theotime
    Dolby, Julian
    Gardner, Philippa
    [J]. PPDP'18: PROCEEDINGS OF THE 20TH INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING, 2018,
  • [46] SYMBOLIC EXECUTION AND PROGRAM TESTING
    KING, JC
    [J]. COMMUNICATIONS OF THE ACM, 1976, 19 (07) : 385 - 394
  • [47] Symbolic execution formally explained
    de Boer, Frank S.
    Bonsangue, Marcello
    [J]. FORMAL ASPECTS OF COMPUTING, 2021, 33 (4-5) : 617 - 636
  • [48] A Memory Model for Symbolic Execution
    Dai Ziying
    Mao Xiaoguang
    Ma Xiaodong
    Wang Rui
    [J]. 2009 INTERNATIONAL FORUM ON COMPUTER SCIENCE-TECHNOLOGY AND APPLICATIONS, VOL 1, PROCEEDINGS, 2009, : 20 - 24
  • [49] Dynamic Symbolic Execution for Polymorphism
    Li, Lian
    Lu, Yi
    Xue, Jingling
    [J]. CC'17: PROCEEDINGS OF THE 26TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION, 2017, : 120 - 130
  • [50] Symbolic execution of programs with strings
    Redelinghuys, Gideon
    Visser, Willem
    Geldenhuys, Jaco
    [J]. PROCEEDINGS OF THE SOUTH AFRICAN INSTITUTE FOR COMPUTER SCIENTISTS AND INFORMATION TECHNOLOGISTS CONFERENCE, 2012, : 139 - 148