Open Access Open Access  Restricted Access Access granted  Restricted Access Subscription Access

Vol 43, No 1 (2017)

Article

Organizing message transmission in AFDX networks

Vdovin P.M., Kostenko V.A.

Abstract

In this paper, a problem of periodical message transmission in the onboard networks based on the Avionics Full Duplex Ethernet (AFDX) standard is formalized and an algorithm for solving this problem is proposed. The algorithm combines the greedy approach with the limited exhaustive search and consists of several procedures to solve the problem step by step with respect to the constraints imposed. The results of the experimental research aimed at investigating the effectiveness of the proposed algorithm are presented.

Programming and Computer Software. 2017;43(1):1-12
pages 1-12 views

Embedding the script language into optical simulation software

Deryabin N.B., Zhdanov D.D., Sokolov V.G.

Abstract

Integration of the Python script language into computer-aided design and simulation applications is considered. By the example of the physically correct optical simulation application, an approach based on the unified entity interface for domain objects is proposed. In particular, a scheme is proposed to extend the application with new types of parametric objects by writing extension classes that are simple in structure. Special attention is paid to making API user-friendly and ensuring compliance with the object-oriented programming principles.

Programming and Computer Software. 2017;43(1):13-23
pages 13-23 views

Improved phase unwrapping algorithm based on NVIDIA CUDA

Popov S.E.

Abstract

The paper presents an improved version of the region-growing algorithm for the interferometric phase unwrapping of the radar images. A method for packing/unpacking indices of points in a photograph that is based on bitwise operations is developed. A fast algorithm for generating a growth ring of target pixels and an algorithm for merging regions are created. Software implementation of the algorithm can be run on platforms using graphics devices that support the NVIDIA CUDA technology.

Programming and Computer Software. 2017;43(1):24-36
pages 24-36 views

Fuzzy classifier design using harmonic search methods

Hodashinsky I.A., Mekh M.A.

Abstract

A new approach to design of a fuzzy-rule-based classifier that is capable of selecting informative features is discussed. Three basic stages of the classifier construction—feature selection, generation of fuzzy rule base, and optimization of the parameters of rule antecedents—are identified. At the first stage, several feature subsets on the basis of discrete harmonic search are generated by using the wrapper scheme. The classifier structure is formed by the rule base generation algorithm by using extreme feature values. The optimal parameters of the fuzzy classifier are extracted from the training data using continuous harmonic search. Akaike information criterion is deployed to identify the best performing classifiers. The performance of the classifier was tested on real-world KEEL and KDD Cup 1999 datasets. The proposed algorithms were compared with other fuzzy classifiers tested on the same datasets. Experimental results show efficiency of the proposed approach and demonstrate that highly accurate classifiers can be constructed by using relatively few features.

Programming and Computer Software. 2017;43(1):37-46
pages 37-46 views

Measuring similarity between Karel programs using character and word n-grams

Sidorov G., Ibarra Romero M., Markov I., Guzman-Cabrera R., Chanona-Hernández L., Velásquez F.

Abstract

We present a method for measuring similarity between source codes. We approach this task from the machine learning perspective using character and word n-grams as features and examining different machine learning algorithms. Furthermore, we explore the contribution of the latent semantic analysis in this task. We developed a corpus in order to evaluate the proposed approach. The corpus consists of around 10,000 source codes written in the Karel programming language to solve 100 different tasks. The results show that the highest classification accuracy is achieved when using Support Vector Machines classifier, applying the latent semantic analysis, and selecting as features trigrams of words.

Programming and Computer Software. 2017;43(1):47-50
pages 47-50 views

Ahead-of-time compilation of JavaScript programs

Zhuykov R., Sharygin E.

Abstract

Modern virtual machines for JavaScript use just-in-time (JIT) compilation to produce binary code. JIT compilers cannot perform complex optimizations. In contrast, static compilation has unlimited capabilities for complex optimizing transformations, but it cannot be efficiently applied to dynamic languages, such as JavaScript. In this paper, a general approach to the ahead-of-time compilation of programs in dynamic languages is proposed, and this approach is used for improving two virtual machines JavaScript- Core and V8. In the implementation of the improved JavaScriptCore engine with ahead-of-time compilation, the specifics of using JavaScript programs as a part of locally stored applications for the ARM platform were taken into account. In the V8 engine for the x86-64 platform, the ahead-of-time compilation is implemented by caching an optimized internal representation in a separate file.

Programming and Computer Software. 2017;43(1):51-59
pages 51-59 views

Improving the performance of reverse debugging

Klimushenkova M.A., Dovgalyuk P.M.

Abstract

Reverse debugging is the software development technique that effectively helps fix bugs occurring at the nondeterministic program behavior. It allows one to examine the past states of the program without rerunning it. An implementation of reverse debugging based on deterministic replay in the QEMU 2.0 emulator is described. A number of techniques improving the debugging performance due to reducing the amount of saved data, optimized storage of system snapshots, indexing, and compressing of the event log are proposed. The emulator can work together with the interactive GDB debugger, which makes it possible to use the reverse-continue, reverse-nexti, reverse-stepi and reverse-finish commands in the course of debugging. The execution time of these commands depends on the frequency of recording the system’s state snapshots. An estimate of the optimal frequency for the reverse-continue command is obtained.

Programming and Computer Software. 2017;43(1):60-66
pages 60-66 views