Creation of a static analysis algorithm using ad hoc programming languages

Autor: Dmitry Khalansky, Arthur Lazdin, Dmitry Mouromtsev
Jazyk: angličtina
Rok vydání: 2016
Předmět:
Zdroj: Proceedings of the XXth Conference of Open Innovations Association FRUCT, Vol 420, Iss 19, Pp 72-79 (2016)
Druh dokumentu: article
ISSN: 2305-7254
2343-0737
DOI: 10.23919/FRUCT.2016.7892185
Popis: The complexity of software grows every year, and while there are many programming techniques and new languages that accommodate the need to provide high abstractions, still many languages that require attention to low-level details are in use as of yet In order to avoid tedious debugging which needs time that could be spent on dealing with high-level logic, static analysis of source code can be used to more efficiently find common problems. We have studied the process of creation of algorithms for static analysis tools by building a simple value range analysis mechanism, that is, a way to detect some cases of integers not matching a predicate involving arithmetic and comparison operations. This algorithm provides means to detect possible division by zero and integer overflow and is easily extended to find cases of out-of-bounds addressing of containers. While there is a multitude of value range analysis mechanisms that are more sophisticated by orders of magnitude, the works in which they are presented focus on the properties of the resulting tools such as estimated amount of false positives, performance, memory usage, or soundness. We, on the other hand, are going to present the process of extension of static analysis algorithm from ground up. An ad hoc programming language is developed in multiple stages to separate the creation of algorithm from numerous details of its implementation which would necessarily arise were we to build it on a real-world language.
Databáze: Directory of Open Access Journals