Proceedings of the RHSAS

PROCEEDINGS OF THE RUSSIAN HIGHER SCHOOL
ACADEMY OF SCIENCES

Print ISSN: 1727-2769    Online ISSN: 2658-3747
English | Русский

Recent issue
№1(62) January - March 2024

USING IDENTICAL SIGNATURE PROCEDURES FOR EVOLUTIONARY EXTENSION OF PROGRAMS

Issue No 1 (26) January-March 2015
Authors:

Legalov Alexander Ivanovich,
Kosov Pavel Vladimirovich,
Legalov Igor Aleksandrovich
DOI: http://dx.doi.org/10.17212/1727-2769-2015-1-41-51
Abstract
Evolutionary development of software is based on different techniques and programming paradigms. The application of inheritance and virtualization made it possible to easily build up classes and their functionality. Adding new procedures and functions is not a problem when using procedural and functional programming. In more complex cases design patterns taking into account the peculiarities of programming paradigms and situations that arise when writing a piece of the code can help . However, it should be noted that the evolutionary expansion of procedures and functions is currently neglected. In this paper we consider the possibility of adding new functionality by overloading procedures with an identical signature without changing the already writ-ten code. This approach is based on a separate compilation of such procedures and linking them together during the final assembly of the program at later stages. The paper presents a general idea of the approach and the ability to implement it using traditional programming languages. We propose language constructs that add specific options initializing the overloading of identical signatures in the traditional procedures. The paper describes situations in which the overloading of procedures with an identical signature makes evolutionary software development more flexible. Possible options for extending the syntax and semantics of programming languages are given using specific examples. The proposed approach can be used to extend the capabilities of procedures and functions in different programming paradigms.
Keywords: evolutionary development of software, overloading of procedures, overloading of functions, programming paradigms

References
  1. Booch G. Object-oriented analysis and design with applications. 2nd ed. Redwood City, Cali-fornia, USA, Benjamin-Cummings Publ., 1994. 608 p. (Russ. ed.: Buch G. Ob"ektno-orientirovannyi analiz i proektirovanie s primerami prilozhenii na C++. 2-e izd. Moscow, Bi-nom Publ., Saint Petersburg, Nevskii dialekt Publ., 1998. 560 p.).
  2. Colyer A., Clement A., Harley G., Webster M. Eclipse AspectJ: Aspect-oriented programming with AspectJ and the eclipse AspectJ development tools. Boston, Massachusetts, USA, Addi-son Wesley, 2004. 504 p.
  3. Czarnecki K., Eisenecker U. Generative programming: methods, tools and applications. Read-ing, Boston, Massachusetts, USA, Addison-Wesley, 2000. 864 p. (Russ. ed.: Charnetski K., Aizeneker U. Porozhdayushchee programmirovanie: metody, instrumenty, primenenie. Saint Petersburg, Piter Publ., 2005. 736 p.).
  4. Legalov A.I. Procedural parametric programming paradigm. Can it be possible as alternative to object-oriented style? Krasnoyarsk, 2000. 43 p. Available from VINITI, no. 622-V2000. (In Russian)
  5. Gamma E., Helm R., Johnson R., Vlissides J. Design patterns: elements of reusable object-oriented software. Boston, Massachusetts, USA, Addison-Wesley, 1998. 395 p. (Russ. ed.: Gamma E., Khelm R., Dzhonson R., Vlissides Dzh. Priemy ob"ektno-orientirovannogo proek-tirovaniya: patterny proektirovaniya. Saint Petersburg, Piter Publ., 2001. 368 p.).
  6. Gorbunov-Posadov M.M. Rasshiryaemye programmy [Expandable programs]. Moscow, Poliptikh Publ., 1999. 321 p.
  7. Legalov A.I., Privalikhin D.V. Evolyutsionnoe rasshirenie programm v funktsional'nom yazyke parallel'nogo programmirovaniya [Evolutionary expansion of programs in a functional language for parallel programming]. Vestnik Krasnoyarskogo gosudarstvennogo universiteta. Fiziko-matematicheskie nauki Bulletin of the Krasnoyarsk state university. A series of physical and mathematical sciences, 2004, no. 5/2, pp. 40–48.
  8. Austern M.H. Generic programming and the STL: using and extending the C++ standard template library. Boston, Massachusetts, USA, Addison-Wesley, 1999. 548 p. (Russ. ed.: Os-tern M.G. Obobshchennoe programmirovanie i STL: ispol'zovanie i narashchivanie standartnoi biblioteki shablonov C++. Saint Petersburg, Nevskii dialekt Publ., 2004. 544 p.).
  9. Moessenboeck H., Wirth N. The programming language Oberon-2. Institut für computersys-teme, Zurich, ETH, 1996. 27 p.
  10. Barnes J. Programming in Ada 95. 2nd ed. Harlow, Addison-Wesley, 1998. 720 p.
  11. Legalov A.I., Shvets D.A. Protsedurnyi yazyk s podderzhkoi evolyutsionnogo proektirovani-ya [Procedural language with support for evolutionary design]. Nauchnyi vestnik NGTU Science bulletin of the Novosibirsk state technical university, 2003, no. 2 (15), pp. 25–38.
  12. Legalov A.I., Bovkun A.Ya., Legalov I.A. Rasshirenie modul'noi struktury programmy za schet podklyuchaemykh modulei [Extension of program's modular structure at the expense of attachable modules]. Doklady Akademii nauk vysshei shkoly Rossiiskoi Federatsii Proceedings of the Russian higher school Academy of sciences, 2010, no. 1 (14), pp. 114–125. 
Views: 2681