


Vol 43, No 6 (2017)
- Year: 2017
- Articles: 5
- URL: https://journal-vniispk.ru/0361-7688/issue/view/10845
Article
Multilevel static analysis for improving program quality
Abstract
In this paper, we discuss some program analysis methods for finding defects in source code that are combined to form a multilevel analysis system. The first level consists of the checks using abstract syntax tree (AST) walks and intraprocedural dataflow; this level also builds a memory model for the subsequent levels. The memory model requires evaluating integer expressions and points-to sets. The second level is an interprocedural summary-based approach whereby the program features of interest are calculated as attributes of value classes that are formed in the program. Finally, the third level is a path-sensitive analysis that builds reachability formulas for program points and tracks the predicates that should hold for the desired features to be observable. The errors are found by testing the formulas for satisfiability with an SMT solver. All these levels of analysis are implemented in the Svace analyzer toolset, which demonstrates scalability up to millions of lines of code and precision of 60–90% true positives.



Vectorization of raster mechanical drawings on the base of ternary segmentation and soft computing
Abstract
The problem of automatic conversion of engineering drawings from paper carriers to an electronic vector form is very topical and is not solved yet at an acceptable level. The drawback inherent in many existing approaches lies in the fact that they are based on binary image segmentation. Under the conditions of low image quality, absolutely correct binarization is unattainable. Segmentation should be more flexible. It should divide pixels of the image not only into those belonging to the background and the objects but also take into account the existence of intermediate uncertain states. The purpose of this work is to increase quality of automatic vectorization of drawings having ambiguous situations: badly traced lines, areas of convergence and intersection of lines. The proposed approach includes stages of ternary segmentation of an image and fuzzy synthesis of a skeleton. Presented results of experiments show that, for grayscale and color drawing images of medium and low quality, the proposed approach provides better results than known methods.



A computational technology for constructing the optimal shape of a power plant blade assembly taking into account structural constraints
Abstract
A computational technology for constructing the optimal shape of a power plant three-dimensional blade assembly is presented. The shape of the blade assembly is optimized to improve the power characteristics of the blade assembly taking into account structural constraints. The computational technology is a unified chain of algorithms beginning with constructing a CAD model of the assembly, generation of a computational grid, simulation of the flow around the assembly using OpenFoam, and finally the animated stereo visualization of the power plant operation. The visual representation of the results in all phases is required for debugging, verification, and control. The proposed technology provides a basis for finding the optimal shape of the blade assembly by varying its key geometric parameters. Practical results of the simulation are discussed.



Query compilation in PostgreSQL by specialization of the DBMS source code
Abstract
This paper describes the development of a query compiler for the PostgreSQL DBMS based on automatic code specialization methods; these methods allow one to avoid the development and support difficulties typical for classical query compilers by dividing the compiler development problem into two independent subproblems: reduction of overhead costs and implementation of algorithmic improvements. We assert that this decomposition facilitates the solution of both the subproblems: the cost reduction can be automated, while the algorithmic improvements can be implemented in the interpreter in the DBMS implementation language. This paper presents methods for online and offline specialization, considers specifics of specialization and binding-time analysis of the PostgreSQL source code, and describes the transition to a push model of execution.



The use of vector instructions of a processor architecture for emulating the vector instructions of another processor architecture
Abstract
The complexity of software is ever increasing, and it requires more and more computational resources for its execution. A way to satisfy these requirements is the use of vector instructions that can operate with fixed-length vectors of data of the same. A method for representing vector instructions of one processor architecture in terms of the vector instructions of another architecture during the dynamic binary translation is proposed. An implementation of this method that includes the translation of vector addition and memory access increased the performance of the QEMU emulator by a factor greater than three on an artificial example and 12% on a real-life application.


