Software systems and computational methods - rubric Programming languages
ïî
Software systems and computational methods
12+
Journal Menu
> Issues > Rubrics > About journal > Authors > Policy of publication. Aims & Scope. > Council of Editors > Editorial board > About the journal > Requirements for publication > Peer-review process > Article retraction > Ethics > Online First Pre-Publication > Copyright & Licensing Policy > Digital archiving policy > Open Access Policy > Article Processing Charge > Article Identification Policy > Plagiarism check policy
Journals in science databases
About the Journal
MAIN PAGE > Journal "Software systems and computational methods" > Rubric "Programming languages"
Programming languages
Dubinin V.N., Vashkevich N.P. -
Abstract:
Bagutdinov R. - The idea of a Multi-angles system of technical vision for the formation of 3D-models of the surface of an object in the tasks of developing mobile robots pp. 1-6

DOI:
10.7256/2454-0714.2017.4.21909

Abstract: To date, the problem of developing systems, algorithms and methods for spatial orientation and navigation of robots remains one of the most urgent problems. The subject of the study are multi-angle and bipolar systems of technical vision, as well as an algorithm for the formation of 3D models of the surface of objects. The author examines in detail such aspects in the development of mobile robots, as ways of obtaining information about the three-dimensional scene, estimation of the depth of the scene, integration, the method of constructing epipolar lines, some elements of virtual reality are touched upon. Applied approaches in the work are based on the methods of digital image processing, image recognition, discrete transformations and system analysis, a method for constructing epipolar lines is given. The work also considers the formation of 3D models of the surface of the object in the systems of technical vision, applied to mobile robots, an algorithm for determining the distance to the points on the surface of the object in the systems of technical vision on the mobile robot. The results of the research can be applied in systems for modernizing the management, monitoring and processing of information, providing more accurate technical vision in the development of mobile and autonomous robots, which in turn can affect the import substitution and the overall economic component of the use and development of robotic systems and systems.
Keywords: technical vision, methods, algorithms, the development of mobile robots, forming a 3D, bipolar system, Multi-angles system, digital processing, Multi-Sensor system, robotic systems
Gusenko M. - The use of regular expressions for decompiling static data pp. 1-13

DOI:
10.7256/2454-0714.2017.2.22608

Abstract: The subject of the study is the process of decompiling the source code of programs into high-level languages. The author shows the decompilation point in the program transformation cycle which includes the processes of canonization, compilation, optimization, and decompilation. The object of the study is the compiled equivalent of the static data description on a high level programming language, which in general case is a nontrivial mapping of syntactic constructions on a high level programming language into a byte sequences located in executable program modules and constructed considering various optimization techniques for this microprocessor architecture. The paper reviews the static data decompilation process as reconstruction of the parse tree of the program, which is recovered during the analysis of its executable code and as a binary sequence in the memory of the von Neumann machine, which is analyzed by the regular expression created by the decompiler from the supposed description of the data. Regular expressions are traditionally used to analyze character sequences. The article presents another area of application of this tool – for proving the hypothesis that this byte array of the executable module is the equivalent of compiled static data. The author suggests a variant of the corresponding syntax of the regular expression language. The article shows that the proposed method can be used to further verify the quality of the decompiled code.
Keywords: object code, executable module, compilation, program language, regular expression, decompilation, reverse translation, translation, program parsing tree, data definition
Bubeev I., Dubanov A.A., Ayusheev T.V., Motoshkin P.V. - Building models of the movement of objects in the pursuit problem and solving it in the "MathCAD" computational mathematics system pp. 1-11

DOI:
10.7256/2454-0714.2019.1.28454

Abstract: This article provides a description of the developed models of the behavior of objects in the pursuit problem, as well as the pursuer and the pursued. The purpose of the conducted research is the development of algorithms for autonomous robotic complexes. In the proposed behavior models, local dynamic coordinate systems are introduced, which are formed by the direction of motion of the objects. During a certain period of time, the object must decide in which direction it should move depending on the result of the analysis of the coordinates of the second object. According to the proposed models of the behavior of objects in the pursuit problem, programs have been written in the computer math system “MathCAD”, which can be found on the author’s website. Due to the fact that the object, when moving in space, cannot instantly change the direction of motion, in our problems “inertness” is modeled using the angular velocity of rotation. The results of the programs obtained animated images of the movement of objects, references to which are given in the text of the article.
Keywords: coordinate analysis, dot basis, dynamic coordinate system, local coordinate system, object of prosecution, pursuing object, pursuit task, built-in solver, Fox, Rabbit
Gibadullin R.F. - Thread-safe Control Calls in Enriched Client Applications pp. 1-19

DOI:
10.7256/2454-0714.2022.4.39029

EDN: IAXOMA

