A DSL for Resource Checking Using Finite State Automaton-Driven Symbolic Execution

  title={A DSL for Resource Checking Using Finite State Automaton-Driven Symbolic Execution},
  author={Endre Norbert F{\"u}l{\"o}p and Norbert Pataki},
  journal={Open Computer Science},
  pages={107 - 115}
Abstract Static analysis is an essential way to find code smells and bugs. It checks the source code without execution and no test cases are required, therefore its cost is lower than testing. Moreover, static analysis can help in software engineering comprehensively, since static analysis can be used for the validation of code conventions, for measuring software complexity and for executing code refactorings as well. Symbolic execution is a static analysis method where the variables (e.g… Expand

Figures from this paper


Symbolic Execution with Finite State Automata
This paper argues for an approach in which automata are in-use during the symbolic execution of Clang Static Analyzer, and uses a generic automaton that can be customized for different resources. Expand
Regular Property Guided Dynamic Symbolic Execution
This work proposes a novel method of dynamic symbolic execution (DSE) to automatically find a path of a program satisfying a regular property when exploring the path space, guided by the synergy of static analysis and dynamic analysis to find a target path as soon as possible. Expand
Checking Properties Described by State Machines: On Synergy of Instrumentation, Slicing, and Symbolic Execution
A novel technique for checking properties described by finite state machines based on a synergy of three well-known methods: instrumentation, program slicing, and symbolic execution that can be applied as a stand-alone bug finding technique, or to weed out some false positives from an output of another bug-finding tool. Expand
A closer look at software refactoring using symbolic execution
The principle of program refactoring and the look at it using symbolic execution are expressed and an answer to the question of “is it aRefactoring?” is offered using Java PathFinder and Symbolic PathFinders for the Java programming language. Expand
Symbolic execution and program testing
A particular system called EFFIGY which provides symbolic execution for program testing and debugging is described, which interpretively executes programs written in a simple PL/I style programming language. Expand
An user configurable clang static analyzer taint checker
The clang static analyzer architecture, the taint checker design considerations, some implementation details and some test cases are described to show the capability for detecting security vulnerabilities as the hearthbleed in a real and big open source project such as OpenSSL. Expand
Source language representation of function summaries in static analysis
The emphasis of the paper is on using static analysis to find errors in the programs, however the same approach can be used to optimize programs or any other tasks that static analysis is capable of. Expand
MELT - a Translated Domain Specific Language Embedded in the GCC Compiler
MELT is described, a specific Lisp-like DSL which fits well into existing GCC technology and offers high-level features (functional, object or reflexive programming, pattern matching) and is translated to C fitted for GCC internals and provides various features to facilitate this. Expand
Bypassing Memory Leak in Modern C + + Realm
Deallocation of dynamically allocated memory belongs to the responsibility of programmers in the C and C++ programming languages. However, compilers do not support the work of the programmers withExpand
Domain-specific language integration with compile-time parser generator library
A DSL integration technique for the C++ programming language based on compile-time parsing of the DSL code and a parser generator is a C++ template metaprogram reimplementation of a runtime Haskell parser generator library. Expand