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
来源
2019 IEEE 15TH INTERNATIONAL SCIENTIFIC CONFERENCE ON INFORMATICS (INFORMATICS 2019) | 2019年
关键词
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
相关论文
共 13 条
  • [1] Babati B., 2017, 10 INT C APPL INF JA, P23
  • [2] Dewhurst StephenC., 2003, C++ Gotchas: Avoiding Common Problems in Coding and Design
  • [3] Johnson B, 2013, PROCEEDINGS OF THE 35TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2013), P672, DOI 10.1109/ICSE.2013.6606613
  • [4] Analysis of Motions in Comic Book Cover Art: Using Pictorial Metaphors
    Juricevic, Igor
    Horvath, Alicia J.
    [J]. COMICS GRID-JOURNAL OF COMICS SCHOLARSHIP, 2016, 6
  • [5] SYMBOLIC EXECUTION AND PROGRAM TESTING
    KING, JC
    [J]. COMMUNICATIONS OF THE ACM, 1976, 19 (07) : 385 - 394
  • [6] Meyers S., 2005, Effective C++, V3rd
  • [7] Static analysis tools as early indicators of pre-release defect density
    Nagappan, N
    Ball, T
    [J]. ICSE 05: 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2005, : 580 - 586
  • [8] Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation
    Nethercote, Nicholas
    Seward, Julian
    [J]. PLDI'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2007, : 89 - 100
  • [9] Papp D, 2018, ANN MATH INFORM, V48, P43
  • [10] Domain-specific Language Integration with Compile-time Parser Generator Library
    Porkolab, Zoltan
    Sinkovics, Abel
    [J]. ACM SIGPLAN NOTICES, 2011, 46 (02) : 137 - 146