最新一期
编号 5 (2025)
PARALLEL AND DISTRIBUTED SOFTWARE
Application of monadic computations in solving numerical problems
摘要
This work is a further development of research on the use of functional programming for numerical methods. In particular, functional programming can help port programs to graphics accelerators with CUDA technology. Previous work has focused on functors (and applicative functors). The theoretical foundations of monadic computing have been outlined, but this paper focuses on its practical applications. One of the basic principles of functional programming is function composition, which allows you to build complex functions from simple ones and, thus, simplifies the writing of complex programs. Monad calculations allow you to build chains of complex calculations. Such chains are also, in a sense, a composition of functions, but at a higher, monadic level (monadic composition).
Programming and Computer Software. 2025;(5):3-10
3-10
SOFTWARE ENGINEERING, TESTING AND VERIFICATION OF PROGRAMS
SOFTWARE MODEL CHECKING FOR MEMORY CONSISTENCY VERIFICATION
摘要
Optimization transformations performed by a compiler may violate memory consistency requirements for a multithreaded program. This leads to errors, when the program behavior will differ from expected. The memory consistency requirements for a particular programming language are called the memory model. An example of an error of this class may be an incorrect change in the order of execution of instructions, which does not affect the behavior of a single- threaded program, but leads to unpredictable results in the multithreaded case. Such errors are often difficult to detect, as they occur rarely and depend significantly on the hardware and the state of the computer system. Although there are formal methods for verifying the consistency of shared memory usage, their scalability for industrial software remains a major challenge. To verify multithreaded programs, the MCC tool was previously proposed, which used a simple type of static analysis. In this article, we present a modification of the MCC tool, which implements a model verification method to verify the correctness of memory access consistency. The proposed method combines the methods of generating test programs and the method of static program analysis. The OTK tool is used to generate test programs. For static analysis, a modified version of the MCC tool is used, which checks all possible execution options for the generated test program, regardless of the specifics of a particular hardware. The tool was tested on an ARK industrial virtual machine and successfully identified two real errors in compiler optimizations.
Programming and Computer Software. 2025;(5):11-21
11-21
INFORMATION SECURITY
BUILDING AND DEVELOPING A DATA PROTECTION SERVICE SYSTEM BASED ON POST-QUANTUM CRYPTOGRAPHY SOLUTIONS
摘要
In the rapidly evolving field of quantum computing technology, Post-Quantum Cryptography (PQC) plays a pivotal role in developing secure cryptographic systems that are resistant to both quantum and classical computers. This paper focuses on the integration and implementation of PQC algorithms such as Falcon and Dilithium for digital signatures, as well as Crystal-Kyber for key encapsulation mechanisms. Through a server-client model, the study has deployed a post-quantum secure communication service achieving encryption times of less than 2 ms, signing performance up to 50 ms for small files and 11073 ms for large files, and key exchange times as low as 16 ms. These metrics provide deep insights into the resilience and security of the proposed cryptographic solutions in real-world environments.
Programming and Computer Software. 2025;(5):22–34
22–34
ENHANCING FUZZ TESTING EFFICIENCY THROUGH AUTOMATED FUZZ TARGET GENERATION
摘要
Fuzzing remains to be the most effective method for identifying security vulnerabilities in software. In the context of fuzz testing, the fuzzer supplies varied inputs to fuzz targets, which are designed to comprehensively exercise critical sections of the client code. Various studies have focused on optimizing and developing advanced fuzzers, such as AFL++, libFuzzer, Hongfuzz, syzkaller, ISP-Fuzzer, which have substantially enhanced vulnerability detection in widely used software and libraries. Nevertheless, achieving greater coverage necessitates improvements in both the quality and quantity of fuzz targets. In large-scale software projects and libraries — characterized by numerous user defined functions and data types — manual creation of fuzz targets is both labor-intensive and time-consuming. This challenge underscores the need for automated techniques not only to generate fuzz targets but also to streamline the execution and analysis of their results. In this paper, we introduce an approach to improving fuzz target generation through static analysis of library source code. The proposed method encompasses several key aspects: it analyzes source code structures to accurately construct function calls and generate fuzz targets; it maps fuzzer input data to the corresponding function parameters; it synthesizes compilation information for the fuzz targets; and it automatically collects and analyzes execution results. Experimental results on C/C++ libraries demonstrate that this approach outperforms several existing methods in the field.
Programming and Computer Software. 2025;(5):35-42
35-42
АНАЛИЗ И ТРАНСФОРМАЦИЯ ПРОГРАММ
DESIGNING OF HIGH-PERFORMANCE DIGITAL FILTERS USING THE BALANCED RESIDUE NUMBER SYSTEM MODULI SET
摘要
In this paper, we propose an approach for finding balanced special-type sets of moduli for high-speed digital signal filtering using the residue number system and utilizing the truncated multiply-accumulate blocks. The primary focus is to conduct a thorough analysis of the computational delay associated with individual residue number system moduli sets as well as their various combinations. Our proposed approach reduces the digital filtering delay by 60.85% depending on the computational range and bit-width of residue number system moduli for 16-, 24-, 32- and 48-bit filters. The proposed approach can significantly enhance the performance of digital devices where data processing speed is critical. Further research will explore applying these filters to tackle various challenges in both digital signal and image processing.
Programming and Computer Software. 2025;(5):43-55
43-55
ОПЕРАЦИОННЫЕ СИСТЕМЫ
A METHOD FOR PROCESSOR FREQUENCY MANAGEMENT BASED ON DETERMINING THE INTENSITY OF MEMORY ACCESSES
摘要
Currently, mobile devices must meet high performance requirements and provide extended battery life, which implies low power consumption. These parameters are directly dependent on the processor frequency: at higher frequencies, the processor can execute more instructions per unit of time but consumes more energy, and vice versa. This paper investigates modern process scheduling methods in the Linux operating system kernel with the aim of enhancing performance and reducing power consumption in mobile devices. The process scheduling method of the Linux OS is modified, specifically focusing on the selection of the CPU core queue for a process and the selection of processor core frequencies. The modification is based on solving a discrete bi-criteria optimization problem. The optimization criteria consider two interrelated characteristics: performance and power consumption. The core idea of the modification lies in analyzing the instructions of executing tasks to identify situations where increasing the processor frequency becomes inefficient due to frequent memory accesses. The problem is addressed with certain constraints: heterogeneous architectures are not considered; hardware multithreading is not taken into account, meaning each logical core is treated as a physical one. Based on the proposed method, software was developed and tested using 10 benchmarks from the Rodinia Benchmark Suite. This suite is used to evaluate the performance of computers across various tasks, such as general-purpose computing, image processing, and signal processing. The results of the study showed that the application of the proposed approach led to an average reduction in power consumption of 13% in mobile devices and an increase in performance of 4% compared to the existing Linux kernel scheduler.
Programming and Computer Software. 2025;(5):56–65
56–65

