logo
51 вопрос по инф

31. Стили программирования.

Процедурное программирование.

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

Процедурные языки характеризуются: значительной сложностью; отсутствием строгой математической основы; необходимостью явного управления памятью, в частности необходимостью описания переменных; малой пригодностью для символьных переменных; высокой эффективностью реализации на традиционных ЭВМ.

С т.зр. программиста имеется программа и память, причем первая последовательно обновляет содержимое последней.

Функциональное программирование.

Единственным действием в составлении программы является вызов функции. Единственным способом расчленения программы на части является введение имени для функции. Единственное правило композиции – оператор суперпозиции функции. Здесь нет ячеек памяти, операторов присваивания, циклов, блок-схем, передачи управления.

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

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

Логическое программирование.

Центральным понятием является отношение. Программа представляет собой совокупность определений отношений между объектами (в терминах условий или ограничений).

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

Языки логического программирования характеризуются: сверхвысоким уровнем; жесткой ориентацией на символьные вычисления; принципиально низким быстродействием.

Объектно-ориентированное программирование.

Объект объединяет в себе данные, представляющие собой атрибуты и функции, процедуры (методы) использующие и обрабатывающие эти данные. Объекту присущи след. свойства: 1) инкапсуляция: объекты наделяются некоторой структурой и обладают некоторым набором операций, определяющих его поведение; внутренняя структура объекта скрыта от пользователя, т.е. манипуляции объектом, изменение его состояния возможны только посредством соответствующих методов; объекты «самостоятельны», т.е. чтобы объект произвел некоторое действие, ему необходимо послать «сообщение», инициирующее это действие, вызывающее нужный метод. 2) наследование: возможность создания новых объектов из имеющихся объектов; новые объекты наследуют структуру и поведение своих предшественников, дополняя их новыми свойствами и методами. 3) полиморфизм: различные объекты могут получать одинаковые сообщения, но реагировать на них могут по-разному в соответствии с тем, как реализованы у них соответствующие методы.