Технологии и парадигмы программирования

Технологии программирования - это апробированные стратегии создания программ, которые излагаются в виде методик с информационными фондами, описаниями проектных процедур и проектных операций. Существуют технология структурного про­граммирования, технология проектирования программ с рациональ­ной структурой данных, технология объектно-ориентированного программирования, технология визуального программирования.

В каждой из этих технологий используется одна или несколько парадигм программирования (концепций, систем взглядов). По­следние представляют собой разные подходы к написанию про­грамм. Для каждой из них необходимы: свой тип мышления, осо­бая школа обучения, приемы и способы программирования, опре­деляемые используемым языком.

Существуют четыре основные парадигмы, которые описывают большинство сегодняшних методов программирования: императивная, аппликативная, основанная на системе правил и объектно-ориентированная.

Императивная парадигма. Эта модель вытекает из особенностей аппаратной части стандартного компьютера, выпол­няющей инструкции (команды) последовательно. Основным видом абстракции, используемым в данной парадигме, являются алгорит­мы. На основе ее разработано множество операторно-ориентиро-ванных языков программирования. Программа на таком языке со­стоит из последовательности операторов, выполнение каждого из которых влечет за собой изменение значения в одной или несколь­ких ячейках памяти. В целом синтаксис такого языка имеет вид:

Оператор_1:

Оператор_2:

...

Обычно при первом знакомстве с концепциями программиро­вания люди сталкиваются именно с этой моделью, и многие широ­ко распространенные языки поддерживают именно ее (например, С, C++, FORTRAN, ALGOL, PL/I, Pascal, Ada, Smalltalk и COBOL).

Аппликативная парадигма. Представляет собой дру­гой взгляд на вычисления, производимые с помощью языка про­граммирования. В основу этой парадигмы положено рассмотрение функции, которую выполняет программа. Здесь не рассматривается последовательность состояний, через которые должна пройти вы­числительная машина. Вопрос ставится по-другому: какую функ­цию необходимо применить к начальному состоянию машины (пу­тем выбора начального набора переменных и комбинирования их определенным образом), чтобы получить желаемый результат?

Языки, в которых акцентирован именно этот взгляд на вычис­ления, называются аппликативными, или функциональными. Син­таксис такого языка, как правило, выглядит следующим образом:

Функция_n (... функция_2 (функция_1 (данные) )...)

Такую модель поддерживают такие языки как ML и LISP.

Парадигма, основанная на системе правил. Язы­ки, основанные на этой парадигме, осуществляют проверку нали­чия необходимого разрешающего условия и в случае его обнару­жения выполняют соответствующее действие. Наиболее известным языком, основанным на системе правил, является Prolog. Он назы­вается также языком логического программирования.

Выполнение программы на подобном языке похоже на выпол­нение программы, написанной на императивном языке. Однако операторы выполняются не в той последовательности, в которой они определены в программе. Порядок выполнения определяют разрешающие условия. Синтаксис таких языков выглядит следую­щим образом:

разрешающее условие_1 —> действие_1 разрешающее условие_2 —> действие__2

разрешающее условие_n —> действие _n

Иногда правила записываются в виде «действие if разрешаю­щее условие», когда выполняемое действие записывается слева.

Объектно-ориентированная парадигма. В этой модели строятся сложные объекты данных. Для операций над ними определяется некоторый ограниченный набор методов. Создавае­мые объекты могут наследовать свойства более простых объектов. Благодаря такой возможности объектно-ориентированные про­граммы имеют высокую эффективность, свойственную програм­мам, написанным на императивных языках. Возможность разра­ботки различных классов, которые используют ограниченный на­бор объектов данных, обусловливает гибкость и надежность, которые свойственны аппликативному языку.

Существуют и другие парадигмы, что объясняется необходимо­стью решать разные задачи. Нельзя считать какую-либо парадигму наилучшей во всех областях практического применения. Например, для вычислительных задач более пригодна императивная парадигма, а для проектирования интеллектуальных систем применяется пара­дигма, ориентированная на правила. В последние годы особую по­пулярность приобрела парадигма визуального программирования.

Наши рекомендации