ДОКЛАДЫ АКАДЕМИИ НАУК
ВЫСШЕЙ ШКОЛЫ РОССИЙСКОЙ ФЕДЕРАЦИИ

ISSN: 1727-2769
English | Русский

Последний выпуск
№3(40) июль-сентябрь 2018

ИСПОЛЬЗОВАНИЕ ПРОЦЕДУР С ОДИНАКОВОЙ СИГНАТУРОЙ ДЛЯ ЭВОЛЮЦИОННОГО РАСШИРЕНИЯ ПРОГРАММ

Выпуск № 1 (26) январь-март 2015
Авторы:

Легалов Александр Иванович,
Косов Павел Владимирович,
Легалов Игорь Александрович
DOI: http://dx.doi.org/10.17212/1727-2769-2015-1-41-51
Аннотация
Эволюционная разработка программного обеспечения опирается на различные технические приемы и парадигмы программирования. Применение наследования и виртуализации позволили безболезненно наращивать классы и их функциональность. Добавление новых процедур и функций не вызывает проблем при использовании процедурного и функционального программирования. В более сложных случаях на помощь приходят паттерны проектирования, учитывающие особенности парадигм программирования и ситуации, возникающие при написании фрагментов программного кода. Вместе с тем следует отметить, что эволюционному расширению процедур и функций в настоящее время уделяется недостаточно внимания. В работе рассматривается возможность добавления новой функциональности без изменения уже написанного кода за счет перегрузки процедур с одинаковой сигнатурой. Данный подход базируется на раздельной компиляции таких процедур и связывании их воедино во время окончательной компоновки программы, проходящей на более поздних этапах. Представлены общая идея подхода и возможность ее реализации с использованием традиционных языков программирования. Предлагаются языковые конструкции, которые добавляют в традиционные процедуры опции, задающие перегрузку одинаковых сигнатур. В статье рассмотрены ситуации, в которых применение перегрузки процедур с одинаковой сигнатурой позволяет сделать эволюционную разработку программного обеспечения более гибкой. На конкретных примерах рассмотрены варианты расширения синтаксиса и семантики языков программирования. Предлагаемый подход может использоваться для расширения возможностей процедур и функций в различных парадигмах программирования. 
Ключевые слова: эволюционная разработка программ, перегрузка процедур, перегрузка функций, техника программирования, парадигмы программирования.

Список литературы
  1. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++ / пер. с англ. под ред. И. Романовского, Ф. Андреева. – 2-е изд. – М.: Бином; СПб.: Невский диалект, 1998. – 560 с.
  2. Eclipse AspectJ: Aspect-oriented programming with AspectJ and the eclipse AspectJ development tools / A. Colyer, A. Clement, G. Harley, M. Webster. – Boston, Massachusetts: Addison Wesley Publ., 2004. – 504 p.
  3. Чарнецки К., Айзенекер У. Порождающее программирование: методы, инструменты, применение: пер. с англ. – СПб.: Питер, 2005. – 736 с. – (Для профессионалов).
  4. Легалов А.И. Процедурно-параметрическая парадигма программирования: возможна ли альтернатива объектно-ориентированному стилю? / Красноярский государственный технический университет. – Красноярск, 2000. – 43 с. – Депонировано в ВИНИТИ 13.03.2000, № 622-В2000.
  5. Приемы объектно-ориентированного проектирования: паттерны проектирования: пер. с англ. / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. – СПб.: Питер, 2001. – 368 с.
  6. Горбунов-Посадов М.М. Расширяемые программы. – М.: Полиптих, 1999. – 336 с.
  7. Легалов А.И., Привалихин Д.В. Эволюционное расширение программ в функциональном языке параллельного программирования // Вестник Красноярского государственного университета. Физико-математические науки. – 2004. – № 5/2. – С. 40–48.
  8. Остерн М.Г. Обобщенное программирование и STL: использование и наращивание стандартной библиотеки шаблонов C++: пер. с англ. – СПб.: Невский диалект, 2004. – 544 с.
  9. Moessenboeck H., Wirth N. The programming language Oberon-2 / Institut für Computer-systeme. – Zurich: ETH, 1996. – 27 p.
  10. Barnes J. Programming in Ada 95. – 2nd ed. – Harlow, Addison-Wesley Publ., 1998. – 720 p.
  11. Легалов А.И., Швец Д.А. Процедурный язык с поддержкой эволюционного проектирования // Научный вестник НГТУ. – 2003. – № 2 (15). – С. 25–38.
  12. Легалов А.И., Бовкун А.Я., Легалов И.А. Расширение модульной структуры программы за счет подключаемых модулей // Доклады Академии наук высшей школы Российской Федерации. – 2010. – № 1 (14). – С. 114–125.
Просмотров: 699