🗊Презентация Fpl – functional programming language

Нажмите для полного просмотра!
Fpl – functional programming language, слайд №1Fpl – functional programming language, слайд №2Fpl – functional programming language, слайд №3Fpl – functional programming language, слайд №4Fpl – functional programming language, слайд №5Fpl – functional programming language, слайд №6Fpl – functional programming language, слайд №7Fpl – functional programming language, слайд №8Fpl – functional programming language, слайд №9Fpl – functional programming language, слайд №10Fpl – functional programming language, слайд №11Fpl – functional programming language, слайд №12Fpl – functional programming language, слайд №13Fpl – functional programming language, слайд №14Fpl – functional programming language, слайд №15Fpl – functional programming language, слайд №16

Вы можете ознакомиться и скачать презентацию на тему Fpl – functional programming language. Доклад-сообщение содержит 16 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Fpl – functional programming language
Дополним язык Exp4 возможностью декларирования взаимно-рекурсивных функций вида: 
f1(x1,…xk1) <= e1
…
fn(x1,…xkn) <= en

Это список определений функций: fi – имя функции, ei – её тело, а (x1,…xki) – список параметров.
Новый язык будем называть Fpl .
Описание слайда:
Fpl – functional programming language Дополним язык Exp4 возможностью декларирования взаимно-рекурсивных функций вида: f1(x1,…xk1) <= e1 … fn(x1,…xkn) <= en Это список определений функций: fi – имя функции, ei – её тело, а (x1,…xki) – список параметров. Новый язык будем называть Fpl .

Слайд 2





Абстрактный синтаксис языка 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//
Описание слайда:
Абстрактный синтаксис языка 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





Ограничение
	В каждой программе <e,D> должны выполняться условия:
Каждое имя функции, встречающееся в e должно иметь определение в D.
 Каждое имя функции может иметь только одно определение в D.
Описание слайда:
Ограничение В каждой программе <e,D> должны выполняться условия: Каждое имя функции, встречающееся в e должно иметь определение в D. Каждое имя функции может иметь только одно определение в D.

Слайд 4





Отношение A для языка Fpl
Записывается
	 D, ρ├ e A v	,
 а читается так:
«Если продекларировано D , то в окружении ρ выражение e даст арифметический результат v»
Имеет тип:
 A  : Dec  ENV  Exp  Num
Декларации влияют и на вычисление булевых значений
Описание слайда:
Отношение A для языка Fpl Записывается D, ρ├ e A v , а читается так: «Если продекларировано D , то в окружении ρ выражение e даст арифметический результат v» Имеет тип: A : Dec  ENV  Exp  Num Декларации влияют и на вычисление булевых значений

Слайд 5





Отношение B для языка Fpl
Декларации влияют и на вычисление булевых значений. Например, выражение Equal(f(e),g(e’)) – булево и использует функции f и g. Следовательно отношение B имеет тип:
 B  : Dec  ENV  BExp  {T,F}
Описание слайда:
Отношение B для языка Fpl Декларации влияют и на вычисление булевых значений. Например, выражение Equal(f(e),g(e’)) – булево и использует функции f и g. Следовательно отношение B имеет тип: B : Dec  ENV  BExp  {T,F}

Слайд 6





Результат работы программы
Отношения A и B позволяют определить результат программы <e,D>.

ρ├ <e,D>  v
если

D, ρ├ e A v
Описание слайда:
Результат работы программы Отношения A и B позволяют определить результат программы <e,D>. ρ├ <e,D>  v если D, ρ├ e A v

Слайд 7





Естественная семантика
языка Fpl
Правило FunR
Описание слайда:
Естественная семантика языка Fpl Правило FunR

Слайд 8





Способы передачи параметров
По правилу FunR для вычисления f(e1,…ek) сначала нужно вычислить параметры e1,…ek, а потом тело функции из определения f в окружении, в которое добавлены связи формальных параметров с действительными. Это передача параметров по значению (call by value).
Но можно передавать параметры не вычисляя, просто подставляя выражения в тело функции. Это передача параметров по имени (call by name).
Передача параметров по значению используется в строгих функциональных языках, а передача параметров по имени – в ленивых.
Описание слайда:
Способы передачи параметров По правилу FunR для вычисления f(e1,…ek) сначала нужно вычислить параметры e1,…ek, а потом тело функции из определения f в окружении, в которое добавлены связи формальных параметров с действительными. Это передача параметров по значению (call by value). Но можно передавать параметры не вычисляя, просто подставляя выражения в тело функции. Это передача параметров по имени (call by name). Передача параметров по значению используется в строгих функциональных языках, а передача параметров по имени – в ленивых.

Слайд 9





Передача параметров по имени
Описание слайда:
Передача параметров по имени

Слайд 10





Теоремы
Для языка Fpl нельзя доказать теорему, что для каждого выражения  e Fpl можно найти результат, поскольку если f(x) <= f(x+1)  D , то выражение, содержащее вызов f будет вычисляться бесконечно.
Теорема об уникальности результата справедлива.
Для каждого выражения  e Fpl, окружения  и программы p=<e,D>, из ρ├ p  n и ρ├ p  n’ следует, что n=n’.
В доказательстве метод структурной индукции неприменим. Нужно использовать метод индукции 
по дереву вывода.
Описание слайда:
Теоремы Для языка Fpl нельзя доказать теорему, что для каждого выражения e Fpl можно найти результат, поскольку если f(x) <= f(x+1)  D , то выражение, содержащее вызов f будет вычисляться бесконечно. Теорема об уникальности результата справедлива. Для каждого выражения e Fpl, окружения  и программы p=<e,D>, из ρ├ p  n и ρ├ p  n’ следует, что n=n’. В доказательстве метод структурной индукции неприменим. Нужно использовать метод индукции по дереву вывода.

Слайд 11





Случай EqR
По индукции предположим: 
PA(ρ,e,v), PA(ρ,e’,v).          (1),(2)
Описание слайда:
Случай EqR По индукции предположим: PA(ρ,e,v), PA(ρ,e’,v). (1),(2)

Слайд 12





Случай EqR
Описание слайда:
Случай EqR

Слайд 13





Случай LocR
По индукции предположим: 
PA(ρ,e,v),				(1)
PA(ρ[v/x],e’,w'). 		(2)
Описание слайда:
Случай LocR По индукции предположим: PA(ρ,e,v), (1) PA(ρ[v/x],e’,w'). (2)

Слайд 14





Случай LocR
Описание слайда:
Случай LocR

Слайд 15





Случай FunR
По индукции предположим: 
PA(ρ,ei,vi),1≤i≤k          	     (1)
 PA(ρ[v1/x1,...vk/xk ],e,v).   	(2)
Описание слайда:
Случай FunR По индукции предположим: PA(ρ,ei,vi),1≤i≤k (1) PA(ρ[v1/x1,...vk/xk ],e,v). (2)

Слайд 16





Случай FunR
Описание слайда:
Случай FunR



Похожие презентации
Mypresentation.ru
Загрузить презентацию