Авторитетность издания
Добавить в закладки
Следующий номер на сайте
В Санкт-Петербургском национальном исследовательском университете информационных технологий, механики и оптики (Университет ИТМО) предложена концепция использования макроопределений высшего порядка для реализации поддержки объектно-ориентированной парадигмы программирования в языке C89 без расширений.
15.07.2019При написании программы важно определить адекватную задаче парадигму программирования. Это может быть программирование от состояний, объектно-ориентированное, декларативное и т.д. Выбор парадигмы, с помощью которой решение задачи будет описано максимально естественно и лаконично, позволяет быстрее создавать более надежные программы за счет уменьшения сложности процесса написания кода и времени на его отладку. В мире широко распространены языки, как предполагающие следование определенным парадигмам (Smalltalk, ML), так и поддерживающие множество парадигм (C#, Java, OCaml и др.). В то же время лишь для небольшого количества языков существуют компиляторы для большинства различных аппаратных и программных целевых платформ, так как разработка эффективных кросс-компиляторов, особенно языков высокого уровня, является достаточно трудоемкой задачей.
Весьма интересным кажется использование существующих компиляторов языка Си, реализованных практически под все существующие платформы. При этом Cи не обладает богатыми выразительными возможностями, предоставляя лишь самые простые абстракции для работы с кодом и данными. Из всего многообразия парадигм программирования Cи предоставляет поддержку лишь процедурного языка. Язык C++, созданный на основе Cи, включает в себя поддержку других парадигм, в том числе объектно-ориентированной. К сожалению, до настоящего времени существуют платформы, для которых компиляторы C++ отсутствуют или обладают большим количеством ошибок, что неудивительно, так как C++ гораздо сложнее для трансляции, чем Cи. По этим причинам многие программисты реализовывали поддержку объектно-ориентированной парадигмы программирования в Cи с целью упростить решение определенного класса задач, в котором этот подход оправдан.
Подробное описание дается в статье «Реализация метаязыковой абстракции для поддержки ООП средствами языка Си», авторы: Дергачев А.М., Жирков И.О., Логинов И.П., Кореньков Ю.Д. (Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики (Университет ИТМО), Санкт-Петербург).