Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по Семеновой.doc
Скачиваний:
4
Добавлен:
19.04.2019
Размер:
612.86 Кб
Скачать

Вопрос 7. Новые парадигмы программирования

Парадигма программирования (стиль программирования)— это совокупность подходов, методов, стратегий, идей и понятий, используемых при написании программ.

Парадигмы программирования занимают важное место в технологии разработки программного обеспечения. Именно вокруг них начинают выстраиваться и развиваться методологические концепции. Такая роль обуславливается тем, что возникающие новые идеи по созданию программ первоначально реализуются в простых инструментах, поддерживающих исследование и экспериментальную проверку выдвигаемого стиля. Чаще всего в качестве инструментов выступают языки программирования. Если разработанная парадигма не способна служить основой промышленной методологии, она отвергается или применяется в ограниченных масштабах.

Можно выделить следующие парадигмы «классические» программирования:

  • императивное программирование;

  • функциональное программирование;

  • логическое программирование;

  • параллельное программирование;

  • программирование в ограничениях;

  • ООП.

Императивное программирование основано на командах, которые обновляют и изменяют значение переменных. «Три кита» ООП: Инкапсуляция; Наследование; Полиморфизм.

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

Наследование - это процесс, посредством которого один объект может приобретать свойства другого. Точнее, объект может наследовать основные свойства другого объекта и добавлять к ним черты, характерные только для него.

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

Функциональное программирование представляет одну из альтернатив императивному подходу. Функциональные программы являются выражениями, исполнение программ заключается в вычислении этих выражений. Данная парадигма основана на более естественном (чем машина Тьюринга) с математической точки зрения формализме - лямбда-исчислении Черча.

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

К недавно появившимся парадигмам программирования можно отнести:

  • языко-ориентированное программирование;

  • аспектно-ориентированное программирование;

  • агентно-ориентированное программирование.

Языко-ориентированное программирование

Любой язык общего назначения, будь то Java или C++, дает возможность сделать с компьютером что угодно. Это так, по крайней мере, в теории, но языки общего назначения недостаточно продуктивны. Как альтернатива, существуют языки, специфичные для предметной области (DSL, они же “малые языки”), чья цель – максимальная продуктивность в своей области – как, например, SQL для баз данных. Сила этих языков – специфичность для предметной области – в то же время и их слабость, ведь реальные программы работают с множеством предметных областей.

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

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