Article information

2016 , Volume 21, ¹ 3, p.56-69

Legalov A.I., Kosov P.V.

Evolutionary extension of programs using the procedural-parametric approach

Methods of evolutionary expansion of the previously written code are widely used during development of large software systems. Evolutionary expansion increases the reliability of programs and allows to avoid mistakes that can be made by modification of already functioning modules. Methods of evolutionary development are widely used in various programming paradigms. Modern software developers employ their own opportunities for paradigms and their special libraries. The latter includes design patterns.

Procedural-parametric programming paradigm was proposed to increase the flexibility of the process of evolutionary expansion of programs. Specific feature of this paradigm lies in separation for presentations of data and procedures, which in this case can be expanded through the creation of new specializations and their handlers without alteration of the previously written code. This provides evolutionary support for multiple polymorphism used in multimethods without direct analysis of types of arguments. The special programming languages were developed for ensuring this support. However extensive application of popular languages that are supported by a huge number of different libraries prevents expansion of this approach.

To increase the popularity of the procedure-parametric approach we propose methods of its application in the modern multiparadigm programming languages. The article presents examples of the implementation of evolutionary extensible and automatically installed data. It is shown how procedures and functions which support not only single, but also multiple polymorphism could be created and painlessly expanded.

Examples of the implementation of scalable data and procedures that use parametric arrays are presented. The demonstration of a flexible development of a program is presented for some typical extension related situations. It is shown that the proposed approach provides more flexible development of a code compared to traditional programming methods. The proposed approach is used in the implementation of the code generator for procedural-parametric programming language. It also becomes the basis of the library, which supports the evolutionary developed programs. The proposed approach is realized with the help of C++ programming language.

[full text]
Keywords: evolutionary software development, programming paradigms, proceduralparametric programming, multiparadigm style

Author(s):
Legalov Alexander Ivanovich
Dr. , Professor
Position: Head of Chair
Office: Siberian Federal University
Address: 660041, Russia, Krasnoyarsk, 79 Svobodny pr.
E-mail: legalov@mail.ru

Kosov Pavel Vladimirovich
Position: Programmer
Office: Glyph Worlds
Address: 660001, Russia, Krasnoyarsk, 1k, 4-th Dalnevostochnaya st.
E-mail: kosov_@mail.ru

References:
[1] Erich Gamma, Richard Helm, Ralph Johnson, John Vissides Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional; 1994: 353.

[2] Alexandrescu, A. Modern C++ Design: Generic Programming and Design Patterns Applied. Addison-Wesley Professional; 2001: 352.

[3] Meyers, S. More effective C++: 35 New Ways to Improve Your Programs and Designs. Addison-Wesley Professional; 1995: 336.

[4] Legalov, A.I. OOP, Multimethods and Pyramidal Evolution. Open Systems Journal. 2002; (3):41-45. (In Russ.)

[5] Legalov, A.I. Protsedurno-parametricheskaya paradigma programmirovaniya. Vozmozhna li al'ternativa ob"ektno-orientirovannomu stilyu? [Procedurally-parametric programming paradigm. Is it possible to be as an alternative to the object-oriented style?]. Krasnoyarsk: VINITI; 2000: 43. (In Russ.)

[6] Legalov, A.I., Shvetcs, D.A. Procedural language with support for evolutionary design. Science Bulletin the NSTU. 2003; 2(15):25-38. (In Russ.)

[7] Legalov, A.I. Multimethods and paradigms. Open Systems Journal. 2002; (5):33-37. (In Russ.)

[8] Legalov, I.A. Using of generalized records in procedural-parametric programming language. Science Bulletin the NSTU. 2007; 3(28):25-37. (In Russ.)

[9] Legalov, A.I. Evolution of multi methods in procedural approach. Available at: http://www.softcraft.ru/coding/evp/evp.shtml. (In Russ.)

[10] Legalov, A.I., Legalov, I.A., Solokha, A.F. Evolutionary expansion of programs for different programming paradigms. Proc. of 16th Baikal’s All-Russian Conf. «Informational and mathematical technologies in science and management». Vol 3. Irkutsk: ISEM SO RAN; 2011: 42-49. ISBN 978-5- 93908-094-1. (In Russ.)

[11] Alger, J. C++ for Real Programmers. AP Professional; 1998: 388.

[12] Legalov A.I., Kosov P.V. Features of the organization and the use of generalized records in procedurally-parametric programming language «Alien». Proc. of 13th All-Russian Scientific-practical Conf. «Problems of Regional Informatization 2013». Krasnoyarsk: IVM SO RAN; 2013: 187-194. ( In Russ.)

Bibliography link:
Legalov A.I., Kosov P.V. Evolutionary extension of programs using the procedural-parametric approach // Computational technologies. 2016. V. 21. ¹ 3. P. 56-69
Home| Scope| Editorial Board| Content| Search| Subscription| Rules| Contacts
ISSN 1560-7534
© 2024 FRC ICT