Symbolic Execution with Finite State Automata

被引:0
|
作者
Fulop, Endre [1 ,2 ]
Pataki, Norbert [1 ,2 ]
机构
[1] Eotvos Lorand Univ, Budapest, Hungary
[2] 3in Res Grp, Fac Informat, Martonvasar, Hungary
关键词
static analysis; Clang; finite state automata; domain-specific language;
D O I
10.1109/informatics47936.2019.9119287
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Static analysis is an essential way to find code smells and bugs because it checks the source code without execution. Moreover, static analysis can help in software engineering comprehensively, since static analysis can be used for the validation of code style, evaluate software complexity and execute code refactorings, as well. Symbolic execution is a static analysis method where the variables are interpreted with symbolic values. Clang Static Analyzer is a powerful symbolic execution engine based on the Clang compiler infrastructure that can be used with C, C++ and Objective-C. Validation of resources' usage (e.g. files, memory) requires finite state automata (FSA) for modeling the state of resource (e.g. locked or acquired resource). In this paper, we argue for an approach in which automata are in-use during the symbolic execution. In this approach, a generic automaton is used. The generic automaton can be customized for different resources. We present our domain-specific language to define automata. Our tool parses the automaton and generates checker for the symbolic execution engine. We present some generated checkers, as well.
引用
收藏
页码:293 / 297
页数:5
相关论文
共 50 条
  • [1] Automata Learning for Symbolic Execution
    Aichernig, Bernhard K.
    Bloem, Roderick
    Ebrahimi, Masoud
    Tappler, Martin
    Winter, Johannes
    PROCEEDINGS OF THE 2018 18TH CONFERENCE ON FORMAL METHODS IN COMPUTER AIDED DESIGN (FMCAD), 2018, : 130 - 138
  • [2] Improving symbolic automata learning with concolic execution
    Clun, Donato
    van Heerden, Phillip
    Filieri, Antonio
    Visser, Willem
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING (FASE 2020), 2020, 12076 : 3 - 26
  • [3] Symbolic execution of Reo circuits using constraint automata
    Pourvatan, Bahman
    Sirjani, Marjan
    Hojjat, Hossein
    Arbab, Farhad
    SCIENCE OF COMPUTER PROGRAMMING, 2012, 77 (7-8) : 848 - 869
  • [4] A Symbolic Decision Procedure for Symbolic Alternating Finite Automata
    D'Antoni, Loris
    Kincaid, Zachary
    Wang, Fang
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2018, 336 : 79 - 99
  • [5] Extended symbolic finite automata and transducers
    D'Antoni, Loris
    Veanes, Margus
    FORMAL METHODS IN SYSTEM DESIGN, 2015, 47 (01) : 93 - 119
  • [6] Extended symbolic finite automata and transducers
    Loris D’Antoni
    Margus Veanes
    Formal Methods in System Design, 2015, 47 : 93 - 119
  • [7] Efficient State Merging in Symbolic Execution
    Kuznetsov, Volodymyr
    Kinder, Johannes
    Bucur, Stefan
    Candea, George
    ACM SIGPLAN NOTICES, 2012, 47 (06) : 193 - 204
  • [8] State Merging with Quantifiers in Symbolic Execution
    Trabish, David
    Rinetzky, Noam
    Shoham, Sharon
    Sharma, Vaibhav
    PROCEEDINGS OF THE 31ST ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2023, 2023, : 1140 - 1152
  • [9] A DSL for Resource Checking Using Finite State Automaton-Driven Symbolic Execution
    Fulop, Endre
    Pataki, Norbert
    OPEN COMPUTER SCIENCE, 2020, 11 (01) : 107 - 115
  • [10] Forward Bisimulations for Nondeterministic Symbolic Finite Automata
    D'Antoni, Loris
    Veanes, Margus
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, TACAS 2017, PT I, 2017, 10205 : 518 - 534