Abstract: When the first version of the .NET Framework was released, there was a pattern in enriched client applications that focused on message processing loops, where an embedded queue was used to pass execution units from worker threads. A generalized ISynchronizeInvoke solution was then developed in which the source thread could queue a delegate to the destination thread and, as an optional option, wait for that delegate to complete. After asynchronous page support was introduced into the ASP.NET architecture, the ISynchronizeInvoke pattern did not work because asynchronous ASP.NET pages are not mapped to a single thread. This was the reason for creating an even more generalized solution – SynchronizationContext, which is the subject of the research. The article uses practical examples to show how to update UI elements from worker threads without breaking thread-safety of the user application. Solutions proposed in this aspect are: using Beginlnvoke or Invoke methods to put this delegate into the UI thread message queue; capturing the UI thread synchronization context via the Current property of the SynchronizationContext class; using the deprecated BackgroundWorker class, which provides an implicit capture of the UI thread synchronization context. The peculiarity of implementation of the SynchronizationContext abstract class in ASP.NET platform is not left unnoticed. Practical recommendations on the use of marshalling mechanism on the example of development of multiclient chat with a centralized server are formulated.
Keywords: parallel programming, NET Framework, delegates, Universal Windows Platform, synchronization context, Windows Presentation Foundation, Windows Forms, multithreading, programming, design patterns
Nuriev M.G., Belashova E.S., Barabash K.A. - Markdown File Converter to LaTeX Document pp. 1-12

DOI:
10.7256/2454-0714.2023.1.39547

EDN: SNAYLQ

Abstract: Common text editors such as Microsoft Word, Notepad++ and others are cumbersome. Despite their enormous functionality, they do not eliminate the risk of incorrectly converting the document, for example, when opening the same Word files on older or, conversely, newer versions of Microsoft Word. The way out is the use of markup languages, which allow you to mark up text blocks in order to present them in the desired style. Currently, very popular are LaTeX (a set of macro-extensions of the TeX typesetting system) and Markdown (a lightweight markup language, designed to denote formatting in plain text). So the question of converting a Markdown document into a LaTeX document is relevant. There are various tools to convert Markdown files to LaTeX document, such as Pandoc library, Markdown.lua, Lunamark and others. But most of them have redundant steps to generate the output document. This paper highlights a solution method by integrating a Markdown file into a LaTeX document, which will potentially reduce the output document generation time unlike existing solutions. The developed Markdown to LaTeX document converter will automatically generate the output document and reduce the possibility of errors when manually converting text from Markdown format to LaTeX format.
Keywords: text conversion, Overleaf, markup language, Python, converter, programming, LaTeX, Markdown, Word, regular expressions
Zaikov V.P., Prozorov P.D. - Development of a Mobile Application of the Student's Study Schedule pp. 1-9

DOI:
10.7256/2454-0714.2023.3.39609

EDN: YTYIWB

Abstract: The purpose of the work is to develop a mobile application that can provide the ability to create and edit a training schedule. The subject of development is a proprietary multiplatform mobile application using the Flutter framework. During the development, the MVC architectural pattern was used, data storage was implemented using the SQLite DBMS. The methodology of the work is based on the Scrum method, which allows you to break the workflow into sprints, each of which allowed you to conclude that it is advisable to implement the decision. Functional analysis, as the main method, allowed us to identify the basic requirements for convenient use of the program: view schedules by calendar dates, auto-fill fields, the ability to create, edit and delete educational information. A hybrid solution was chosen for implementation. Our own multiplatform mobile application was developed using the Flutter framework. During the development, the MVC architectural template was used. Data storage was implemented using SQLite DBMS. When designing the database, the following objects were defined: subject, teacher, audience, lesson type, time, date, lesson date. The developed application is ready for publication in the AppStore and Google Play. The result of its use will be improved communication with trainees, acceleration of the processes of creating and changing schedules, as well as reducing the time to download the necessary data.
Keywords: architectural template, MVC architectural pattern, data storage, sqlite dbms, database, flutter framework, mobile application, electronic schedule, student's schedule, multiplatform solution
Gibadullin R.F., Viktorov I.V. - Ambiguous Results when Using Parallel Class Methods within the .NET Framework pp. 1-14

DOI:
10.7256/2454-0714.2023.2.39801

EDN: UGEGOO

Abstract: Parallel programming is a way of writing programs that can run in parallel on multiple processors or cores. This allows programs to process large amounts of data or perform more complex calculations in a reasonable amount of time than would be possible on a single processor. The advantages of parallel programming: increased performance, load sharing, processing large amounts of data, improved responsiveness, increased reliability. In general, parallel programming has many advantages that can help improve the performance and reliability of software systems, especially with the increasing complexity of computational tasks and data volumes. However, parallel programming can also have its own complexities related to synchronization management, data races, and other aspects that require additional attention and experience on the part of the programmer. When testing parallel programs, it is possible to get ambiguous results. For example, this can happen when we optimize concatenation of float- or double-type data by means of For or ForEach methods of the Parallel class. Such behavior of a program makes you doubt about the thread safety of the written code. Such a conclusion can be incorrect and premature. The article reveals a possible reason for ambiguity of the results received by a parallel program and offers a concise solution of the question.
Keywords: Type decimal, Real numbers, Thread safety, Variability of results, Rounding errors, Multithreading, Programming language CSharp, Parallel programming, NET platform, Class Parallel
Smorkalov A.Y. -

