SoftCraft
разноликое программирование

Top.Mail.Ru

Процедурно-параметрическая парадигма программирования.
Возможна ли альтернатива объектно-ориентированному стилю?


[Возврат на основную страницу раздела]


© 2000 г.
Легалов Александр Иванович

Статья первоначально депонирована в ВИНИТИ и имеет следующие выходные данные:
Легалов А.И. Процедурно-параметрическая парадигма программирования. Возможна ли альтернатива объектно-ориентированному стилю? - Красноярск: 2000. Деп. рук. № 622-В00 Деп. в ВИНИТИ 13.03.2000. - 43 с.

Полностью материал доступен в формате pdf (~426 кб)

Преамбула

Предлагается парадигма программирования, определяющая новый стиль разработки программ, названный процедурно-параметрическим программированием (ППП). В основе парадигмы лежит параметрический полиморфизм, позволяющий процедурам принимать и обрабатывать вариантные типы данных, без алгоритмического выбора альтернатив внутри этих процедур. В процедурных языках программирования такие типы описываются объединениями (union в языках C, C++) или вариантными записями (в языке Паскаль). Алгоритмическая обработка вариантов осуществляется с применением условных операторов или переключателей. Данный подход является развитием методов процедурного программирования и служит альтернативой объектно-ориентированному программированию.

Следует уточнить понятие "процедурное программирование", используемое в работе. Оно не отождествляется со структурным программированием. Во-первых, структурное программирование в основном ассоциируется с алгоритмической декомпозицией. Вместе с тем, использование традиционных процедурных языков может сочетаться и с объектно-ориентированной методологией (ООМ) [7]. В этом случае, для доступа к структурам данных, можно использовать специально выделенные процедуры (специализированные процедуры). Остальные же процедуры, для доступа к этим же структурам данных, могут пользоваться интерфейсом, предоставляемым специализированными процедурами. Во-вторых, процедурная организация программ применяется не только в структурном программировании. Такое взаимодействие осуществляется в функциональном программировании (на уровне функций, обменивающихся данными) [6], параллельном программировании (на уровне взаимодействия процессов) [5] и т.д. Поэтому, при дальнейшем изложении, понятия "процедурный подход", "процедурное программирование" используются для обозначения всех парадигм программирования, связанных с организацией процесса вычислений на основе потоков управления, потоков данных и с непосредственным вызовом процедур, функций, процессов. Далее, говоря о процедурах, будем также подразумевать функции и процессы.

Процедурно-параметрическая парадигма программирования является расширением процедурного подхода. Она позволяет увеличить возможности последнего за счет поддержки полиморфизма данных. Применение предлагаемого подхода позволит наращивать функциональные возможности процедур без внесения в них внутренних алгоритмических изменений. ППП может использоваться как независимо, так и в сочетании с другими парадигмами программирования.

Основные разделы

  1. Введение
  2. Различия процедурной и объектной парадигм
  3. Программные объекты процедурной и объектной парадигм, используемые для построения эквивалентных понятий
  4. Конструирование агрегатов
  5. Конструирование обобщений
  6. Вариантное обобщение
  7. Опорное обобщение
  8. Использование процедурного и ОО подходов
  9. Преимущества ОО программирования по сравнению с другими методами
  10. Недостатки ООП
  11. Параметрическая обработка альтернатив
  12. Параметрическое программирование
  13. Конструирование программных объектов при процедурно-параметрическом подходе
  14. Языковая поддержка параметрического полиморфизма
  15. Программирование при множественном полиморфизме
  16. Достоинства и недостатки ППП
  17. Заключение

Литература

  1. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++, 2-е изд./Пер. с англ. - М.: "Издательства Бином", СПб: "Невский диалект", 1998 г. - 560 с., ил.
  2. Вирт Н. Долой "жирные" программы. "Открытые системы", №6 (20), 1996, стр. 26-31.
  3. Легалов А.И. Сочетание процедурного и объектного подходов при разработке программ. - Вестник Красноярского государственного технического университета. Сб. научных трудов. Вып. 10. Красноярск, 1997. с. 102-109.
  4. Пешио К. Никлаус Вирт о культуре разработки ПО. "Открытые системы", №1, 1998, с. 41-44.
  5. Хоар Ч. Взаимодействующие последовательные процессы. Пер. с англ. - М.: Мир, 1989. -264 с.
  6. Henderson P. Functional Programming, Application and Implementation. /Prentice-Hall, London, 1980.
  7. Meyer M. Object-Oriented Software Construction. Second Edition. ISE Inc. Santa Barbara (California).
  8. Moessenboeck H., Wirth N. The Programming Language Oberon-2. Institut fur Computersysteme, ETH Zurich July 1996.


[Возврат на основную страницу раздела]