Journal of Siberian Federal University. Engineering & Technologies / Static Analysis Technique for Searching Natural Semantic Defects of Program Objects and Software Implementation of This Approach Based on the LLVM Compiler Infrastructure and the Clang Frontend

Full text (.pdf)
Issue
Journal of Siberian Federal University. Engineering & Technologies. 2018 11 (7)
Authors
Victorov, Dmitry S.; Zhidkov, Evgeny N.; Zhidkov, Roman E.
Contact information
Victorov, Dmitry S.: Military Academy of Aero-Space Defense named after the Marshal of Soviet Union G.K. Zhukov 50 Zhigareva Str., Tver, 170022, Russia; Zhidkov, Evgeniy N.: Military Academy of Aero-Space Defense named after the Marshal of Soviet Union G.K. Zhukov 50 Zhigareva Str., Tver, 170022, Russia; Zhidkov, Roman E.: Military Academy of Aero-Space Defense named after the Marshal of Soviet Union G.K. Zhukov 50 Zhigareva Str., Tver, 170022, Russia;
Keywords
LLVM; Clang; automated systems; software; program object; verification; static analysis; functional defects; abstract syntax tree; LLVM; Clang
Abstract

The article proposes a static analysis technique for searching functional software defects. Development is caused by the need to create high quality domestic military automated system software in conditions of temporary and financial constraints. The use of static analysis makes it possible to automate the process of error detection and it allows to localizing defects simply. The priority object of inspections should be special software for newly created automated systems because it is exclusively, scale and logical complexity. An approach based on controlling the implementation of principle of dimensional homogeneity of the physical equations presented in the software. For this purpose, program objects identifiers are assigned an invariable attribute in the form of a physical dimension vector of interpreted value. The set of all vectors forms a semantic domain used in verifying the relationships between program objects by analogy with the analysis of dependencies in the abstract interpretation. The technique uses a program internal representation for calculations of derivate vectors on the basis of operations with initial program objects. The software implementations uses the LLVM compiler and Clang frontend to translate code in C, C++, Objective-C. Clang API internal representation in the form of abstract syntax tree is modified to store data about program objects vectors

Pages
801-810
Paper at repository of SibFU
https://elib.sfu-kras.ru/handle/2311/109150

Creative Commons License This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).