DOI:
10.7256/2454-0714.2014.1.11328

Abstract:
Smorkalov A. Yu. - Design and architecture of the runtime environment for the programming language of virtual reality pp. 7-22

DOI:
10.7256/2454-0714.2014.1.64041

Abstract: with the increasing use of virtual worlds in education it becomes necessary not only to give teachers and students the ability to place objects in virtual reality, but also allow specifying the behavior and interaction of objects. The article describes vJS programming language, developed for virtual world vAcademia, and also an effective software architecture for vJS runtime environment. vJS is based on the JavaScript programming language enriched with a set of features making programming of virtual reality as simple as possible. vJS allows to program multiuser simulators, simulations and games, carry out software support for role-play games and so-called “serious games”. vJS as distinct from similar languages runs in each client of virtual world. It is based on specifying responds to events of 3D-objects and the program is linked to a location instead of a 3D-oject. The vJS language has more functions the result of which is automatically synchronize. The process of interaction between user and vJS-program can be recorded in form of 3D, which is of great practical importance.
Keywords: virtual worlds, virtual reality, programming language, vJs, JavaScript, simulators, simulation, synchronization, role-playing games, serious games
Kiryanov D.A. - Research of the methods of creating content aggregation systems pp. 9-31

DOI:
10.7256/2454-0714.2022.1.37341

Abstract: The subject of this research is the key methods for creating the architecture of information aggregators, methods for increasing scalability and effectiveness of such systems, methods for reducing the delay between the publication of new content by the source and emergence of its copy in the information aggregator. In this research, the content aggregator implies the distributed high-load information system that automatically collects information from various sources, process and displays it on a special website or mobile application. Particular attention is given to the basic principles of content aggregation: key stages of aggregation and criteria for data sampling, automation of aggregation processes, content copy strategies, and content aggregation approaches. The author's contribution consists in providing detailed description of web crawling and fuzzy duplicate detection systems. The main research result lies in the development of high-level architecture of the content aggregation system. Recommendations are given on the selection of the architecture of styles and special software regime that allows creating the systems for managing distributed databases and message brokers. The presented architecture aims to provide high availability, scalability for high query volumes, and big data performance. To increase the performance of the proposed system, various caching methods, load balancers, and message queues should be actively used. For storage of the content aggregation system, replication and partitioning must be used to improve availability, latency, and scalability. In terms of architectural styles, microservice architecture, event-driven architecture, and service-based architecture are the most preferred architectural approaches for such system.
Keywords: Summarization, Data sampling criteria, Content aggregation stages, Fuzzy duplicates detection, Web crawling, Distributed system architecture, Content aggregation, High load system, Poisson process, Microservices architecture
Demichev M.S., Gaipov K.E. - Search algorithm for loopless routes pp. 10-25

DOI:
10.7256/2454-0714.2020.4.33605

Abstract: The subject of this research is the search algorithm for loopless routes from transmitter to the recipient of network traffic in the conditions of a known network topology. In designing data transmission network, one of the primary problems is the formation of network traffic routing, due to the fact that heavy traffic often cause the occurrence of bottlenecks in form of the overloaded communication node, which results in speed reduction of data transmission. This article provides the search algorithm for loopless routes from transmitter to the recipient of network traffic; the result is presented as a set of loopless  routes in accordance with the specified network topology. The article also provides the software code of the algorithm written in the C# language, as well as the results of test solutions of the specified topologies. The algorithm was developed via experimental and theoretical methods, on the bases of the available route search algorithms, such as Floyd's algorithm and Dijkstra's algorithm, as well as mechanisms of static and dynamic routing, such as RIP, OSPF, and EIGRP. The novelty of this work consists in elaboration of search algorithm for loopless routes from transmitter to the recipient in the conditions of the available network topology; and in comparison of the acquired results with other methods of formation phase variables. This algorithm allows generating a list of all loopless routes within the indicated network topology between the pair of interacting nodes.
Keywords: router, graph algorithms, routing, phase variables, Loopless routes, graph, vertex, matrix, array, list
Galochkin V.I. - The tasks of the final round of the Interna tional Internet-Olympiad in Informatics and Programming for students of Russia and neighboring foreign in 2012 pp. 10-16
Abstract: The article contains the solution of all nine Olympiad tasks. The subjects of those tasks are related to the construction of rational data structures, integer arithmetic, computational geometry, graph computations, heuristics sele ction and extremes finding. An algorithm of finding the maximum bandwidth on graph edges for two nonintersecting paths if given. This algorithm with almost no change can be used to find two nonintersecting paths on a graph of minimum total cost. The article discloses a way to determine the possibility of a non-rotating separation of a flat geometric figure in a polygon shape cut. One of the problems has significantly increased the dimen sion of the source data com pared to the known problem. The article suggests a solution with two different ways of solving the task, depending on the dimension of the original data. The rest of the tasks are alike to well known, but require a different solution. Those are the problem of placing queens on the chessboard and the problem of optimum sawing lumber.
Keywords: Software, international, olympaid, internet-olympaid, student, programming, informatics, problem, algorithm, solution
Alpatov A.N., Iurov I.I. - Algorithm and software implementation of real-time collaborative editing of graphical schemes using Socket.IO library pp. 10-19

