Презентация на тему "Предметно-ориентированное программирование" 11 класс

Презентация: Предметно-ориентированное программирование
1 из 50
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
4.0
1 оценка

Комментарии

Нет комментариев для данной презентации

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


Добавить свой комментарий

Аннотация к презентации

Посмотреть и скачать презентацию по теме "Предметно-ориентированное программирование" по информатике, включающую в себя 50 слайдов. Скачать файл презентации 2.53 Мб. Средняя оценка: 4.0 балла из 5. Для учеников 11 класса. Большой выбор учебных powerpoint презентаций по информатике

Содержание

  • Презентация: Предметно-ориентированное программирование
    Слайд 1

    Предметно - ориентированное программирование

    Степулёнок Денис Олегович 1

  • Слайд 2

    Искусственный интеллект

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

  • Слайд 3

    Фантастика: разговор с компьютером

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

  • Слайд 4

    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

  • Слайд 6

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

  • Слайд 7

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

  • Слайд 8

    Основные подхода к разработке ИИ:

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

  • Слайд 9

    Уровни языков программирования

    Естественные языки Терминология конкретной предметной области Высокоуровневые языки программирования Низкоуровневые языки программирования (напр. C) Ассемблер (мнемокоды) Машинный код (то, что исполняет процессор) 9

  • Слайд 10

    Языки высокого/низкого уровня

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

  • Слайд 11

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

  • Слайд 12

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

  • Слайд 13

    13 Классификации языков Языки программирования Высокого уровня Низкого уровня: C / C++, Assembler Общего назначения: Perl, Java, Python Предметно-ориентированные: Matlab, PL SQL, AutoLisp Языки программирования Императивные: C, Java, Perl Декларативные Функциональные языки: LISP, Haskell Языки логического прогр.: Prolog Мультипарадигменные Ruby

  • Слайд 14

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

  • Слайд 15

    Предметно-ориентированный подход

    15 Программа на предметно-ориентированном языке Реализация (трансляция) Описание задачи на естественном языке Готовая исполняемая программа …создать web-приложение для ведения каталога книг.. …хранить каталог книг.. осуществлять поиск по авторам … Элементы управления, общие элементы всех web-приложений и т.д. Работающий сайт Максимально приближена к описанию на ест. языке

  • Слайд 16

    ПОЯ

    Предметно-ориентированный язык программирования (англ.domain-specific programming language, domain-specific language, DSL) — язык программирования, специально разработанный для решения определённого круга задач, в отличие от языков программирования общего назначения, например C или Java, или языков моделирования общего назначения наподобие UML.

  • Слайд 17

    Требования к ПО

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

  • Слайд 18

    Виды ПОЯ

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

  • Слайд 19

    Создание ПОЯ

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

  • Слайд 20

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

  • Слайд 21

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

    21

  • Слайд 22

    Geometer’s Sketchpad

  • Слайд 23
  • Слайд 24

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

  • Слайд 25

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

  • Слайд 26

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

  • Слайд 27

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

  • Слайд 28

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

  • Слайд 29

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

  • Слайд 30

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

  • Слайд 31

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

  • Слайд 32

    Редакторы

  • Слайд 33

    Delphi – предметная ориентированность

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

  • Слайд 34

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

  • Слайд 35

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

  • Слайд 36

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

  • Слайд 37

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

  • Слайд 38

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

  • Слайд 39

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

  • Слайд 40

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

  • Слайд 41

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

  • Слайд 42

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

  • Слайд 43

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

  • Слайд 44

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

  • Слайд 45

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

  • Слайд 46

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

  • Слайд 47

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

  • Слайд 48

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

  • Слайд 49

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

  • Слайд 50

    Спасибо за внимание!

    Вопросы?

Посмотреть все слайды

Сообщить об ошибке