Successfully reported this slideshow.
Upcoming SlideShare
×

# 20120309 formal semantics shilov_lecture06

478 views

Published on

• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

### 20120309 formal semantics shilov_lecture06

1. 1. Computer Science клуб - Екатеринбург Март 2012 Fun with Formal Program Semantics (О формальной семантике программ – просто) Шилов Николай Вячеславович03/14/12 Шилов Николай Вячеславович Всего слайдов 36 1
2. 2. Тема 3: Понятие о денотационной семантике языков программирования (на примере ToyPL)03/14/12 Шилов Николай Вячеславович Всего слайдов 36 2
3. 3. Реляционная денотационная семантика ToyPL• Let VRS be the set of all variables that are admissible in ToyPL and let SupSts be the set of all total functions ss: VRS → Z/2N.Letusdenote• Thus, for every super-state ss and every ToyPL- program α, the restriction (ss|α)of ss on the set VAR(α) is a state of α.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 3
4. 4. Реляционная денотационная семантика ToyPL• Let SupSts⇒SupSts denote the set of all partial functions f:SupSts → SupSts.• Some useful functions in this set are deﬁned below: – abort is the totally undefined function ∅ on super-states; – skip is the identical function λss.ss on super- states; – for every condition ϕ the test function ϕ?= {(ss,ss): ss |= ϕ}; – for every variable x and every expression t the update function UPDx,t = λss. upd(ss, x, ss(t)).03/14/12 Шилов Николай Вячеславович Всего слайдов 36 4
5. 5. Реляционная денотационная семантика ToyPL• Several operations can be defined on functions in SupSts ⇒SupSts: – the unary identity operation I = λF.F; – binary composition operation such that (F◦G)(ss)= G(F(ss)) for allfunctions F,G∈(SupSts⇒SupSts) and every super-state ss; – (in)ﬁnitary union operation such that (∪m∈MFm) (ss)= Fm(ss), if ss∈dom(Fm) for every (finite or infinite) family of functions Fm∈(SupSts⇒SupSts), m∈M, with disjoint domains, and everysuper- state ss.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 5
6. 6. Реляционная денотационная семантика ToyPL• Some other useful operations can be derived as follows: – for every m≥0 a unary m-power operation such that F0= skip, F1= F and Fm+1 F◦Fm for every function F∈(SupSts⇒SupSts); – a binary union operation (F1∪F2)= ∪m∈{1,2}Fm for all functions F1, F2 with disjoint domains;03/14/12 Шилов Николай Вячеславович Всего слайдов 36 6
7. 7. Реляционная денотационная семантика ToyPL – for every condition ϕ, a binary choice operation IFϕ such that IFϕ(F,G)= ((ϕ? ◦ F) ∪ ((¬ϕ)? ◦ G)) for all functions F,G∈(SupSts⇒SupSts);• Упражнение #1: Проверте, что (ϕ?◦F) и ((¬ϕ)?◦G) дизъюнктивны (т.е. имеют непересекающиеся области определения).03/14/12 Шилов Николай Вячеславович Всего слайдов 36 7
8. 8. Реляционная денотационная семантика ToyPL – for every condition ϕ, a unary loop operation WHϕ such that WHϕ(F)= (∪m≥0((ϕ? ◦ F)m ◦(¬ϕ)?) for every function F∈(SupSts⇒SupSts).• Упражнение #2: Проверьте, что все функции (ϕ? ◦F)m◦(¬ϕ)?, m ≥ 0, дизъюнктивны.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 8
9. 9. Реляционная денотационная семантика ToyPL• Now we are ready to define the relational (denotational) semantics forToyPL. Let us consider the following algebra ⟨(SupSts⇒SupSts), I,◦, UPD, IF, WH⟩,• where – UPD is the set of all update operations UPDx,t for all variables x and expressions t, – IF is the set of all choice operations IFϕ for every condition ϕ, – WH is the set of all loop operations WHϕ for every condition ϕ.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 9
10. 10. Реляционная денотационная семантика ToyPL• Assign the elements of the algebra to ToyPL- programs and the operations of this algebra toToyPL- constructs as follows:• [[x:=t]]= UPDx,t;• [[(...)]]= I = λF.F;• [[;]]= ◦ = λF,G.(F ◦ G);• [[if ϕ then...else...]] = IFϕ = λF,G. IFϕ(F,G);• [[while ϕ do...]]= WHϕ = λF.WHϕ(F);• [[prog_constr(α,β,...)]]=[[prog_constr]]([[α]] , [[β]] ,...) for every prog_constr∈{ ; , if−then...else..., while−do...}.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 10
11. 11. Реляционная денотационная семантика ToyPL• Relational denotational semantics for ToyPL is sound and complete with respect to SOS ToyPL semantics in the following sense.• Statement 1: ForeveryToyPL-program α the following holds: – Soundness: For all states s′, s′′, if |=ToyPL s′<α>s′′ then [[α]](ss′)= ss′′ for all super-states ss′=(ss′|α) and ss′′=(ss′′|α) that are equal on all variablesin VRSVAR(α). – Completeness: For all super-states ss′ and ss′′, if [[α]](ss′) = ss′′, then |=ToyPL(ss′|α)<α>(ss′′|α).03/14/12 Шилов Николай Вячеславович Всего слайдов 36 11
12. 12. Реляционная денотационная семантика ToyPL• Proof: Soundness by induction on the height of the inference tree, completeness by induction on the program structure.• Упражнение #3: Докажите утверждение 3.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 12
13. 13. Элементы лямбда-исчисления: синтаксис• Лямбда-термы – это слова в алфавите, состоящем из переменных (x, y, z, …), абстрактора λ, точки - разделителя и круглых скобок: – любая переменная – это терм, – для любой переменной x и терма M выражение (λx. M) – терм, – для любых термов M и N выражение (MN) – терм.• Упражнение #4: Является ли множество лямбда- термов контекстно-свободным языком?03/14/12 Шилов Николай Вячеславович Всего слайдов 36 13
14. 14. Элементы лямбда-исчисления: синтаксис• Соглашения об обозначениях: – внешние скобки опускаются; λx,y,z. M ≡ λx.(λy.(λz. M)); – MNPQ ≡ ((MN)P)Q.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 14
15. 15. Элементы лямбда-исчисления: синтаксис• Различают связанные (посредством λ) и свободные вхождения переменных в термах.• Например, первое вхождение x в λy.xy(λx.xy) – свободное, второе – связанное, оба вхождения y в λy.xy(λx.xy) – связанные.• Комбинатор – это терм, в котором все вхождения переменных связанные. Например, λxy.xy(λx.xy) – комбинатор, а λy.xy(λx.xy) – нет.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 15
16. 16. Элементы лямбда-исчисления: аксиоматическая семантика∀ λ-исчисление является эквициональной теорией, т.е. формулами являются равенства термов M=N. Оно аксиоматизируется следующим образом: α-конверсия: λx.M = λy.M, если y не имеет свободных вхождений в M; β-конверсия: (λx.M)N = MN/x, т.е. осуществляется подстановка N вместо всех свободных вхождений x в M но так (с использованием α-конверсии), что бы никакая свободная переменная N не стала связанной после подстановки;03/14/12 Шилов Николай Вячеславович Всего слайдов 36 16
17. 17. Элементы лямбда-исчисления: аксиоматическая семантика – M=M; M=N ⇒ N=M; – M=N, N=L ⇒ M=L; – M=N ⇒ ML=NL; – – M=N ⇒ LM=LN; правило ξ: M=N ⇒ λx.M= λx.N. –• Упражнение #5: Представьте аксиоматику λ- исчисления в виде секвенциальной форме.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 17
18. 18. Элементы лямбда-исчисления: теорема о неподвижной точке• Теорема: Для любого терма F существует такой терм X, что FX=X доказуемо в λ-исчислении.• Доказательство: Пусть W≡ λx.F(xx), а X ≡WW. Тогда X ≡WW ≡ λx.F(xx)W = F(WW) ≡ F(X).03/14/12 Шилов Николай Вячеславович Всего слайдов 36 18
19. 19. Элементы лямбда-исчисления: теорема о неподвижной точке• Следствие: Существует комбинатор неподвижной точки, т.е. такой комбинатор fix, что для любого терма F в λ-исчислении доказуемо равенство F(fixF) = fixF.• Доказательство: fix ≡ λF.(λx.F(xx) λx.F(xx)).03/14/12 Шилов Николай Вячеславович Всего слайдов 36 19
20. 20. Элементы лямбда-исчисления: о противоречивости λ-исчисления• Эквициональная теория называется противоречивой, если в ней доказуемо любое равенство.∀ λ-исчисление непротиворечиво (как это следует из теоремы Чёрча – Россера).03/14/12 Шилов Николай Вячеславович Всего слайдов 36 20
21. 21. Найди ошибку• Однако, если выполнять α- или β-редукции неаккуратно, то можно получить противоречие. – Пусть F≡ λxy.yx. – Тогда FMN ≡ ((λx.(λy.yx))M)N = (λy.yM)N = NM для любых термов M и N. – В частности Fyx = xy. – Но Fyx = ((λx.(λy.yx))y)x = (λy.yy)x = xx. – Следовательно, xy=xx.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 21
22. 22. Найди ошибку• Упражнение #6: Покажите, что из равенства xy=xx можно вывести равенство любых термов. Найдите ошибку в приведённом выше доказательстве.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 22
23. 23. Стандартные комбинаторы• «Булевские значения» T ≡ λxy.x и F ≡ λxy.y. Для любых термов M и N имеем TMN=M и FMN=N.• «Композиция» comp ≡ λxyz.y(xz). Для любых термов M иN имеем (comp)MN = λz.N(Mz).• «Если-то-иначе» if-th-el ≡ λxyz.xyz. Для любых термов M иN имеем – (if-th-el)TMN = M, – (if-th-el)FMN = N.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 23
24. 24. Стандартные комбинаторы• Для любых термов M иN имеем – «свёртка» [M,N] ≡ [_,_]MN = λz.zMN, – «проекции» ([M,N])0=M и ([M,N])1=N.• Упражнение #7: Проверьте приведённые свойства комбинаторов булевских значений, композиции, если-то-иначе, свёртки и проекций.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 24
25. 25. Натуральные числа• Для каждого n∈N определим комбинатор {n} по индукции: {0} ≡ λx.x и {n+1} ≡ [F,{n}].• Комбинаторы «следующий» S ≡ λx.[F,x], «предшественник» P ≡ λx.xF и «ноль-тест» Z ≡ λx.xT.• Для любого n∈N имеем: – S{n} = {n+1} и P{n+1} = {n}, – Z{0} = T и Z{n+1} = F.• Упражнение #8: Проверьте приведённые свойства следующий, предшественник и ноль-тест.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 25
26. 26. Идея в основе классической денотационной семантике для ToyPL• [[;]] = comp• [[if-then-else]] = if-th-el• [[while-do]] = (fix)(if-th-el)03/14/12 Шилов Николай Вячеславович Всего слайдов 36 26
27. 27. Что читать?• Шилов Н.В. Основы синтаксиса, семантики, трансляции и верификации программ. Новосибирск: РИЦ НГУ. 2011. 292 стр.• (Спросить у лектора в формате PDF.)03/14/12 Шилов Николай Вячеславович Всего слайдов 36 27
28. 28. Куда податься?• Третий международный семинар «Семантика, спецификация и верификация программ: теория и приложения» (г. Нижний Новгород, 1-2 июля 2012).• 7th International Computer Science Symposium in Russia (CSR-2012)• Specification and Verification: Theory and Applications (PSSV 2012)03/14/12 Шилов Николай Вячеславович Всего слайдов 36 28
29. 29. Куда податься?• Семинар пройдет в рамках седьмого международного симпозиума по компьютерным наукам в России (7th International Computer Science Symposium in Russia, CSR-2012, July 3-7, 2012) http://agora.guru.ru /display.php?conf=csr2012&page=item00903/14/12 Шилов Николай Вячеславович Всего слайдов 36 29
30. 30. Важные даты• Представление докладов по электронной почте: 18.03. 2012• Извещение о включении доклада в программу семинара: 09.04.201203/14/12 Шилов Николай Вячеславович Всего слайдов 36 30
31. 31. Тематика• формализмы для описания семантики;• формальные модели и семантики программ и систем;• семантика языков программирования и языков спецификаций;• языки формальной спецификации программ и систем;• логики для формальной спецификации и верификации;03/14/12 Шилов Николай Вячеславович Всего слайдов 36 31
32. 32. Тематика• дедуктивная верификация программ;• автоматическое доказательство теорем;• верификация моделей (model checking) программ и систем;• статический анализ программ;• формальный подход к тестированию и валидации;• системы и инструментальные средства тестирования и верификации.03/14/12 Шилов Николай Вячеславович Всего слайдов 36 32
33. 33. Программный комитет• Непомнящий Валерий Александрович (Институт систем информатики СО РАН, vnep@iis.nsk.su),• Соколов Валерий Анатольевич (Ярославский государственный университет, sokolov@uniyar.ac.ru).• Natasha Alechina (University of Nottingham, UK),• Баранов Сергей Николаевич (Санкт-Петербургский институт информатики и автоматизации РАН),03/14/12 Шилов Николай Вячеславович Всего слайдов 36 33
34. 34. Программный комитет• Alexander Bolotov (University of Westminster, UK),• Евтушенко Нина Владимировна (Томский государственный университет),• Захаров Владимир Анатольевич (Московский государственный университет),• Ицыксон Владимир Михайлович (Санкт- Петербургский государственный политехнический университет),• Климов Андрей Валентинович (Институт прикладной математики РАН, Москва),03/14/12 Шилов Николай Вячеславович Всего слайдов 36 34
35. 35. Программный комитет• Boris Konev (University of Liverpool, UK),• Кулямин Виктор Вячеславович (Институт системного программирования РАН, Москва),• Ломазова Ирина Александровна (Высшая школа экономики, Москва),• Andrey Rybalchenko (Technical University, Munich, Germany),• Sergey Tverdyshev (SYSGO AG, Germany),• Шилов Николай Вячеславович (Институт систем информатики СО РАН, Новосибирск).03/14/12 Шилов Николай Вячеславович Всего слайдов 36 35
36. 36. До встречи ELSEWHERE!03/14/12 Шилов Николай Вячеславович Всего слайдов 36 36