Парадигмы программирования презентация

Содержание

ПАРАДИГМЫ ПРОГРАММИРОВАНИЯ Все они - всего лишь различные инструменты. Каждый из этих инструментов по-своему хорош. Различные методики программирования дают разный выигрыш для решения задач разных классов: 1. эффективность программного обеспечения на

Слайд 1ЛЕКЦИЯ №1 ПАРАДИГМЫ ПРОГРАММИРОВАНИЯ
доц. Песчаненко В.С.
Херсонский государственный университет
Кафедра информатики
Научно-исследовательский институт информационных технологий
Лаборатория по

разработке и внедрению педагогических программных средств
2010

парадигмы разные нужны,
парадигмы разные важны

APS&IMSAPS&IMS, Lectures


Слайд 2ПАРАДИГМЫ ПРОГРАММИРОВАНИЯ
Все они - всего лишь различные инструменты.
Каждый из этих инструментов

по-своему хорош.
Различные методики программирования дают разный выигрыш для решения задач разных классов:
1. эффективность программного обеспечения на современных ЭВМ
2. общие затраты на разработку программного обеспечения

Слайд 3ПАРАДИГМЫ ПРОГРАММИРОВАНИЯ
Императивное программирование
Паралелизм. Паралельное и событийно-управляемое программирование
Объектно-ориентированное программирование
Функциональное программирование
Логическое программирование
Констрэйтное программирование
Алгебраическое

программирование
Инсерционное моделирование
и другие (WiKi Programming paradigms)

Слайд 4ИМПЕРАТИВНОЕ ПРОГРАММИРОВАНИЕ
Императивное программирование выигрывает любой другой методологии в эффективности реализации. Причина:

аппаратная организация ПК.
Стоит ли говорить о том, почему императивное программирование - практически наиболее "популярное"?
Одна из характерных черт императивного программирования - наличие переменных с операцией "разрушающего присвоения«
Про наш мир можно сказать, что он локально императивен.
Императивное программирование наиболее пригодно для реализации небольших подзадач, где очень важна скорость исполнения на современных компьютерах (+работа с внешними устройствами).

Слайд 5ПАРАЛЛЕЛИЗМ
Параллелизм можно мысленно разбить на два уровня: параллелизм уровня микроопераций и

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

Слайд 6ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
Объектно-ориентированное программирование появилось из недр событийно-управляемого программирования и затмило его,

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

Слайд 7ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ
Функциональное программирование представляет из себя одну из альтернатив императивному подходу.
В

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

Слайд 8СВОЙСТВА ФУНКЦИОНАЛЬНОГО ПРОГРАММИРОВАНИЯ
1.) Аппликативность: программа есть выражение, составленное из применения функций

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


Слайд 9ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ
Функциональное программирование, как и другие модели "неимперативного" программирования, обычно применяется

для решения задач, которые трудно сформулировать в терминах последовательных операций. \
Практически все задачи, связанные с искусственным интеллектом, попадают в эту категорию:
1) задачи распознавания образов,
2) общение с пользователем на естественном языке,
3) реализацию экспертных систем,
4) автоматизированное доказательство теорем,
5) символьные вычисления.

Слайд 10ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
В функциональном программировании программы - это выражения, и их исполнение

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

Слайд 11ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Унификация - это сопоставление двух произвольных термов, содержащих переменные, с

целью определения того, можно ли присвоить этим переменным такие значения, чтобы получились два одинаковых терма.
Например, унификация термов f(X, 2) и f(1, Y), где X, Y - переменные, выдаст подстановку: X=1, Y=2.
Метод резолюций заключается в последовательном доказательстве отдельных утверждений, входящих в посылку дизъюнкта Хорна, для доказательства его следствия. То есть, применение метода резолюций к правилу a :- b, c. и утверждению a приведет к последовательному доказательству утверждений b и c.
Метод резолюций имеет прямой аналог в обычной логике высказываний - правило modus ponens, по которому (A & A=>B) => B.


Слайд 12ЛОГИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Логическое программирование допускает естественную параллельную реализацию. В примере a :-

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

Слайд 13АЛГЕБРАИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Основано на переписывании, расширяет функциональное программирование и имеет широкое применение

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

Слайд 14КОНСТРЭЙТНОЕ ПРОГРАММИРОВАНИЕ
Констрэйтное программирование (WiKi Constraint programming) – это парадигма программирования в

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


Слайд 15АЛГЕБРАИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
APS интегрирует четыре основные парадигмы
программирования таким образом, что основная часть

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

Слайд 16ИНСЕРЦИОННОЕ МОДЕЛИРОВАНИЕ
Инсерционное моделирование – это моделирование на базе модели поведения агентов

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

Слайд 17ЗАКЛЮЧЕНИЕ
Каждая из парадигм интересна и сама по себе.
Наиболее "полезно" для

практики использовать их в совокупности, что позволяют современные языки программирования (как например, Си++ по сути, позволяет использовать императивное, фунциональное (хотя бы на уровне аппликативности) и объектно-ориентированное программирование, а с расширением, обеспечивающим параллелизм - и параллельное).
Алгебраическое программирование и инсерционное моделирование – одно из наиболее мощных средств разработки прикладных программ.

Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика