NaUKMA Research Papers. Computer Science
Journal Information
ISSN / EISSN
:
2617-3808 / 2617-7323
Published by: National University of Kyiv - Mohyla Academy
(10.18523)
Total articles ≅ 69
Filter:
Latest articles in this journal
Published: 10 December 2021
Naukma Research Papers. Computer Science, Volume 4, pp 78-87; https://doi.org/10.18523/2617-3808.2021.4.78-87
Abstract:
In the Address Programming Language (1955), the concept of indirect addressing of higher ranks (Pointers) was introduced, which allows the arbitrary connection of the computer’s RAM cells. This connection is based on standard sequences of the cell addresses in RAM and addressing sequences, which is determined by the programmer with indirect addressing. Two types of sequences allow programmers to determine an arbitrary connection of RAM cells with the arbitrary content: data, addresses, subroutines, program labels, etc. Therefore, the formed connections of cells can relate to each other. The result of connecting cells with the arbitrary content and any structure is called tree-shaped formats. Tree-shaped formats allow programmers to combine data into complex data structures that are like abstract data types. For tree-shaped formats, the concept of “review scheme” is defined, which is like the concept of “bypassing” trees. Programmers can define multiple overview diagrams for the one tree-shaped format. Programmers can create tree-shaped formats over the connected cells to define the desired overview schemes for these connected cells. The work gives a modern interpretation of the concept of tree-shaped formats in Address Programming. Tree-shaped formats are based on “stroke-operation” (pointer dereference), which was hardware implemented in the command system of computer “Kyiv”. Group operations of modernization of computer “Kyiv” addresses accelerate the processing of tree-shaped formats and are designed as organized cycles, like those in high-level imperative programming languages. The commands of computer “Kyiv”, due to operations with indirect addressing, have more capabilities than the first high-level programming language – Plankalkül. Machine commands of the computer “Kyiv” allow direct access to the i-th element of the “list” by its serial number in the same way as such access is obtained to the i-th element of the array by its index. Given examples of singly linked lists show the features of tree-shaped formats and their differences from abstract data types. The article opens a new branch of theoretical research, the purpose of which is to analyze the expe- diency of partial inclusion of Address Programming in modern programming languages.
Published: 10 December 2021
Naukma Research Papers. Computer Science, Volume 4, pp 16-22; https://doi.org/10.18523/2617-3808.2021.4.16-22
Abstract:
SVD (Singular Value Decomposition) algorithm is used in recommendation systems, machine learning, image processing, and in various algorithms for working with matrices which can be very large and Big Data, so, given the peculiarities of this algorithm, it can be performed on a large number of computing threads that have only video cards.CUDA is a parallel computing platform and application programming interface model created by Nvidia. It allows software developers and software engineers to use a CUDA-enabled graphics processing unit for general purpose processing – an approach termed GPGPU (general-purpose computing on graphics processing units). The GPU provides much higher instruction throughput and memory bandwidth than the CPU within a similar price and power envelope. Many applications leverage these higher capabilities to run faster on the GPU than on the CPU. Other computing devices, like FPGAs, are also very energy efficient, but they offer much less programming flexibility than GPUs.The developed modification uses the CUDA architecture, which is intended for a large number of simultaneous calculations, which allows to quickly process matrices of very large sizes. The algorithm of parallel SVD for a three-diagonal matrix based on the Givents rotation provides a high accuracy of calculations. Also the algorithm has a number of optimizations to work with memory and multiplication algorithms that can significantly reduce the computation time discarding empty iterations.This article proposes an approach that will reduce the computation time and, consequently, resources and costs. The developed algorithm can be used with the help of a simple and convenient API in C ++ and Java, as well as will be improved by using dynamic parallelism or parallelization of multiplication operations. Also the obtained results can be used by other developers for comparison, as all conditions of the research are described in detail, and the code is in free access.
Published: 10 December 2021
Naukma Research Papers. Computer Science, Volume 4, pp 44-47; https://doi.org/10.18523/2617-3808.2021.4.44-47
Abstract:
A couple of decades ago, data rates on the network were measured in kilobytes per second, and even then, online game developers had some problems with the packet loss and transmission delays. Now the transfer rate is hundreds of times higher, and the problem of delay compensation is even more relevant.For many dynamic online games, a transmission delay of as little as 20 ms can be quite noticeable, negatively affecting the gameplay and emotions of the game, which can repel players.The problem is exacerbated by the fact that along with the need to compensate for the time of delivery of packets, on the client side there are other non-network factors that are beyond the control of developers, which make the total delay 5-10 ms longer. Because of this, the desire to get rid of network delays as much and as well as possible becomes a necessity, and developers are forced to look for optimal ways to solve this problem.The problem statement is as follows: to review the causes of delays in online games and possible solu- tions, as well as the advantages and disadvantages of certain approaches. The problem is considered at the 4 levels of the TCP / IP network model, as well as at the application level. The approaches are given for the most commonly used protocols for each layer, but basic ideas can be easily transferred to other implementations.The main causes of delays under consideration: propagation delay, router queue delay, transmission delay, and processing delays.This article shows the impact of network delays on the online games and the ways to compensate for them, along with the theory of data transmission protocols in the network and the ways to solve the problems that arise in the development of algorithms.Recommendations for solving the compensation problem can be taken into account when designing and launching online shooters, strategies, etc. Thanks to the given receptions it is possible to minimize the general delay on the transfer of packets in a network, thanks to which the game on the client looks as if the player plays in the Single Player mode.
Published: 10 December 2021
Naukma Research Papers. Computer Science, Volume 4, pp 52-55; https://doi.org/10.18523/2617-3808.2021.4.52-55
Abstract:
Image segmentation is a crucial step in the image processing and analysis process. Image segmentation is the process of splitting one image into many segments. Image segmentation divides images into segments that are more representative and easier to examine. Individual surfaces or items can be used as such pieces. The process of image segmentation is used to locate objects and their boundaries.Genetic algorithms are stochastic search methods, the work of which is taken from the genetic laws, natural selection, and evolution of organisms. Their main attractive feature is the ability to solve complex problems of combinatorial search effectively, because the parallel study of solutions, largely eliminates the possibility of staying on the local optimal solution rather than finding a global one.The point of using genetic algorithms is that each pixel is grouped with other pixels using a distance function based on both local and global already calculated segments. Almost every image segmentation algorithm contains parameters that are used to control the segmentation results; the genetic system can dynamically change parameters to achieve the best performance.Similarly to image sequencing, to optimize several parameters in the process, multi-targeted genetic algorithms were used, which enabled finding a diverse collection of solutions with more variables. Multi- targeted Genetic Algorithm (MTGA) is a guided random search method that consists of optimization techniques. It can solve multi-targeted optimization problems and explore different parts of the solution space. As a result, a diversified collection of solutions can be found, with more variables that can be optimized at the same time. In this article several MTGA were used and compared.Genetic algorithms are a good tool for image processing in the absence of a high-quality labeled data set, which is either a result of the long work of many researchers or the contribution of large sums of money to obtain an array of data from external sources.In this article, we will use genetic algorithms to solve the problem of image segmentation.
Published: 10 December 2021
Naukma Research Papers. Computer Science, Volume 4, pp 72-77; https://doi.org/10.18523/2617-3808.2021.4.72-77
Abstract:
When creating a programming language, it is necessary to determine its syntax and semantics. The main task of syntax is to describe all constructions that are elements of the language. For this purpose, a specific syntax highlights syntactically correct sequences of characters of the language alphabet. Most often it is a finite set of rules that generate an infinite set of all construction languages, such as the extended Backus-Naur (BNF) form.To describe the semantics of the language, the preference is given to the abstract syntax, which in real programming languages is shorter and more obvious than specific. The relationship between abstract syntax objects and the syntax of the program in compilers solves the parsing phase.Denotational semantics is used to describe semantics. Initially, it records the denotations of the simplest syntactic objects. Then, with each compound syntactic construction, a semantic function is associated, which by denotations of components of a design calculates its value – denotation. Since the program is a specific syntactic construction, its denotation is possible to determine using the appropriate semantic function. Note that the program itself is not executed when calculating its denotation.The denotative description of a programming language includes the abstract syntax of its constructions, denotations – the meanings of constructions and semantic functions that reflect elements of abstract syntax (language constructions) in their denotations (meanings).The use of the functional programming language Haskell as a metalanguage is considered. The Haskell type system is a good tool for constructing abstract syntax. The various possibilities for describing pure functions, which are often the denotations of programming language constructs, are the basis for the effective use of Haskell to describe denotational semantics.The paper provides a formal specification of a simple imperative programming language with integer data, block structure, and the traditional set of operators: assignment, input, output, loop and conditional. The ability of Haskell to effectively implement parsing, which solves the problem of linking a particular syntax with the abstract, allows to expand the formal specification of the language to its implementation: a pure function — the interpreter.The work contains all the functions and data types that make up the interpreter of a simple imperative programming language.
Published: 10 December 2021
Naukma Research Papers. Computer Science, Volume 4, pp 108-112; https://doi.org/10.18523/2617-3808.2021.4.108-112
Abstract:
The work examines the current problems of the spread of use of logical programming in the development of commercial multi-platform software applications, tools for convenient development of a modern graphical interface to the logical programs. Libraries with similar concepts of use have been analyzed and described. The purpose of the proposed concept, which is implemented as an open source library, is described, and the advantages of the proposed tools over similar existing tools are indicated. The main feature and advantage of the proposed concept is the implementation of Prolog business logic and interface by means of JavaScript usage of child processes. The proposed concept of interface to Prolog takes full advantage of the possibilities provided by async await. A framework library has been created for the use of Logic Programming in graphical interface development without losses in the application performance. The paper describes the proposed concept and the developed framework (library). The ways to further improve the possibilities for expanding the purpose of the implemented library were identified. The directions of further simplification for programmers of integration of the graphic interface to logical programs have been defined. A significant advantage of the proposed tool is the easy-to-use functions to wrap and control the correctness of requests to the Prolog. The main goal of the library is to create an environment for the Prolog developers where they can create any type of software, which is meant to be user friendly, fast, and cross platform using modern and flexible. This concept also tries to solve disadvantages and architectural problems that were found in other libraries. The safety of library functionality has been analyzed. The concept of potential horizontal application scalability is described. Conclusions and future of libraries were introduced, in which the usage of TypeScript for type-safety and avoidance of run-time errors is mentioned. Overall, the library extends the use of Prolog beyond logical programming and takes a leap forward in its progress.
Published: 10 December 2021
Naukma Research Papers. Computer Science, Volume 4, pp 98-100; https://doi.org/10.18523/2617-3808.2021.4.98-100
Abstract:
With the rapid development of applications for mobile platforms, developers from around the world already understand the need to impress with new technologies and the creation of such applications, with which the consumer will plunge into the world of virtual or augmented reality. Some of the world’s most popular mobile operating systems, Android and iOS, already have some well-known tools to make it easier to work with the machine learning industry and augmented reality technology. However, it cannot be said that their use has already reached its peak, as these technologies are at the stage of active study and development. Every year the demand for mobile application developers increases, and therefore more questions arise as to how and from which side it is better to approach immersion in augmented reality and machine learning. From a tourist point of view, there are already many applications that, with the help of these technologies, will provide more information simply by pointing the camera at a specific object.Augmented Reality (AR) is a technology that allows you to see the real environment right in front of us with a digital complement superimposed on it. Thanks to Ivan Sutherland’s first display, created in 1968 under the name «Sword of Damocles», paved the way for the development of AR, which is still used today.Augmented reality can be divided into two forms: based on location and based on vision. Location-based reality provides a digital picture to the user when moving through a physical area thanks to a GPS-enabled device. With a story or information, you can learn more details about a particular location. If you use AR based on vision, certain user actions will only be performed when the camera is aimed at the target object.Thanks to advances in technology that are happening every day, easy access to smart devices can be seen as the main engine of AR technology. As the smartphone market continues to grow, consumers have the opportunity to use their devices to interact with all types of digital information. The experience of using a smartphone to combine the real and digital world is becoming more common. The success of AR applications in the last decade has been due to the proliferation and use of smartphones that have the capabilities needed to work with the application itself. If companies want to remain competitive in their field, it is advisable to consider work that will be related to AR.However, analyzing the market, one can see that there are no such applications for future entrants to higher education institutions. This means that anyone can bring a camera to the university building and learn important information. The UniApp application based on the existing Swift and Watson Studio technologies was developed to simplify obtaining information on higher education institutions.
Published: 10 December 2021
Naukma Research Papers. Computer Science, Volume 4, pp 64-71; https://doi.org/10.18523/2617-3808.2021.4.64-71
Abstract:
The paper investigates a possibility of developing a non-virtual hierarchy for a special case of class signature, which may possess different interpretations. The approach is similar to double dispatching in the C ++ programming language. As an alternative to polymorphism, a non-polymorphic hierarchy has been suggested based on generic programming templates. This hierarchy is based on inverse parametrization for templates enabling constructing a general scheme for the design pattern. The pattern defined a class architecture suitable for static implementation of double dispatched multimethod for a special case of signature- defined interfaces.In fact, any abstract base class (interface) with purely virtual operations must acquire a polymorphic implementation. Besides, the polymorphism itself, the dependence of a virtual function on two objects – “this” and another parameter – requires the use of double dispatch, turning a class member function into a double dispatched multimethod.A preliminary consideration deals with issues of double dispatching in the C++ programming language. Inheritance with polymorphic class member functions is used. This requires special efforts of adding to both bases and derived classes a couple of virtual functions to support dispatching. In any case, this approach, besides using virtual functions, has a disadvantage of violating one of the SOLID principles, namely the principle of dependency inversion: base classes should not depend on derivatives, which negatively affects the quality of the software.Polymorphism is usually understood as the dynamic tuning of a program to the data type of the object that the program will encounter during its execution. That is, by its nature, polymorphism is a purely dynamic characteristic. However, in C++ literature and in practice, you can come across the term “static polymorphism”.At the same time, research of possibilities of generalized programming (templates) allows transferring some dynamic problems to the static level. In particular, a variant of static polymorphism application without virtual functions can be considered.A variant of non-virtual double scheduling has been proposed, generalized in the form of a created design pattern “Signature multimethod”. The use of the newly created pattern is illustrated with an example of implementing classes of complex numbers. The absence of violations of SOLID principles is shown, and the possibility of supplementing the hierarchy with new derived classes without the need to interfere with the structure of the base class is demonstrated.The approach suggested in this work has been used in courses in object-oriented programming at the Faculty of Informatics of Kyiv-Mohyla Academy.
Published: 10 December 2021
Naukma Research Papers. Computer Science, Volume 4, pp 4-9; https://doi.org/10.18523/2617-3808.2021.4.4-9
Abstract:
The paper investigates the issue related to a possible generalization of the “state-probability of choice” model so that the generalized model could be applied to the problem of ranking alternatives, either individual or by a group of agents. It is shown that the results obtained before for the problem of multi-agent choice and decision making by majority of votes can be easily transferred to the problem of multi-agent alternatives ranking. On the basis of distributions of importance values for the problem of ranking alternatives, we can move on to similar models for the choice and voting with the help of well-known exponential normalization of rows.So we regard two types of matrices, both of which belonging to the sort of matrices named balanced rectangular stochastic matrices. For such matrices, sums of elements in each row equal 1, and all columns have equal sums of elements. Both types are involved in a two-level procedure regarded in this paper. Firstly a matrix representing all possible distributions of importance among alternatives should be formed, and secondly a “state-probability of choice” matrix should be obtained on its base. For forming a matrix of states, which belongs and the rows of which correspond to possible distributions of importance, applying pairwise comparisons and the Analytic Hierarchy Method is suggested. Parameterized transitive scales with the parameter affecting the spread of importance between the best and the worst alternatives are regarded. For further getting the matrices of choice probabilities, another parameter which reflects the degree of the agent’s decisiveness is also introduced. The role of both parameters is discussed and illustrated with examples in the paper.The results are reported regarding some numerical experiments which illustrate getting distributions of importance on the basis of the Analytic Hierarchy Process and which are connected to gaining the situation of dynamic equilibrium of alternatives, i.e. the situation when alternatives are considered as those of equal value.
Published: 10 December 2021
Naukma Research Papers. Computer Science, Volume 4, pp 113-116; https://doi.org/10.18523/2617-3808.2021.4.113-116
Abstract:
A virtual asset is a type of asset which does not have a material representation, although its value is reflected in a real currency. Due to their nature, the price of digital assets is usually highly volatile, especially with futures, which are derivative financial contracts. This is the most important contributing factor to the problem of the low usability of digital-based contracts in enterprise operations.Previously existing virtual assets included photography, logos, illustrations, animations, audiovisual media, etc. However, virtually all of such assets required a third-party platform for exchange to currency. The necessity of having a trusted by both sides mediator greatly limited the ease of use, and ultimately restricted the number of such transactions. Still, popularity of digital assets only grew, as evidenced by an explosive growth of software applications in the 2000s, as well as blockchain-based asset space in the 2010s.The newest and most promising solution developed is based on cryptoassets. Underlying usage of block- chain technology for the transactions checking and storage ensures clarity in virtual assets’ value history. Smart contracts written for the Ethereum platform, as an example, provide a highly trustful way of express- ing predefined conditions of a certain transaction. This allows safe and calculated enterprise usage, and also eliminates the need of having a mutually trusted third-party. The transactions are fully automated and happen at the same time as the pre-defined external conditions are met.Ethereum was chosen as an exemplary platform due to its high flexibility and amount of existing development. Even now, further advancements are being explored by its founder and community. Besides Ether, it is also used nоn-fungible tokens, decentralized finance, and enterprise blockchain solutions. Another important point is how much more nature friendly it is compared to main competitors, due to energy-efficiency of the mining process, enforced by the platform itself. This makes it ideal for responsible usage as well as further research.This article explores the digital assets usage, as well as explains cryptoassets technological background, in order to highlight the recent developments in the area of futures based on virtual assets, using certain Ether implementation as an example, which offers perpetual futures.