Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
19 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
189.00 kB
Просмотров:
47
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Семантика императивного языка](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img0.jpg)
Содержание слайда: Семантика императивного языка While
№2 слайд![Абстрактный синтаксис языка](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img1.jpg)
Содержание слайда: Абстрактный синтаксис языка While
Синтаксические категории
№3 слайд![Абстрактный синтаксис языка](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img2.jpg)
Содержание слайда: Абстрактный синтаксис языка While
№4 слайд![Естественная семантика языка](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img3.jpg)
Содержание слайда: Естественная семантика языка While
Отношение «вычисляет» определяется утверждениями вида:
<С,s> s’,
где С – команда,
s - состояние переменных.
Правила.
[ass] <x:=e,s> s[x/A[e]s],
где A[e]s обозначает s├eAv
[skip] < skip,s> s.
№5 слайд![Естественная семантика языка](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img4.jpg)
Содержание слайда: Естественная семантика языка While
<С1,s> s’, <С2,s’> s”
[comp]
<С1;С2,s> s”
№6 слайд![Естественная семантика языка](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img5.jpg)
Содержание слайда: Естественная семантика языка While
<С1,s> s’
[ift] [B[be]s=T]
<if be then С1 else С2,s> s’
<С2,s> s’
[iff] [B[be]s=F]
<if be then С1 else С2,s> s’
где B[be]s=bv обозначает s├beBbv
№7 слайд![Естественная семантика языка](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img6.jpg)
Содержание слайда: Естественная семантика языка While
<С,s> s’ <while be do С,s’> s”
[whilet] [B[be]s=T]
<while be do С,s> s”
[whilef] [B[be]s=F]
<while be do С,s> s
№8 слайд![Реализация на Прологе -op](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img7.jpg)
Содержание слайда: Реализация на Прологе 1
:-op(880,xfx,:=).
:-op(890,xfx,[then,else,do]).
:-op(900,fy,[if,while]).
:-op(910,xfy,>>).
test (y:=1 >> while x>0 do
(y:= y*x >> x:=x-1)).
№9 слайд![АСД тестовой программы](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img8.jpg)
Содержание слайда: АСД тестовой программы
№10 слайд![Реализация на Прологе store](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img9.jpg)
Содержание слайда: Реализация на Прологе 2
store(X,V,[],[X/V]) :- !.
store(X,V,[X/_|T],[X/V|T]) :- !.
store(X,V,[X1/V1|T],[X1/V1|Tn]) :-
store(X,V,T,Tn).
№11 слайд![Реализация на Прологе eval X](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img10.jpg)
Содержание слайда: Реализация на Прологе 3
eval(X:=E,S,Sn) :-
arith(S,E,V),
store(X,V,S,Sn).
eval(skip,S,S).
eval(C1 >> C2,St0,St2) :-
eval(C1,St0,St1),
eval(C2,St1,St2).
№12 слайд![Реализация на Прологе eval if](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img11.jpg)
Содержание слайда: Реализация на Прологе 4
eval(if B then C1 else _,St0,St1) :-
beval(St0,B,tt),!,
eval(C1,St0,St1).
eval(if _ then _ else C2,St0,St1) :-
eval(C2,St0,St1).
eval(while B do C, St0, St1) :-
beval(St0,B,tt),!,
eval(C >> (while B do C),St0,St1).
eval(while _ do _, St, St).
№13 слайд![Семантическая эквивалентность](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img12.jpg)
Содержание слайда: Семантическая эквивалентность команд
Команды C1 и C2 семантически эквивалентны, если для любых двух состояний s и s’ справедливо:
<C1,s>s’ <C2,s>s’
Докажем, что команды
while be do C
и
if be then (C; while be do C)
else skip
семантически эквивалентны.
№14 слайд![Доказательство Часть Докажем,](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img13.jpg)
Содержание слайда: Доказательство
Часть 1
Докажем, что если
<while be do C, s> s” (1)
то и
< if be then (C; while be do C)
else skip, s> s” (2)
из истинности посылки (1) следует, что для неё существует дерево вывода T. Корень этого дерева может иметь одну из двух форм, в зависимости от того, использовалось ли правило [whilet] или [whilef] .
№15 слайд![Доказательство продолжение В](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img14.jpg)
Содержание слайда: Доказательство (продолжение)
В первом случае дерево T , будет иметь форму:
T1 T2
<while be do C, s> s”
где
T1 - дерево вывода с корнем <C,s> s’, а
T2 - имеет корень <while be do C, s’> s” .
Более того B[b]s=T .
№16 слайд![Доказательство продолжение](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img15.jpg)
Содержание слайда: Доказательство (продолжение)
Использовав T1 и T2 как посылки правила [comp] получим дерево:
T1 T2
<C; while be do C, s> s”
Учитывая, что B[be]s=T можно применив правило [ift] получим дерево:
T1 T2
<C; while be do C, s> s”
<if be then (C; while be do C) else skip, s> s”
В нём получился вывод заключения (2)
№17 слайд![Доказательство продолжение Во](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img16.jpg)
Содержание слайда: Доказательство (продолжение)
Во втором случае, когда использовалось правило [whilef] и выполнялось условие B[b]s=F, тогда s = s” . Дерево T будет иметь форму:
<while be do C, s> s
Используя аксиому [skip] получим
<skip,s> s,
а применив правило [iff] получим дерево вывода для (2): <skip, s> s
<if be then (C; while be do C) else skip, s> s
В нём получился вывод заключения (2), если учесть, что
s = s” .
Это завершает доказательство первой части.
№18 слайд![Доказательство продолжение](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img17.jpg)
Содержание слайда: Доказательство (продолжение)
Часть 2
Докажем импликацию в обратном порядке: если
< if be then (C; while be do C)
else skip, s> s” (2)
то и
<while be do C, s> s” (1)
Для этого, имея дерево вывода T для (2), нужно построить дерево вывода для (1) . Для (2) дерево вывода могло быть построено только правилами [ift] или [iff].
№19 слайд![Доказательство продолжение В](/documents_6/46e6c5d5548d6298edab0b4711479fcc/img18.jpg)
Содержание слайда: Доказательство (продолжение)
В первом случае, когда B[be]s=T, вершина (2) получена из вершины
T1 = < C; while be do C, s> s”,
которая , в свою очередь как композиция операторов могла быть получена только по правилу [comp] . Значит к T1 ведут две ветви:
T2 = < C, s> s’,
T3 = < while be do C, s’> s”.
Теперь, если T2 и T3 в качестве посылок для правила [whilet] получим дерево вывода для (1).
Во втором случае, когда выполнялось условие B[b]s=F, дерево T будет строиться по правилу [iff] и, тогда получим ветвь для <skip, s> s”. На основании аксиомы [skip] получим, что s = s” . Теперь, применив аксиому [whilef] получим дерево вывода для (1).