Аннотация:
Динамический полиморфизм часто применяется в ситуациях, связанных с определением и обработкой альтернативных ситуаций в процессе выполнения программ, обеспечивая гибкое расширение ранее написанного кода. Он широко используется в статически типизированных языках объектно-ориентированного программирования за счет совместного применения наследования и виртуализации. Языки программирования Go и Rust, также поддерживают динамический полиморфизм, используя для его реализации статическую утиную типизацию. Еще один подход предлагает процедурно-параметрическая парадигма программирования, обеспечивающая гибкое эволюционное расширение как вариантных данных, так и обрабатывающих их функций, включая ситуации, связанные с множественным полиморфизмом, которые возникают при реализации мультиметодов. В работе проводится сравнение возможностей динамического полиморфизма объектно-ориентированной и процедурно-параметрической парадигм, по поддержке гибкой разработки программного обеспечения. Сопоставляются базовые техники, обеспечивающие расширение функциональности программ, рассматриваются особенности реализации паттернов проектирования.
Ключевые слова:
язык программирования, компиляция, процедурно–параметрическое программирование, полиморфизм, эволюционная разработка программного обеспечения, гибкая разработка программного обеспечения