Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

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

Содержание

Искусственный интеллектАвтоматизация “рутинных” задач, “скучных” для человекаАвтономные системы “Быстрое” управление
Предметно - ориентированное программированиеСтепулёнок Денис Олегович Искусственный интеллектАвтоматизация “рутинных” задач, “скучных” для человекаАвтономные системы “Быстрое” управление Фантастика: разговор с компьютером«Идеальный» компьютер «понимает»естественный язык человека. «Программирование» на естественном языке Deep Blue – шахматный суперкомпьютер11 мая 1997 года одержал победу в матче Применение ИИ - турнир RoboCup Гуманоидный робот Тест Тьюринга Основные подхода к разработке ИИ: нисходящий (англ. Top-Down AI), семиотический — создание Уровни языков программированияЕстественные языкиТерминология конкретной предметной областиВысокоуровневые языки программированияНизкоуровневые языки программирования (напр. Языки высокого/низкого уровняЯзыки высокого уровня – максимально приближены к задаче. Наиболее выражено Разнообразие языков программированияСо времени создания первых программируемых машин человечество придумало > 8500 Парадигмы программированияАрхитектура машины, ассемблерФормула-ориентированныеПроцедурное, структурное программированиеОбъектно-ориентированное программированиеЯзыково-ориентированное программированиеСейчас Классификации языковЯзыки программированияВысокого уровняНизкого уровня:C / C++, AssemblerОбщего назначения:Perl, Java, PythonПредметно-ориентированные:Matlab, PL Программист как преобразователь контекста Предметно-ориентированный подходПрограмма на предметно-ориентированном языкеРеализация (трансляция)Описание задачи на естественном языкеГотовая исполняемая программа…создать ПОЯПредметно-ориентированный язык программирования (англ. domain-specific programming language, domain-specific language, DSL) — язык Требования к ПОФункциональность: программа должна выполнять ожидаемые функции. Функции нужно реализовывать в Виды ПОЯПОЯ могут быть:графическими (процесс программирования – «рисование» схемы в специальном редакторе);текстовыми Создание ПОЯПроектирование языка программированияРеализация интерпретаторов (компиляторов) для выбранных платформСоздание редактора (среды разработки)При Использовать достаточно гибкий существующий универсальный Язык Программирования (C#, Java, Python) и добавить Процесс компиляции Geometer’s Sketchpad Пример: Создание иконки Схема работы «Журнала в журнале» Программирование на языке общего назначения Программирование на основе ПОЯ Интерфейс учителя Интерфейс ученика Разбиение системы на модули Элементы редактора Редакторы Delphi – предметная ориентированностьРедактор интерфейса позволяет визуально (без программирования) нарисовать большую часть Работа в среде Delphi http://www.jetbrains.com/mps/ Создание языка Создание редактора Использование - sandbox Создаём поле ввода данных И редактор для него Добавляем поле в калькулятор Генерируем и тестируем полученный язык Выходное поле и формула Можем использовать значение входных полей Создаем генератор кода Создание полей «в цикле» Ссылка на другой макрос Пример использования Готовая программа Спасибо за внимание!Вопросы?
Слайды презентации

Слайд 2 Искусственный интеллект
Автоматизация “рутинных” задач, “скучных” для человека
Автономные системы

Искусственный интеллектАвтоматизация “рутинных” задач, “скучных” для человекаАвтономные системы “Быстрое” управление


“Быстрое” управление


Слайд 3 Фантастика: разговор с компьютером
«Идеальный»
компьютер «понимает»
естественный язык человека.

Фантастика: разговор с компьютером«Идеальный» компьютер «понимает»естественный язык человека. «Программирование» на естественном языке

«Программирование» на естественном языке


Слайд 4 Deep Blue – шахматный суперкомпьютер
11 мая 1997 года

Deep Blue – шахматный суперкомпьютер11 мая 1997 года одержал победу в

одержал победу в матче из 6 партий с чемпионом

мира по шахматам Гарри Каспаровым
Разработан компанией IBM
Название получил от «Deep Thought» (глубокая мысль) из романа Дугласа Адамса «Автостопом по галактике» и «клички» IBМ: «Big Blue»
После матча с чемпионом Deep Blue был разобран.
В основе Deep Blue II находится сервер RS/6000 фирмы IBM, у которого имеется 31 процессор. Один процессор объявлен главным, а ему подчиняются 30 остальных. К каждому из этих 30 процессоров подключено 16 специализированных шахматных процессора. Таким образом всего имеется 480 шахматных процессоров

Слайд 5 Применение ИИ - турнир RoboCup

Применение ИИ - турнир RoboCup

Слайд 6 Гуманоидный робот

Гуманоидный робот

Слайд 7 Тест Тьюринга

Тест Тьюринга

Слайд 8 Основные подхода к разработке ИИ:
нисходящий (англ. Top-Down

Основные подхода к разработке ИИ: нисходящий (англ. Top-Down AI), семиотический —

AI), семиотический — создание экспертных систем, баз знаний и

систем логического вывода, имитирующих высокоуровневые психические процессы: мышление, рассуждение, речь, эмоции, творчество и т. д.;
восходящий (англ. Bottom-Up AI), биологический — изучение нейронных сетей и эволюционных вычислений, моделирующих интеллектуальное поведение на основе биологических элементов, а также создание соответствующих вычислительных систем, таких как нейрокомпьютер или биокомпьютер.

Слайд 9 Уровни языков программирования

Естественные языки
Терминология конкретной предметной области

Высокоуровневые языки

Уровни языков программированияЕстественные языкиТерминология конкретной предметной областиВысокоуровневые языки программированияНизкоуровневые языки программирования

программирования

Низкоуровневые языки программирования (напр. C)

Ассемблер (мнемокоды)
Машинный код (то, что

исполняет процессор)

Слайд 10 Языки высокого/низкого уровня
Языки высокого уровня – максимально приближены

Языки высокого/низкого уровняЯзыки высокого уровня – максимально приближены к задаче. Наиболее

к задаче. Наиболее выражено в предметно ориентированных языках.
Приоритет –

что?
Языки низкого уровня – в центре внимания не задача, а технология её реализации, связанная с языком / машиной. Привлекаются дополнительные понятия, не связанные с задачей.
Приоритет – как?


Слайд 11 Разнообразие языков программирования
Со времени создания первых программируемых машин

Разнообразие языков программированияСо времени создания первых программируемых машин человечество придумало >

человечество придумало > 8500 языков программирования. Каждый год их

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


Слайд 12 Парадигмы программирования
Архитектура машины, ассемблер
Формула-ориентированные
Процедурное, структурное программирование
Объектно-ориентированное программирование
Языково-ориентированное программирование
Сейчас

Парадигмы программированияАрхитектура машины, ассемблерФормула-ориентированныеПроцедурное, структурное программированиеОбъектно-ориентированное программированиеЯзыково-ориентированное программированиеСейчас

Слайд 13 Классификации языков
Языки программирования
Высокого уровня
Низкого уровня:
C / C++, Assembler
Общего

Классификации языковЯзыки программированияВысокого уровняНизкого уровня:C / C++, AssemblerОбщего назначения:Perl, Java, PythonПредметно-ориентированные:Matlab,

назначения:
Perl, Java, Python
Предметно-ориентированные:
Matlab, PL SQL, AutoLisp
Языки программирования
Императивные:
C, Java, Perl
Декларативные
Функциональные

языки:
LISP, Haskell

Языки логического прогр.:
Prolog

Мультипарадигменные
Ruby


Слайд 14 Программист как преобразователь контекста

Программист как преобразователь контекста

Слайд 15 Предметно-ориентированный подход
Программа на предметно-ориентированном языке
Реализация (трансляция)
Описание задачи на

Предметно-ориентированный подходПрограмма на предметно-ориентированном языкеРеализация (трансляция)Описание задачи на естественном языкеГотовая исполняемая

естественном языке
Готовая исполняемая программа
…создать web-приложение для ведения каталога книг..


…хранить каталог книг.. осуществлять поиск по авторам …

Элементы управления, общие элементы всех web-приложений и т.д.

Работающий сайт

Максимально приближена к описанию на ест. языке


Слайд 16 ПОЯ
Предметно-ориентированный язык программирования (англ. domain-specific programming language, domain-specific

ПОЯПредметно-ориентированный язык программирования (англ. domain-specific programming language, domain-specific language, DSL) —

language, DSL) — язык программирования, специально разработанный для решения

определённого круга задач, в отличие от языков программирования общего назначения, например C или Java, или языков моделирования общего назначения наподобие UML.

Слайд 17 Требования к ПО
Функциональность: программа должна выполнять ожидаемые функции.

Требования к ПОФункциональность: программа должна выполнять ожидаемые функции. Функции нужно реализовывать

Функции нужно реализовывать в порядке их необходимости заказчику, чтобы

это сделать, необходимо «вникнуть» в предметную область и определить, что действительно важно заказчику; выделить главные, вспомогательные и второстепенные функции.
Надежность: необходимо обеспечить минимум ошибок, сбоев, защиту информации от непреднамеренной порчи. Программа должна разумно реагировать на ввод пользователем любых данных, иначе пользователи будут «бояться» ошибиться, что, как минимум, замедлит их работу с системой. Кроме того, программы, предназначенные для работы в компьютерных сетях, требуют защиты от разного рода вирусных и хакерских атак, – программа должна проверять все входящие данные, особенно тщательно те, которые приходят по сети.
Удобство: программа должна иметь интуитивно-понятный интерфейс, удобный для пользователя. Нужно минимизировать количество действий, необходимых пользователю для выполнения задачи, но не в ущерб понятности самих действий.
Эффективность: программа должна эффективно использовать память, процессор, «жёсткий» диск и другие ресурсы системы. В особых случаях (когда «медлительность» системы критична) это требование становится едва ли не самым важным, важнее надёжности, но чаще оно менее существенно, чем сопровождение.
Сопровождение: программа должна быть понятной, гибкой и «простой в сопровождении, переносе на новые платформы и развитии» - это требование программистов, в отличие от предыдущих, которые являются требованиями заказчиков, пользователей. Удобство сопровождения, как правило, находится в противоречии с эффективностью и для большинства программ более важно. Понятность программы позволяет быстро её развивать, добавлять новые функции, исправлять ошибки.


Слайд 18 Виды ПОЯ
ПОЯ могут быть:
графическими (процесс программирования – «рисование»

Виды ПОЯПОЯ могут быть:графическими (процесс программирования – «рисование» схемы в специальном

схемы в специальном редакторе);
текстовыми (программирование – составление текста на

некотором формальном языке).
Кроме того, ПОЯ можно разделить на:
статические – языки, в которых не важно, в каком порядке программист рисует элементы схемы или составляет текст программы;
динамические – имеет значение порядок действий (например, в Geometer's Sketchpad последовательность геометрического построения задаёт алгоритм).


Слайд 19 Создание ПОЯ
Проектирование языка программирования
Реализация интерпретаторов (компиляторов) для выбранных

Создание ПОЯПроектирование языка программированияРеализация интерпретаторов (компиляторов) для выбранных платформСоздание редактора (среды

платформ
Создание редактора (среды разработки)

При создании ПОЯ нужно разработать не

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

Слайд 20 Использовать достаточно гибкий существующий универсальный Язык Программирования (C#,

Использовать достаточно гибкий существующий универсальный Язык Программирования (C#, Java, Python) и

Java, Python) и добавить предметно-ориентированные возможности при помощи библиотеки

компонентов (Framework’а);
Использовать существующую систему для создания предметно-ориентированных языков (Meta Programming System от JetBrains или DSL от Microsoft – позволяет рисовать графические схемы и генерировать по ним код);
Использовать среду программирования, в которой синтаксические конструкции языка можно модифицировать (настраивать процесс компиляции на определенную предметную область). Например, среда Phoenix, дополнение к компиляторам .Net;
Создать собственный ЯП с компилятором, отладчиком и т.д. Для генерации лексического анализатора можно использовать продукты lex и yacc;


Слайд 21 Процесс компиляции

Процесс компиляции

Слайд 22 Geometer’s Sketchpad

Geometer’s Sketchpad

Слайд 24 Пример: Создание иконки

Пример: Создание иконки

Слайд 25 Схема работы «Журнала в журнале»

Схема работы «Журнала в журнале»

Слайд 26 Программирование на языке общего назначения

Программирование на языке общего назначения

Слайд 27 Программирование на основе ПОЯ

Программирование на основе ПОЯ

Слайд 28 Интерфейс учителя

Интерфейс учителя

Слайд 29 Интерфейс ученика

Интерфейс ученика

Слайд 30 Разбиение системы на модули

Разбиение системы на модули

Слайд 31 Элементы редактора

Элементы редактора

Слайд 32 Редакторы

Редакторы

Слайд 33 Delphi – предметная ориентированность
Редактор интерфейса позволяет визуально (без

Delphi – предметная ориентированностьРедактор интерфейса позволяет визуально (без программирования) нарисовать большую

программирования) нарисовать большую часть интерфейса. Процесс создания нагляден.
Встроенные

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


Слайд 34 Работа в среде Delphi

Работа в среде Delphi

Слайд 35 http://www.jetbrains.com/mps/

http://www.jetbrains.com/mps/

Слайд 36 Создание языка

Создание языка

Слайд 37 Создание редактора

Создание редактора

Слайд 38 Использование - sandbox

Использование - sandbox

Слайд 39 Создаём поле ввода данных

Создаём поле ввода данных

Слайд 40 И редактор для него

И редактор для него

Слайд 41 Добавляем поле в калькулятор

Добавляем поле в калькулятор

Слайд 42 Генерируем и тестируем полученный язык

Генерируем и тестируем полученный язык

Слайд 43 Выходное поле и формула

Выходное поле и формула

Слайд 44 Можем использовать значение входных полей

Можем использовать значение входных полей

Слайд 45 Создаем генератор кода

Создаем генератор кода

Слайд 46 Создание полей «в цикле»

Создание полей «в цикле»

Слайд 47 Ссылка на другой макрос

Ссылка на другой макрос

Слайд 48 Пример использования

Пример использования

Слайд 49 Готовая программа

Готовая программа

  • Имя файла: predmetno-orientirovannoe-programmirovanie.pptx
  • Количество просмотров: 141
  • Количество скачиваний: 0