DOI:
10.7256/2454-0714.2024.1.70173

EDN: PQMMUM

Abstract: In the modern world, teamwork is becoming more and more common. Different participants may be in different places, but they still need to work together on the same project, including graphic diagrams. An important aspect of this approach is the ability to observe changes made by other participants in real time. This allows, first of all, to reduce the frequency of conflicts when simultaneously editing the same schema element. However, existing solutions for sharing data in real-time collaborative editing of graphical diagrams face a number of problems, such as delays in data transmission. The subject of research in this article is the development of a minimum viable web application that allows users to perform collaborative graphical editing of a canvas in real time. The object of the study is a model of the process of collaborative editing in real time, taking into account the resolution of emerging conflicts. The research methodology is based on a theoretical approach to identifying mathematical formulas that describe changes in the state of a document when it is jointly edited by users. The characteristics of the use of the HTTP and WebSocket protocols in multi-user client-server applications are given. To use the WebSocket protocol, the Socket.IO library is used. The application server is built using the Express framework. The authors' main contribution to the topic is a model of the real-time collaborative editing process, as well as a mechanism for detecting conflicts for any number of users and a conflict resolution function for each pair of conflicting changes when online collaborative editing of documents. Within the framework of this study, an algorithm for collaborative editing of graphic schemes in real time is additionally proposed and its implementation in the form of a software system is given. The algorithm proposed as a result of the study in the JavaScript programming language can be used as a basis for developing more rich web applications using the Socket.IO library and be the object of future research affecting multi-user interaction and real-time conflict resolution.
Keywords: algorithm, graphic scheme, JavaScript programming language, conflict resolution, conflict detection, collaborative editing, client-server application, WebSocket protocol, HTTP protocol, event driven
Savostin P.A., Efremova N.E. - Practical use of asynchronous programming in Python with Asyncio pp. 11-16

DOI:
10.7256/2454-0714.2018.2.25851

Abstract: The subject of the study is the study of the basic principles of asynchronous programming with the Asyncio package and their application for solving applied problems in Python. Since the Python interpreter uses the Global Interpreter Lock synchronization method, which limits the ability to parallelize programs in the given language and, as a result, does not allow achieving the greatest efficiency, the use of asynchronous programming technologies allows to significantly increase the speed of programs in this language, avoiding the mentioned limitations. The above described approach to creating programs is used in many tasks, for example: when creating a web server, client-server application, when extracting data from a resource by a web crawler. This paper is devoted to explaining the basic principles of working with the packageAsyncio in Python. Since the Russian-language literature on this package is often not enough to understand the basics of asynchronous programming in Python, this article gives examples of the use of this technology with explanations.
Keywords: scraping, couroutines, parsing, web-crawling, asynchronous programming, asyncio library, python programming language, GIL, parallel computing, data extraction
Viktorov I.V., Gibadullin R.F. - Syntax Tree Development for Automated Serial-to-Parallel Code Translator for Multicore Processors pp. 13-25

DOI:
10.7256/2454-0714.2023.1.38483

EDN: ANMSZI

Abstract: The emergence of multicore architectures has extremely stimulated the area of parallel computing. However, developing a parallel program and manually paralleling inherited sequential program codes are time-consuming work. The programmer should have good skills in using parallel programming methods. This fact determines the relevance of the subject of the research – the development of a serial-to-parallel code translator. The article gives a review of existing solutions in the chosen direction of research and considers their advantages and disadvantages. The principle of formation of a syntactic tree which is based on JSON format (the text format of data exchange based on JavaScript) is offered and an example of formation of a syntactic tree on the basis of this principle is considered. The result of the work is an approach for building a program platform for translating sequential code into parallel code. The distinctive feature of the developed platform is the web-service, which potentially allows you to extend the translator with other programming languages. The interaction with the programming environment is realized by means of REST-requests (HTTP-requests designed to call remote procedures). The developed software platform consists of three modules: the query processing module, which provides interaction with external systems through REST-requests; the tree building module, which forms a syntax tree on the basis of the source program code; the code conversion module, which obtains parallel program code on the basis of the syntax tree.
Keywords: programming languages, JSON format, automated translator, multithreaded programming, parallel programming, parallel computing, multicore processors, syntax tree, web service, REST requests
Malakhov S.V., Yakupov D.O., Vorobeva E.G., Nekhaev M.V., Muhtulov M.O., Novoseltseva S.V. - Development and application of operating systems and shells in mobile technologies: analysis of the history of development and current trends in the field of mobile OS and shells pp. 20-30

DOI:
10.7256/2454-0714.2024.1.70144

EDN: VPNJNF

Abstract: The objects of research are mobile operating systems and their shells. The subject of the study is the functionality of the Android, iOS and HarmonyOS operating systems, their history of creation and development trends. The authors consider in detail such aspects of the topic as the history of the creation of Android, iOS, HarmonyOS operating systems and TouchWiz, HTC Sense, MIUI and others shells, modern trends in the field of mobile operating systems, which reflect the influence of technological innovations and geopolitical aspects on the development of this sphere. They conduct a detailed analysis of the OS using performance testing applications (AnTuTu Benchmark, 3DMark Benchmark). The purpose of this research is to study the history of the development of mobile OS and shells from the origins to the current trends of technological progress. Research methods are based on the collection and systematization of information, analysis and comparison of systems, as well as performance tests. The scientific novelty of this article lies in the use of OS and shells in mobile devices that meet all the needs and requirements of the user, given the rapid development of digital technologies and their increasing introduction into our daily lives. The main conclusions of the study are the identification of the most common OS, the definition of modern trends, which include the integration of artificial intelligence, multimodality, security and privacy, as well as the expansion of flexibility and portability. The rapid development of technology and the universe of mobile applications makes mobile OS and shells key components of a successful user experience in the world of mobile technology. Understanding the history and current trends in the field of mobile operating systems and shells will allow to more accurately predict technological changes and potential impacts in the future.
Keywords: world market, artificial intelligence, operating, open source code, system, device, shell, mobile OS, operating system, software
Adiyak E.V., Berg D.B., Panachev A.A. - Modeling of the development of financial autonomy of the local communities based on experimental data in the B2B segment pp. 26-41

DOI:
10.7256/2454-0714.2020.4.34782

Abstract: This work is dedicated to examination of an important trend of recent decades – the financial autonomy of local communities. The object of this research is the enclosed on the territory production and consumption chains, which ensure certain economic autonomy to this area. The presence of enclosed balanced financial flows in these chains creates the conditions for autonomization of finances of the local community. The goal of this article consists in modelling of scenarios for the development of local community with enclosed production and consumption circuits. The research employs data analysis of bank transactions of the country’s largest bank conducted within one month between the legal entities of in city district with 75,000 population. The results of analysis reveal the cluster consisting of 59 companies (agents), the transactions between which comprise a circuit network. Within the cluster was outlined the core consisting of 12 companies that closely interact with each other. The author explores various development scenarios for the aforementioned 12 core companies to the size of cluster that consists of 59 companies. The target economic parameter is the volume of balanced payments within the network and its share within the total network turnover. The structural parameters of forming networks are calculated by SNA methodology (Social Network Analysis). The article discusses the potential of one or another development strategy for the local community in the context of autonomization of their finances.
Keywords: Transportation theory, development scenarios, modeling, experiment, finance, B2B, autonomization, local community, closed financial flows, Experimental economic models
Dagaev D.V. - Restrictive language semantics in the Multioberon system pp. 26-41

DOI:
10.7256/2454-0714.2023.1.36217

EDN: IWIODR

Abstract: The Oberon-based language and systems in implementation demonstrate a minimalist approach to achieving reliability, significantly different from most software systems that seek to maximize the number of supported functions. The requirements for critical systems for Category A nuclear power plants prohibit the use of even more programming practices. In order to meet the category A requirement of a stable number of iterations, the use of conditional loop operators is prohibited. To ensure ergodicity, the prohibition of the use of dynamic memory and recursion is used. A buffer overflow type vulnerability is closed by prohibiting the system operations module SYSTEM. Restrictions can be set to identify the problem of a fragile base class, type change operations, and the use of nested procedures. It is noted that the transition to the Oberon-07 dialect mainly concerned additional restrictions and fits well into the framework of restrictive semantics. Instead of languages and dialects for each set of requirements, the author proposes an approach of restrictive semantics, in which one language with a system of restrictions is used. A single RESTRICT statement has been introduced into the language as a declaration of restrictions on this module. The Multioberon compiler is implemented with one frontend, including a system of restrictions, and several replaceable backends. The syntactic analysis of the compiler is demonstrated by examples. The strategy of scaling the compiler depending on the system requirements is shown. The novelty of the restrictive semantics approach is the achievement of a set of minimum necessary properties that meet the requirements for the system. The use of the "from limitations" approach by system developers is an advantage, because it declares the really necessary properties of the system, linked to the requirements.
Keywords: Oberon, Component Pascal, ergodicity, SW reliability, restriction, compiler, syntax tree, semantic analysis, modularity, fragile base class
Pekunov V.V. - Object-transactional Extension of Cilk++ pp. 28-34

DOI:
10.7256/2454-0714.2022.3.38823

EDN: LBFDUK

Abstract: In this paper, we consider the problem of developing compact tools that support programming in dynamic transactional memory, implying operational generation of transactional pages, for the Cilk++ language. It is argued that such an implementation requires weakened transaction isolation. The current state of the problem is analyzed. It is noted that the existing solutions are quite cumbersome, although they allow you to work with complex data structures such as lists and trees. It is argued that it is necessary to develop new solutions in the style of minimalism based on the use of specialized classes (generating transactional pages; implementing consistent transactional variables) in combination with a set of keywords characteristic of Cilk++.   Appropriate new solutions are proposed. New syntax elements are introduced, implemented using language extension tools specific to the Planning C platform. The semantics of new language elements is described. It is noted that, unlike analogues, the developed tools allow declaratively to "build" transactions into a network (network schedule of work), which determines the order of execution of transactions and the potential for parallelism that exists at the same time. The proposed approach was tested on the example of the task of constructing a histogram. It is also mentioned about the successful solution, using the developed tools, of the problem of training an artificial neural network by the method of error back propagation and the problem of integer linear programming by the method of branches and boundaries.
Keywords: Cilk++, software transactional memory, managing the order of transactions, language extension, syntactic constructions, class library, object-oriented programming, dynamic transactional memory, programming language, transaction network
Dagaev D.V. - Instrumental approach to programming in MultiOberon system pp. 31-47

DOI:
10.7256/2454-0714.2024.1.69437

EDN: WVZVVU

Abstract: Object-oriented approaches to programming have their own scope of applicability. For a number of tasks, preference is traditionally given to classical methods of structured programming. These preferences are not uncommon in a deterministic world and in machine-representation-oriented systems. Historically, classical methods developed from von Neumann's architecture of machine representation. While solving the problems of deterministic world the advantage of approaches, opposite to OOP is shown. For example, the Oberon modular language and system in classic distribution demonstrate minimalistic way of reliability, which differs from vast majority of program systems maximizing amount of features supported. Data-oriented programming technology also steps aside traditional object-oriented paradigm because data from code separation is needed. The instrumental approach proposed by author is linking Oberon technologies with data-oriented programming, keeping interface interaction mechanisms from OOP. The instrument with no data, but associated with data is introduced instead of an object. MultiOberon restrictive semantics makes an opportunity to turn off OOP restriction and switch on instruments usage. Instrument is instantiated automatically on program module loading. Instrument is queried either by its type or by the type of record associated. All the functionality is implemented in MultiOberon compiler. Instrumental approach was used for SCADA-platform software development, which targets complex automation and diagnostics. It is used in dynamically loaded plugins for data types matched shared memory data types. The instrumental approach offers a different branch of development from OOP for the classic Oberon programming language and the classical approach
Keywords: modularity, data oriented programming, MultiOberon, Metadata, Informatika-21, SCADA, instrumental approach, compiler, restriction, Oberon
Pekunov V.V. - New built-in tools for extending the Planning C language pp. 32-41

DOI:
10.7256/2454-0714.2022.1.37240

Abstract: In this paper, the problem of developing language extensions of Planning C (a dialect of C++) is considered. The review of existing external programs and solutions built into languages that allow translating new constructions introduced into the language into the output code is carried out. Based on the analysis, it is concluded that the most natural solution built into the language will be some combination of improved regular expressions (to highlight new constructions) with code generators based on procedural and syntactic macros. At the same time, it is advisable to use elements of direct logical programming (both in macros and in regular, more precisely, regular-logical expressions).   The proposed approach makes it possible to more flexibly allocate replaceable constructs in comparison with template approaches and more simply replace them with output code in comparison with approaches based on manipulations with the syntax tree. The syntax and semantics of the proposed solutions are described. A preprocessing scheme is proposed that implements the selection of initial constructions by scanners (groups of parameterized regular logical expressions) and their replacement with output code implemented by deductive macromodules (with possible multiple matching). This scheme allows you to work with arbitrary input and output syntaxes and provides prompt input of new constructions into Planning C, which is especially valuable, for example, when prototyping new extensions. The paper contains information about the successful testing of the proposed approaches (on the development of a number of syntactically non-trivial extensions of Planning C).
Keywords: deductive macros, text transformations, procedural macros, syntactic macros, language extension, Planning C, programming language, regular expressions, logic programming, preprocessing
Kuznetsov S. - Problems of automation of the broadcasting and production complex pp. 35-44

DOI:
10.7256/2454-0714.2022.3.38800

EDN: LBYDAY

Abstract: In the TV and radio industry, the efficiency of the hardware and software of broadcast production complexes is the basis of competitive advantage, and therefore, in the context of global digitalization, television industry companies face the task of constantly improving broadcast production complexes. Such improvement is largely provided by new technologies, some of which are aimed at automating broadcasting processes. In the article, the author analyzes the existing problems of automation of broadcast production complexes and concludes that such problems are caused by the desire of TV and radio companies to replace the traditional approach to the production of programs using a team of specialists with software.   However, the effectiveness of this approach is questionable, especially if the release of the program is associated with live work, where in an uncertain situation it is not possible to react promptly to any events using automated software. Hence, automation of production processes in the field of broadcasting becomes an effective and economical technology only with the correct configuration of the software and careful calculation of automation prospects. The real prospects for automation of broadcast production complexes are currently in almost unexplored areas for the television sphere - the areas of voice control, which is based on artificial intelligence based on various algorithms for training artificial neural networks, which requires additional study and development of an appropriate model adapted to a specific task.
Keywords: digitalization, radio broadcasting, television, TV industry, automation, production of programs, broadcasting and production complex, automation processes, neural networks, voice control
Barabash K.A., Mangusheva A.R., Obukhova M.Y., Grigoryan K.A. - Development of the LISP Interpreter pp. 39-53

