Concept of the course "Numerical methods in object methodology"

2022 ◽  
Vol 1 ◽  
pp. 01003 ◽  
Author(s):  
Aleksandr P. Polishchuk ◽  
Sergei A. Semerikov

The tasks for which computers were created - routine calculations of an industrial, scientific and military nature - required the creation of a whole class of new methods focused not on manual but on machine calculations. The first programming languages did not have convenient means for reflecting such objects often used in computational mathematics as matrices, vectors, polynomials, etc. Further development of programming languages followed the path of embedding mathematical objects into languages as data types, which led to their complication. So, for example, an attempt to make a universal language Ada, in which there are even such data types as dictionaries and queues, led to the fact that the number of keywords in it exceeded 350, making it almost unusable for learning and use. The compromise solution between these two extremes can be the following: let the programmer himself create the data types that he needs in his professional work. Programming languages that implement this approach are called object-oriented. This, on the one hand, makes it possible to make the language quite easy by reducing the number of keywords, and on the other, expandable, adapting to specific tasks by introducing keywords for creating and using new data types.

2021 ◽  
Vol 4 ◽  
pp. 78-87
Author(s):  
Yury Yuschenko

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.


Author(s):  
Sergey Yu. Smogluk ◽  
Eugeniy N. Garin ◽  
Daria S. Romanova

The article presents a programming paradigm that defines a new style of program development called procedural-parametric programming (PPP). The paradigm is based on parametric polymorphism, which allows the procedures to accept and process variant data types without the algorithmic choice of alternatives within these procedures. In procedural programming languages, such types are described by unions (union in C, C++) or variant entries (in Pascal). Algorithmic processing of variants is carried out by means of conditional operators or switches. This approach is a development of procedural programming methods and acts as an alternative to object-oriented programming. The procedural-parametric paradigm of programming is an extension of the procedural approach. It makes possible to increase the capabilities of the latter by supporting data polymorphism. The application of the proposed approach will allow to increase the functional capabilities of the procedures without making any internal algorithmic changes. Procedural-parametric programming can be used both independently and in combination with other programming paradigms


2021 ◽  
Vol 297 (3) ◽  
pp. 34-38
Author(s):  
ANDRIY KOVAL ◽  
OKSANA YASHYNA ◽  
GALINA RADELCHUK ◽  
YURII FORKUN ◽  

This article describes two types of paradigms – object-oriented and functional paradigms. Paradigm stands for a style and an approach to perform any kind of coding activities. Relevance of usage for each of them as well as their differences and benefits were analyzed. Regardless of ever-changing tendencies in popularity of both paradigms it is impossible to acknowledge any of them to deprecate another one. Although object-oriented programming as well as functional programming are essential in their approaches they have the same goal – to make comprehensive programs without possible mistakes. OOP follows imperative programming model which is based on a set of primitives the given language provides. Functional paradigm is intertwined with declarative style which imply what is to be done, but not how to do it. We may come to conclusion that the consensus is that object oriented paradigm and functional paradigm can be effective in a peculiar situation. Therefore, developers are to choose and pick the programming paradigm for a given task to make a process as simple and productive as it can be. Object-oriented programming languages are a good choice when you have a fixed set of operations on things and you add new things for your code to evolve. You can achieve it by adding new classes that implement existing methods while existing classes remain the same. Functional languages may be a better choice if you have a fixed set of things and you add new operations on existing things for your code to evolve. You can achieve it by adding new functions which are to be computed with existing data types while existing functions remain the same. Object-oriented programming as well as functional programming has its place in modern approaches to software development. Meanwhile the functional programming is being reconsidered and used much more often due to Big Data Technologies while object-oriented programming remains popular to perform representation of real-life objects in the code.


Author(s):  
Tamara Oleshko ◽  
Iryna Heiets ◽  
Dmytro Kvashuk

The article considers the possibilities of automated use of robotic equipment in order to form an infrastructure for moving goods at enterprises. Areas of application of algorithmic programming languages of object-oriented type in robotics are investigated. The algorithm of operation of a transport vehicle, the movement, which is based on the recognition of the line of motion, describing the route of movement, is presented. The analysis of the peculiarities of the implementation of such problems with the use of OpenCv software library was carried out. The structure of the vehicle is proposed, in particular: its driving mechanisms, control scheme, engines and wheelbase. Further development was made to the algorithms for the management of crawler lorries and the ways of their program realization in various spheres of entrepreneurial activity, where there is a need for the transfer of cargoes in the ordinary areas (construction sites, forest lands, open warehouses, airports, etc.). Based on the proposals for creating a cargo robot that can be moved according to a given route, the model of control system of conveyor systems, which solve the issues of automation of technological processes in the part of the addition of conveyor systems, is presented. The analysis of literary sources describing the necessity of creating mobile conveyor systems in production, which enables to quickly re-equip production processes to unforeseen needs, was carried out.


1994 ◽  
Vol 05 (02) ◽  
pp. 179-208 ◽  
Author(s):  
Karl J. Lieberherr ◽  
Cun Xiao

