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 条
  • [1] Denotational Semantics for Symbolic Execution
    Voogd, Erik
    Klovstad, Asmund Aqissiaq Arild
    Johnsen, Einar Broch
    [J]. THEORETICAL ASPECTS OF COMPUTING, ICTAC 2023, 2023, 14446 : 370 - 387
  • [2] TOP-DOWN MATHEMATICAL SEMANTICS AND SYMBOLIC EXECUTION
    LEVI, G
    PEGNA, AM
    [J]. RAIRO-INFORMATIQUE THEORIQUE ET APPLICATIONS-THEORETICAL INFORMATICS AND APPLICATIONS, 1983, 17 (01): : 55 - 70
  • [3] Extracting Instruction Semantics via Symbolic Execution of Code Generators
    Hasabnis, Niranjan
    Sekar, R.
    [J]. FSE'16: PROCEEDINGS OF THE 2016 24TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2016, : 301 - 313
  • [4] Sound Regular Expression Semantics for Dynamic Symbolic Execution of Java']JavaScript
    Loring, Blake
    Mitchell, Duncan
    Kinder, Johannes
    [J]. PROCEEDINGS OF THE 40TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '19), 2019, : 425 - 438
  • [5] Symbolic Types for Lenient Symbolic Execution
    Chang, Stephen
    Knauth, Alex
    Torlak, Emina
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2
  • [6] Neuro-Symbolic Execution: Augmenting Symbolic Execution with Neural Constraints
    Shiqi, Shen
    Shinde, Shweta
    Ramesh, Soundarya
    Roychoudhury, Abhik
    Saxena, Prateek
    [J]. 26TH ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2019), 2019,
  • [7] Execution Semantics for rCOS
    Wang, Zheng
    Yu, Xiao
    Pu, Geguang
    Feng, Libo
    Zhu, Huibiao
    He, Jifeng
    [J]. APSEC 2008:15TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2008, : 119 - 126
  • [8] Quantum symbolic execution
    Nan, Jiang
    Zichen, Wang
    Jian, Wang
    [J]. QUANTUM INFORMATION PROCESSING, 2023, 22 (10)
  • [9] Relational Symbolic Execution
    Farina, Gian Pietro
    Chong, Stephen
    Gaboardi, Marco
    [J]. PROCEEDINGS OF THE 21ST INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING (PPDP 2019), 2019,
  • [10] Symbolic Execution with CEGAR
    Beyer, Dirk
    Lemberger, Thomas
    [J]. LEVERAGING APPLICATIONS OF FORMAL METHODS, VERIFICATION AND VALIDATION: FOUNDATIONAL TECHNIQUES, PT I, 2016, 9952 : 195 - 211