RUS  ENG
Полная версия
ЖУРНАЛЫ // Моделирование и анализ информационных систем // Архив

Модел. и анализ информ. систем, 2023, том 30, номер 1, страницы 40–62 (Mi mais790)

Theory of computing

Расширение языка C для поддержки процедурно-параметрического полиморфизма

А. И. Легалов, П. В. Косов

Национальный исследовательский университет «Высшая школа экономики», ул. Мясницкая, д. 20, г. Москва, 101000 Россия

Аннотация: Разработка программного обеспечения зачастую связана с расширением функциональности. Для повышения надежности в этом случае необходимо минимизировать изменение ранее написанного кода. Для инструментальной поддержки эволюционной разработки программ была предложена процедурно-параметрическая парадигма программирования, что позволило повысить возможности процедурного подхода. Это обеспечивает безболезненное расширение как данных, так функций, используя при этом статическую типизацию. В работе рассматривается включение процедурно-параметрического программирования в язык C. Предлагаются дополнительные синтаксические конструкции, ориентированные на поддержку предлагаемого подхода. К ним относятся: параметрические обобщения, специализации обобщений, обобщающие функции, обработчики специализаций. Описываются их семантика, возможности и особенности технической реализации. Для проверки возможностей использования данного подхода построены модели процедурно-параметрических конструкций на языке программирования C. Приведенный пример демонстрирует гибкое расширение программы и поддержку множественного полиморфизма.

Ключевые слова: языки программирования, компиляция, процедурно-параметрическое программирование, полиморфизм, множественный полиморфизм, эволюционная разработка программного обеспечения.

УДК: 004.4’42, 004.43

MSC: 68N15, 68Q55

Поступила в редакцию: 10.11.2022
Исправленный вариант: 03.02.2023
Принята в печать: 08.02.2023

DOI: 10.18255/1818-1015-2023-1-40-62



© МИАН, 2025