Although numerous researchers have pointed out that object-oriented software is easier to extend than software that is not written in an object-oriented style, object-oriented software is still rigid to adapt and maintain. This paper builds on an extension of object-oriented programming which is called adaptive programming. Adaptive programming allows the programmer to write more extensible software called adaptive software without committing to a specific input language. After writing an adaptive program, the programmer selects a specific input language and partially evaluates the program into an executable program. This paper formally studies class dictionaries and informally describes how adaptive programs are partially evaluated by freezing class dictionaries. A class dictionary is mapped into classes of an object-oriented programming language, for example, C++, CLOS etc. A class dictionary defines both a set of objects and a set of sentences (a language). We derive a set of restrictions on class dictionaries which permit a simple printing algorithm and its inverse, a parsing algorithm, to be bijection functions between objects and sentences of the same class. We review propagation patterns for describing adaptive object-oriented software at a higher level of abstraction than the one used by today’s object-oriented programming languages. A propagation pattern is an adaptive program which defines a family of programs. From the family, we can select a member by choosing a class dictionary. The theory presented in this paper has been successfully implemented and used in the Demeter Tools/C++. The system consists of a set of tools that facilitate software evolution.


2002 ◽  
pp. 250-292
Author(s):  
Jochens Rasch ◽  
Hans-Joachim Klein

The Entity-Relationship (ER) model (Chen, 1976) is frequently used for the specification of conceptual database schemas. Entity types and relationship types are the building blocks provided by this data model. A major objective of conceptual database design (see e.g. Batini, Ceri, & Navathe, 1992) is to define entity types and relationship types in such a way that they represent meaningful units of information with respect to the semantics of the modeled application domain. Object types in object-oriented data models are comparable to entity types as far as structural aspects are concerned. However, the ER model explicitly supports relationship types, whereas different approaches are found in object-oriented data models: On the one hand, relationship types may be represented by reference attributes, which means that they are part of the object type itself. This approach, for example, is often found in programming languages. On the other hand, they may be represented explicitly by means of a separate concept as in the ER model. In the latter case there is a close resemblance between entity types and object types. Object types represent sets of objects which are of relevance in the application domain, while relationship types represent relationships between objects.


1980 ◽  
Vol 9 (118) ◽  
Author(s):  
Peter D. Mosses

<br /> It is suggested that denotational semantic definitions of programming languages should be based on a small number of abstract data types, each embodying a fundamental concept of computation. Once these fundamental abstract data types have been implemented in a particular target language (e.g. stack-machine code), it is a simple matter to construct a correct compiler for any source language from its denotational semantic definition. The approach is illustrated by constructing a compiler similar to the one which was proved correct by Thatcher, Wagner <em>Et</em> Wright ( 1979). Some familiarity with many-sorted algebras is presumed.


2019 ◽  
Author(s):  
Costanza Pascal ◽  
Herzeel Charlotte ◽  
Verachtert Wilfried

AbstractBackgroundelPrep is an established multi-threaded framework for preparing SAM and BAM files in sequencing pipelines. To achieve good performance, its software architecture makes only a single pass through a SAM/BAM file for multiple preparation steps, and keeps sequencing data as much as possible in main memory. Similar to other SAM/BAM tools, management of heap memory is a complex task in elPrep, and it became a serious productivity bottleneck in its original implementation language during recent further development of elPrep. We therefore investigated three alternative programming languages: Go and Java using a concurrent, parallel garbage collector on the one hand, and C++17 using reference counting on the other hand for handling large amounts of heap objects. We reimplemented elPrep in all three languages and benchmarked their runtime performance and memory use.ResultsThe Go implementation performs best, yielding the best balance between runtime performance and memory use. While the Java benchmarks report a somewhat faster runtime than the Go benchmarks, the memory use of the Java runs is significantly higher. The C++17 benchmarks run significantly slower than both Go and Java, while using somewhat more memory than the Go runs. Our analysis shows that concurrent, parallel garbage collection is better at managing a large heap of objects than reference counting in our case.ConclusionsBased on our benchmark results, we selected Go as our new implementation language for elPrep, and recommend considering Go as a good candidate for developing other bioinformatics tools for processing SAM/BAM data as well.


2020 ◽  
Vol 963 (9) ◽  
pp. 30-43
Author(s):  
M.Yu. Orlov

Studying the current state of cartography and ways of further developing the industry, the role of the map in the future of the society, new methods of promoting cartographic products is impossible without a deep scientific analyzing all the paths, events and factors influencing its formation and development throughout all the historic steps of cartographic production in Russia. In the article, the history of cartographic production in Russia is considered together with the development of private, state and military cartography, since, despite some differences, they have a common technical, technological and production basis. The author describes the stages of originating, formation and growth of industrial cartographic production from the beginning of the XVIII century until now. The connection between the change of political formations and technological structures with the mentioned stages of maps and atlases production is considered. Each stage is studied in detail, a step-by-step analysis was carried out, and the characteristics of each stage are described. All the events and facts are given in chronological order, highlighting especially significant moments influencing the evolution of cartographic production. The data on the volumes of printing and sales of atlases and maps by commercial and state enterprises are presented. The main trends and lines of further development of cartographic production in Russia are studied.


2015 ◽  
Vol 131 ◽  
pp. 333-342 ◽  
Author(s):  
Victor Berdonosov ◽  
Alena Zhivotova ◽  
Tatiana Sycheva

Sign in / Sign up

Export Citation Format

Share Document