Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
16 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
307.50 kB
Просмотров:
47
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Fpl functional programming](/documents_6/844469a9815a5a441f6036aad19d7787/img0.jpg)
Содержание слайда: Fpl – functional programming language
Дополним язык Exp4 возможностью декларирования взаимно-рекурсивных функций вида:
f1(x1,…xk1) <= e1
…
fn(x1,…xkn) <= en
Это список определений функций: fi – имя функции, ei – её тело, а (x1,…xki) – список параметров.
Новый язык будем называть Fpl .
№2 слайд![Абстрактный синтаксис языка](/documents_6/844469a9815a5a441f6036aad19d7787/img1.jpg)
Содержание слайда: Абстрактный синтаксис языка Fpl
Синтаксические категории
p Prog op Op
D Dec bop BOp
е Exp x Var
bе BExp bx BVar
f FunVar n Num
2)Определения
p ::= <e,D>
D ::= f(x1,…xk) <= e | f(x1,…xk) <= e, D’
op ::= + | - | * | div
bop ::= And | Or
e ::= x | n | e/ op e// | let x=e’ in e” |
if be then e/ else e// |
f(e1,…ek), где k - арность f
be ::= bx | T | F | Not be/| Equal (e,e/)
| be/ bop be//
№3 слайд![Ограничение В каждой](/documents_6/844469a9815a5a441f6036aad19d7787/img2.jpg)
Содержание слайда: Ограничение
В каждой программе <e,D> должны выполняться условия:
Каждое имя функции, встречающееся в e должно иметь определение в D.
Каждое имя функции может иметь только одно определение в D.
№4 слайд![Отношение A для языка Fpl](/documents_6/844469a9815a5a441f6036aad19d7787/img3.jpg)
Содержание слайда: Отношение A для языка Fpl
Записывается
D, ρ├ e A v ,
а читается так:
«Если продекларировано D , то в окружении ρ выражение e даст арифметический результат v»
Имеет тип:
A : Dec ENV Exp Num
Декларации влияют и на вычисление булевых значений
№5 слайд![Отношение B для языка Fpl](/documents_6/844469a9815a5a441f6036aad19d7787/img4.jpg)
Содержание слайда: Отношение B для языка Fpl
Декларации влияют и на вычисление булевых значений. Например, выражение Equal(f(e),g(e’)) – булево и использует функции f и g. Следовательно отношение B имеет тип:
B : Dec ENV BExp {T,F}
№6 слайд![Результат работы программы](/documents_6/844469a9815a5a441f6036aad19d7787/img5.jpg)
Содержание слайда: Результат работы программы
Отношения A и B позволяют определить результат программы <e,D>.
ρ├ <e,D> v
если
D, ρ├ e A v
№7 слайд![Естественная семантика языка](/documents_6/844469a9815a5a441f6036aad19d7787/img6.jpg)
Содержание слайда: Естественная семантика
языка Fpl
Правило FunR
№8 слайд![Способы передачи параметров](/documents_6/844469a9815a5a441f6036aad19d7787/img7.jpg)
Содержание слайда: Способы передачи параметров
По правилу FunR для вычисления f(e1,…ek) сначала нужно вычислить параметры e1,…ek, а потом тело функции из определения f в окружении, в которое добавлены связи формальных параметров с действительными. Это передача параметров по значению (call by value).
Но можно передавать параметры не вычисляя, просто подставляя выражения в тело функции. Это передача параметров по имени (call by name).
Передача параметров по значению используется в строгих функциональных языках, а передача параметров по имени – в ленивых.
№9 слайд![Передача параметров по имени](/documents_6/844469a9815a5a441f6036aad19d7787/img8.jpg)
Содержание слайда: Передача параметров по имени
№10 слайд![Теоремы Для языка Fpl нельзя](/documents_6/844469a9815a5a441f6036aad19d7787/img9.jpg)
Содержание слайда: Теоремы
Для языка Fpl нельзя доказать теорему, что для каждого выражения e Fpl можно найти результат, поскольку если f(x) <= f(x+1) D , то выражение, содержащее вызов f будет вычисляться бесконечно.
Теорема об уникальности результата справедлива.
Для каждого выражения e Fpl, окружения и программы p=<e,D>, из ρ├ p n и ρ├ p n’ следует, что n=n’.
В доказательстве метод структурной индукции неприменим. Нужно использовать метод индукции
по дереву вывода.
№11 слайд![Случай EqR По индукции](/documents_6/844469a9815a5a441f6036aad19d7787/img10.jpg)
Содержание слайда: Случай EqR
По индукции предположим:
PA(ρ,e,v), PA(ρ,e’,v). (1),(2)
№12 слайд![Случай EqR](/documents_6/844469a9815a5a441f6036aad19d7787/img11.jpg)
Содержание слайда: Случай EqR
№13 слайд![Случай LocR По индукции](/documents_6/844469a9815a5a441f6036aad19d7787/img12.jpg)
Содержание слайда: Случай LocR
По индукции предположим:
PA(ρ,e,v), (1)
PA(ρ[v/x],e’,w'). (2)
№14 слайд![Случай LocR](/documents_6/844469a9815a5a441f6036aad19d7787/img13.jpg)
Содержание слайда: Случай LocR
№15 слайд![Случай FunR По индукции](/documents_6/844469a9815a5a441f6036aad19d7787/img14.jpg)
Содержание слайда: Случай FunR
По индукции предположим:
PA(ρ,ei,vi),1≤i≤k (1)
PA(ρ[v1/x1,...vk/xk ],e,v). (2)
№16 слайд![Случай FunR](/documents_6/844469a9815a5a441f6036aad19d7787/img15.jpg)
Содержание слайда: Случай FunR