RUS  ENG
Full version
JOURNALS // Proceedings of the Institute for System Programming of the RAS // Archive

Proceedings of ISP RAS, 2025 Volume 37, Issue 6(1), Pages 43–58 (Mi tisp1057)

Comparison of object-oriented and procedural-parametric polymorphism

P. V. Kosov, A. I. Legalov

National Research University Higher School of Economics

Abstract: Dynamic polymorphism is widely used in situations involving the identification and processing of alternatives during program execution. Dynamic polymorphism allows to flexibly expand programs without changing previously written code. It is widely used in statically typed object-oriented programming languages by combining inheritance and virtualization. The programming languages Go and Rust also provide support for dynamic polymorphism, using static duck typing to implement it. Another approach to implementing dynamic polymorphism is offered by the procedural-parametric programming paradigm, which at the same time provides direct support for multimethods and flexible evolutionary expansion of both alternative data and their processing functions. The paper compares the capabilities of object-oriented and procedural-parametric paradigms to support agile software development. The basic techniques that ensure the expansion of the functionality of programs are compared. The features of the implementation of design patterns are considered.

Keywords: programming language, compilation, procedural-parametric programming, polymorphism, evolutionary software development, agile software development

DOI: 10.15514/ISPRAS-2025-37(6)-3



© Steklov Math. Inst. of RAS, 2026