Title :
On the concept of variable roles and its use in software analysis
Author :
Demyanova, Yulia ; Veith, Helmut ; Zuleger, Florian
Author_Institution :
Vienna Univ. of Technol., Vienna, Austria
Abstract :
Human written source code in imperative programming languages exhibits typical patterns for variable use, such as flags, loop iterators, counters, indices, bitvectors, etc. Although it is widely understood by practitioners that these patterns are important for automated software analysis tools, they are not systematically studied by the formal methods community, and not well documented in the research literature. In this paper, we introduce the notion of variable roles on the example of basic types (int, float, char) in C. We propose a classification of the variables in a program by variable roles which formalises the typical usage patterns of variables. We show that classical data flow analysis lends itself naturally both as a specification formalism and an analysis paradigm for this classification problem. We demonstrate the practical applicability of our method by predicting membership of source files to the different categories of the software verification competition SVCOMP 2013.
Keywords :
data flow analysis; formal specification; automated software analysis tools; classification problem; data flow analysis; human written source code; imperative programming languages; variable roles concept; Arrays; Benchmark testing; Computer languages; Radiation detectors; Reactive power; Software; Standards;
Conference_Titel :
Formal Methods in Computer-Aided Design (FMCAD), 2013
Conference_Location :
Portland, OR
DOI :
10.1109/FMCAD.2013.6679414