Upload
denis-perevalov
View
754
Download
0
Embed Size (px)
Citation preview
Программирование будущего
Как научить компьютер делать то, что нужно, без всякого программирования
Денис Сергеевич ПереваловИнститут Математики и Механики им. Н.Н.Красовского
Что такое программа?Программа - последовательность действий
Чайная программаПрограмма приготовления чая1. Вскипятить воду2. Налить в кружку воду3. Налить в кружку заварку4. Добавить сахар5. Размешать
Как объяснить роботу?Программа приготовления чая1. Вскипятить воду2. Налить в кружку воду3. Налить в кружку заварку4. Добавить сахар5. Размешать
Универсальный робот, скорее всего, не сможет выполнить сразу. Почему?
Робот какая вода - из крана или из льда с улицы? сколько вскипятить?
какую взять кружку?сколько налить воды в кружку?сколько заварки? сколько сахара?сколько времени размешивать?
Подробная чайная программа1. Вскипятить воду (200 мг воды из фильтра)2. Налить в кружку воду, ⅘ воды; в чистую кружку, самую большую3. Налить в кружку заварку ( заварки)⅕4. Добавить сахар (2 чайных ложки)5. Размешать (20 сек)
Подробная чайная программаА если заварки нет? ...
Программа становится больше и больше…
В программах для компьютера - такая же проблема.
Программы должны быть очень подробными, чтобы быть готовыми ко всем неожиданностям.
Способы программирования
Процедурный - КАК
1. А положить равным 32. Б положить равным 43. В положить равным сумме А и Б4. Вывести на экран значение В
Способы программирования
Декларативный - ЧТО
Способы программирования
Обучение на примерах - ПОВТОРЯЙ ЗА МНОЙ
Способы программирования
Процедурный - КАК
Декларативный - ЧТО
Обучение на примерах - ПОВТОРЯЙ ЗА МНОЙ
Программирование будущего
Программирование сегодняшнего дня
Тезис Чёрча-Тьюринга
Процедурный - КАК Программирование сегодняшнего дня
Любое вычисление можно запрограммировать процедурно
Простейший вычислитель - “машина Тьюринга”
Всё чётко, но программировать - бывает долго и утомительно!”
Декларативное программированиеЗадаём факты и правила о “мире”, и задаём задачу. Программа строится сама, и решает задачу.
Поиск пути робота - задаём схему комнаты,начальную и конечную точку, и программа “поиск пути” строит путь сама.
Пролог
Денис
Ольга Сергей
Вера Алексей Галина Геннадий
Декларативный язык программирования.Введём в него систему родственных отношений:
Мать = Родитель + Женщина.Бабушка = Родитель Матери.
Язык программирования Прологродитель(ольга,денис).родитель(сергей,денис).
родитель(вера,ольга).родитель(алексей,ольга).родитель(галина,сергей).родитель(геннадий,сергей).
женщина(ольга).женщина(вера).женщина(галина).
мать(X,Y) :- родитель(X,Y),женщина(X).бабушка(X,Y) :- мать(X,Z),родитель(Z,Y).
Денис
Ольга Сергей
Вера Алексей Галина Геннадий
Мать = Родитель + Женщина.Бабушка = Родитель Матери.
Обучение на примерахМакрорекордер - программа, запоминяющая ваши действия и повторяющая их.
Демо - Automator
Обучение на примерахПрограммы “дорисовки” - по фрагменту изображения, дорисовывают до нужных размеров
Wolfram Alphahttp://habrahabr.ru/post/244729/
Обучение на примерах
Обучение на примерах
Обучение на примерах
Демо программы продолжения линий
Благодарности1. Спасибо В.Б. Костоусову (ИММ УрО РАН) за семинары по Си++ и
шаблонам проектирования2. Спасибо В.Л.Авербуху (ИММ УрО РАН) за то, что в 11 классе школе
познакомил меня с программированием путём демонстраций3. Спасибо Т.Б. Токманцеву (ИММ УрО РАН) за идеи и сведения про
современные методы тестирования.4. Спасибо А.В. Марьяновой (УрФУ) за ссылку на Inpainting