Парадигмы программирования Это определенный набор инстурентов абстракции и подходов к их применению.

Презентация:



Advertisements
Похожие презентации
Объектно-ориентированное программирование Лекций: 34 часа Лаб. работ:36 часов (8 работ) Курсовая работа Самостоятельная работа Сайт дисциплины:
Advertisements

Объектно – ориентированное программирование (ООП) Артишевская Юлия, 222 группа Артишевская Юлия, 222 группа.
Обзор парадигм программирования. План 1. Структурное программирование 2. Объектно-ориентированное программирование 3. Функциональное программирование.
ООП Лекция 1. Основные понятия. Литература Шилдт Г. С#: полное руководтво.-М.:ООО Вильямс, с. Культин Н.Б. Microsoft Visual C# в задачах и.
Парадигмы программирования Денис С. Мигинский. Понятие парадигмы Парадигма (философия науки) – устоявшаяся система научных взглядов, в рамках которой.
Объектно-ориентированное программирование. Объекты: свойства и методы Основной единицей в объектно- ориентированном программировании является программный.
ВЫПОЛНЕНИЕ АЛГОРИТМОВ КОМПЬЮТЕРОМ. Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой. Программа данные, предназначенные.
Программирование. Языки программирования.
Алгоритмический подход – главное алгоритм решения задачи ( в основном, используется для вычислительных задач ); Структурное программирование – декомпозиция,
Объектно- ориентированный подход к моделированию систем.
ТЕХНОЛОГИИ РАЗРАБОТКИ ЭКСПЕРТНЫХ СИСТЕМ. Отличия систем искусственного интеллекта от обычных программных систем ХарактеристикаПрограммирование в системах.
Методология объектно- ориентированного программирования.
IronRuby: внутренности и примеры использования Рахматиллаев Тимур IndyCode 3-я конференция.NET разработчиков 25 сентября 2011.
Профессиональное программирование на языке C# Лекция 3 «Он живой и светится!» Доктор физ.-мат. наук, профессор Р.В. Шамин Сахалинский филиал Дальневосточного.
WEB- ТЕХНОЛОГИИ Лекция 6. Понятие Web- сервисов 1 Интерфейс в глобальную сеть для некоторого абстрактного программного обеспечения, этот интерфейс позволяет.
1 © Luxoft Training 2012 Введение в ООП Модуль #2.
Microsoft Solutions Framework Технологии программирования. Курс на базе Microsoft Solutions Framework Семинар 1. Повтор принципов объектно- ориентированного.
Абстракция n Абстракция основана на u обобщении посредством введения имени вместо значения и u уточнении (конкретизации) посредством подстановки другого.
OOП Инна Исаева. Подпрограмма – это большая программа, разделённая на меньшие части. В программе одна из подпрограмм является главной. Её задача состоит.
Разработка программного обеспечения при объектном подходе Объектно-ориентированный подход.
Транксрипт:

Парадигмы программирования Это определенный набор инстурентов абстракции и подходов к их применению

Структурное программирование 3 базовых блока: – последовательное выполнение – условное выражени – цикл GOTO считается вредным Процедурное программирование: модуляризация с помощью процедур и модулей (файлов)

Объектно-ориентированное программирование Принципы: – инкапсуляция – наследование – полиморфизм ОО-дизайн: – композиция, аггрегация – делегация, консультация – cohesion (единство), coupling (связность) – indirection

Наследование Наследование "свойств" и "функциональности". 12 видов! (Bertrand Meyer, Object-Oriented Software Construction) Для свойств основано на: – классе (от абстрактного к конкретному): C++, Java – прототипе (от конкретного к абстрактному): JavaScript, Self, Io

Наследование может пониматься как наследование реализации (семантическое) или как наследование интерфейса (синтаксическое) Сильное поведенческое наследование -- принцип замены Лисковой (IS-STRICTLY-EQUIVALENT-TO-A): пусть q(x) -- это свойство, доказываемое для объекта х типа T. Тогда q(y) должно быть справедливо для всех объектов y любого подтипа S типа T Прицип строгой эквивалентности Favor object composition over class inheritance WAS-A, HAS-A

Полиморфизм Наследование функциональности и полиморфизм это 2 стороны одной медали Родовые функции (Lisp): унифиция обоих концепций в рамках одной абстракции "Субъектно-ориентированное программирование" "Утиная типизация" (Duck typing): "When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck." (James Whitcomb Riley)

Передача сообщений Smalltalk Алан Кей: более важно, чем объекты Полностью динамическая диспетчиризация Модель акторов (Хьюит). Акторы – асинхронно принимают сообщения – отправляют конечное число сообщений другим акторам – создают конечное число новых акторов – Также: хвостовая рекурсия

Функциональное программирование Лямбда-исчисление Черча Принципы: – программирование без побочных эффектов (ссылочная прозрачность) – неизменяемые (немутируемые) данные – функции высших порядков Строгие и динамические ФЯ Ленивые вычисления Системы типов

Скриптоовые языки Опора на существующую платформу Фокус на реализации определенного круга задач Динамические Ad hoc

Метапрограммирование Расширение (growing) базового языка Многоуровневые системы Проектирование сверху-вниз Языко-ориентированное программирование (DSL) Макросистема Гомоиконность языка Мета-круговой интерпретатор Рефлексия

Конкурентное программирование Новая парадигма Варианты: – MapReduce – модель акторов (Erlang, Scala) – STM – Программная транзакционная память (Haskell, Clojure) – CSP (Golang) – Event-based Shared nothing

MapReduce Не язык, а фреймворк для написания распределенных програм.

Erlang Динамический функциональный язык, основанный на синтаксисе Prolog'а. Модель акторов. Примитивы процессов Pid spawn send (!) receive register

Типичные шаблоны Erlang Loop Rpc Timer

Беззамковая синхронихация в Clojure

Корутины и go-рутины Модель Communicating Sequential Processes