DOI:
10.7256/2454-0714.2022.4.39289

EDN: ZAAPXY

Abstract: The article highlights aspects of the development of the LISP interpreter. Despite the fact that LISP is not the most popular language these days (in the TIOBE index for November 2022, this language is in 30th place), the work done by the authors is relevant. Many popular ideas and software technologies today were first developed using LISP machines. The developed interpreter allows the programmer to avoid defining program elements (functions, classes, etc.) unnecessarily. Also, the development result allows you to run any LISP entity that returns a meaningful result. Modern LISP interpreters do not have the ability to overload functions, which is why users have to memorize a huge number of function names whose actions are of the same type. This greatly complicates the learning process, since you have to look for the names of primitive functions in the documentation. Because of this, most of the potential users drop out of training, returning to modern programming languages, without knowing the possibilities of the LISP language. The article reveals the creation of a LISP interpreter capable of competing with modern programming languages in terms of ease of interaction with objects. The article also suggests an approach that provides a garbage collection mechanism by counting references to objects.
Keywords: lisp interpreter, interpreter development, garbage collector, C language, programming languages, lisp programming, object-oriented programming, lateral lisp, common lisp, functional programming
Borevich E.V., Yanchus V.E. - An information model of the data structure and an experimental technique for improving the human-computer graphical interface pp. 42-54

DOI:
10.7256/2454-0714.2022.1.37730

Abstract: In the article, the authors describe the developed and tested methodology for conducting a computational experiment to study the effect of color solutions on the visual perception of a video frame by the viewer. The developed technique is designed to assess the subjective emotional reaction of the viewer that occurs at the final stage of the human visual system when perceiving visual information. The article describes methods of preparation of stimulus material, methods of conducting an experiment using a developed software module located on a network resource. The authors have developed a methodology for conducting an experiment with online testing, the information structure of the database, a questionnaire for collecting information, the form of testing by the subjects, algorithms for statistical processing of the results of the experiment. This study is based on the results of a series of experiments conducted using a software and hardware complex for fixing oculomotor activity - an eye tracker, which allows obtaining objective parametric data of a template for viewing stimulus material. The technique described in the article is an addition to the experimental study using the eytracking technology. The results of the experiment should be used in the development of textbooks on color correction, as well as in the design of control interface elements. The methodology is programmatically implemented and tested in the local network of Peter the Great St. Petersburg Polytechnic University. It is planned to finalize the Internet survey module and conduct a global experiment with subsequent statistical processing of the results.
Keywords: Information data model, Computational experiment, Post-processing, Color scheme, Incentive material, Software module, Visual system, Visual perception, Ranking method, Analysis of variance
Volushkova V.L., Volushkova A.Y. - A Single Specification Format as a Microservice API Artifact when Using API-First pp. 54-62

DOI:
10.7256/2454-0714.2022.4.39235

EDN: MFEXNN

Abstract: The object of research is the interaction protocols (API - Application Programming Interface) of microservices. The microservices API is an important development object because each microservice can be a client for any other microservice and be created by a separate team. To build a unified system of interaction between microservices, the API-First methodology for synchronizing communication protocols for server applications was used. The aim of the work is to create a way to develop API microservices of server java applications using spring-boot, spring-web, openapi-generator, springdoc libraries. The method is based on the fact that the API is the most important part of the product and therefore is created at the initial design stage. An approach based on a single microservices API and TDD testing technique is proposed, which increases the efficiency of managing the development of server-side java applications. The microservices API is built using the specification as the API artifact. The developed technique allows: use the created API by another team, regardless of the development language; increase the productivity of development teams; to carry out a qualitative description of methods and models; reduce the amount of routine code by generating code from the specification; identify API design errors earlier than with the standard development approach (API after implementation) by applying TDD and working with the API before it is implemented.
Keywords: Rest client, development cycle, Application server, microservices, TDD technique, testing, code-frist, API-First, API, spring
Zdor D.V., Gornostaeva T.N. - Analysis of the methods for competing recursion in recursive riles in the logic programming language Prolog pp. 68-76

DOI:
10.7256/2454-0714.2021.4.35383

Abstract: One of the developing trends in programming is the logic programming associated with the implementation of tools for creating artificial intelligence. One of such programming languages is the nonprocedural declarative logic programming language Prolog. This article is dedicated to the use of recursive rules in Prolog software. The goal of this work lies in analysis of the methods for completing recursive calls in recursive rules, as well as in explication of the use of such methods on the examples of programs with recursion. The author explores the specialized literature on the topic, generalized and systematizes the data, as well as tested the programs and the progress of their implementation. Recursive rule in the Prolog software sets an infinite cycle of repetition of predicates. For completing the recursive cycle, it is necessary to set a condition within the program that would end the cycle. The article examines the variants of organizing recursions with the completion of infinite cycle. The examples used in the article allows using them as the basis for programming in language Prolog for solving similar tasks. The acquired results are valuable for further development of the use of recursive predicates in logic programming languages.
Keywords: search with a refund, mapping processes, execution mechanism, Prolog, recursion end condition, recursive rule, recursion, logic programming, predicates, logical statements
Tyugin D. - Development of a parallel algorithms in the applied hydrophysical problem using modern code profiling tools pp. 70-80

DOI:
10.7256/2454-0714.2019.1.29554

Abstract: In this article the author considers the development of a parallel algorithm to speed up calculations in an applied scientific problem. Particular attention is paid to software code profiling tools. The use of such tools allows you to quickly select portions of code for parallelization. The libraries and technologies of parallel code implementation for multiprocessor systems with shared memory are considered. Discusses approaches to writing programs based on threads and task-based. The stages of developing a parallel code by changing the sequential code are considered. An analysis of the execution time of application functions using the VTune tool is given. A method for parallelization of tasks based on the TBB library is proposed. Shows the implementation of the code allows you to perform parallel calculations. As a result of this work, a new parallel algorithm was developed to solve the problem of finding the characteristics of internal waves in the ocean within the framework of the weakly nonlinear theory. The obtained algorithm was analyzed, metrics of efficiency were obtained. Acceleration has been achieved, which allows making calculations of maps of two-dimensional distributions 39 times faster than a sequential algorithm on a 56 nuclear computing server. The results obtained will be applied further in the study of internal waves in the ocean, as well as will increase the effectiveness of research in the calculation of maps of parameters of a larger scale.
Keywords: numeric simulation, internal waves, multicore systems, code profiler, parallel technologies, performance analysis, parallel algorithms, Gardner equation, numeric model, hydrological data
Korchagin V.D. - Analysis of modern SOTA-architectures of artificial neural networks for solving problems of image classification and object detection pp. 73-87

DOI:
10.7256/2454-0714.2023.4.69306

EDN: MZLZMK

Abstract: The scientific research is focused on conducting a study of current artificial neural network architectures in order to highlight the advantages and disadvantages of current approaches. The relevance of the research relies on the growing interest in machine learning technologies and regular improvement of computer vision algorithms.Within the scope of this paper, an analytical study of the advantages and disadvantages of existing solutions has been conducted and advanced SOTA architectures have been reviewed. The most effective approaches to improve the accuracy of basic models have been studied. The number of parameters used, the size of the training sample, the accuracy of the model, its size, adaptability, complexity and the required computational resources for training a single architecture were determined.Prospects for further research in the field of hybridization of convolutional neural networks and visual transformers are revealed, and a new solution for building a complex neural network architecture is proposed.In the framework of the present research work, a detailed analysis of the internal structure of the most effective neural network architectures.Plots of the accuracy dependence on the number of parameters used in the model and the size of the training sample are plotted. The conducted comparative analysis of the efficiency of the considered solutions allowed to single out the most effective methods and technologies for designing artificial neural network architectures. A novel method focused on creating a complex adaptive model architecture that can be dynamically tuned depending on an input set of parameters is proposed, representing a potentially significant contribution to the field of adaptive neural network design.
Keywords: new method, detection, classification, computer vision, artificial intelligence, hybrid neural networks, machine learning, analysis, convolutional neural netwroks, visual transformers
Smorkalov A.Y., Kirsanov A.N. -

DOI:
10.7256/2454-0714.2014.2.12679

Abstract:
Smorkalov A.Yu., Kirsanov A.N. - Bots behavior programming for virtual reality pp. 149-159

DOI:
10.7256/2454-0714.2014.2.65258

Abstract: nowadays the field of application of virtual worlds in education grows steadily. Training systems, simulators, role and serious games are the most successful solutions for education in virtual environments. An important part of the above mentioned approaches to education is usage of pedagogical agents (bots), participating in the learning process and helping students to complete educational assignment. The vAcademia virtual world supports implementations of active learning forms through vJS programming language, however bots programming and using was so far unavailable. The article reviews system of bot managing, which allows each user of vAcademia to place and to configure bots, as well as to set their behavior via extended vJS language. Programming of bots’ behavior is based on the objectoriented approach, auto synchronized functions, specifying sequences of asynchronous actions and organization of bot-user interaction through voiced dialogs with pre-defined multiple-choice answers. The interaction with preprogrammed bots can be saved in the form of 3D-record for further viewing, which is highly important in sphere of education.
Keywords: virtual worlds, virtual environments, learning tools, virtuality, bots, programming languages, scripts, built-in programming languages, synchronization, avatars
Other our sites:
Official Website of NOTA BENE / Aurora Group s.r.o.