Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UMK_konspekt_TP_4_a4_2.doc
Скачиваний:
16
Добавлен:
29.09.2019
Размер:
1.57 Mб
Скачать

17. Методология объектно-ориентированного программирования

Методология объектно-ориентированного программирования – подход, использующий объектную декомпозицию.

Методы и концепции:

  1. Выделение объектов и связей между ними. Поддерживается концепциями инкапсуляции, наследования и полиморфизма.

  2. Применение абстрактных типов данных (основа - инкапсуляция).

  3. Описание поведения системы в терминах обмена сообщениями между объектами.

В данном случае вычислительная модель в явном виде поддерживает только одну операцию - посылку сообщения объекту. При этом для модели справедливы следующие свойства:

  1. Объектом является процесс, который может иметь различные внутренние состояния.

  2. При получении сообщения объект становиться активным.

  3. Извне внутреннее состояние объекта может быть изменено только посредством передачи ему сообщения, специфицирующего выполняемую объектом операцию.

  4. Во время работы объект может обмениваться сообщениями с другими объектами.

Синтаксис и семантика. Для ООП определены три основных свойства:

  1. Инкапсуляция – это сокрытие информации и комбинирование данных и функций.

  2. Наследование – сохранение способов первичного доступа к коду и данным у всех порождаемых объектов.

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

Выделяют следующие элементы синтаксиса:

Класс – тип данных для описания объектов.

Объект – переменная-процесс с собственным внутренним состоянием, представляющая собой экземпляр класса.

Сообщение – экземпляр класса, предназначенного для обмена данными между объектами.

Поля – внутренние данные объекта.

Свойства – переменные, для доступа к внутренним полям объекта.

Методы (обработчики событий) – свойства процедурного типа. Если обработчик для сообщения выбирается динамически, то метод, реализующий данный обработчик, принято называть виртуальным.

Языки объектно-ориентированного программирования условно подразделяют на три группы:

  1. Чистые языки. Содержат небольшую языковую часть и существенную библиотеку классов - Simula (1962), Smalltalk (1972), Beta (1975), Self (1986), Cecil (1992).

  2. Гибридные языки. Появились в результате внедрения объектно-ориентированных конструкций в популярные императивные языки - Ada (1974), C++ (1983), Object Pascal (1984), Eiffiel (1992).

  3. Урезанные языки. Появились в результате удаления из гибридных языков наиболее опасных и ненужных с объектно-ориентированной точки зрения конструкций – Java (1995), C# (2000).

Класс задач. Данная методология является мощным средство для моделирования отношений между объектами практически в любой предметной области. Особенно удачно применяется при описании взаимодействия между элементами графического интерфейса.

18. Методология функционального программирования

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

Методы и концепции:

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

  2. Метод рекурсивного поведения – заключается в самоповторяющемся поведении, возвращающемся к самому себе.

  3. Метод настраиваемости - заключается в том, что можно легко порождать новые программные объекты по образцу, как значения соответствующих выражений (применение порождающих функций к параметрам образца). Этому способствует то, что не только программа, но и любой программный объект (в идеале) является выражением.

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

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

Популярные языки функционального программирования:

  1. Lisp (1958)

  2. РЕФАЛ (1968)

  3. Scheme (1975)

  4. FP (1977), ML (1978)

  5. Miranda (1985)

  6. Standart ML (1985)

  7. Haskell (1990, 1998)

Класс задач. Функциональное программирование обычно применяется для решения тех задач, которые трудно сформулировать в терминах последовательных операций. В эту категорию попадают практически все задачи, связанные с искусственным интеллектом. Это такие задачи, как обработка естественного языка, экспертные консультирующие системы, проблемы зрительного восприятия, и многие другие.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]