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