SlideShare a Scribd company logo
1 of 36
Computer Science клуб - Екатеринбург
                        Март 2012



        Fun with Formal Program Semantics
      (О формальной семантике программ –
                     просто)
             Шилов Николай Вячеславович




03/14/12           Шилов Николай Вячеславович Всего слайдов 36   1
Тема 3: Понятие о денотационной
       семантике языков программирования

               (на примере ToyPL)




03/14/12        Шилов Николай Вячеславович Всего слайдов 36   2
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     ToyPL
• Let SupSts⇒SupSts denote the set of all partial
  functions f:SupSts → SupSts.
• Some useful functions in this set are defined 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
Реляционная денотационная семантика
                     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)finitary 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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Реляционная денотационная семантика
                     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
Элементы лямбда-исчисления: синтаксис

• Лямбда-термы – это слова в алфавите, состоящем
  из переменных (x, y, z, …), абстрактора λ, точки -
  разделителя и круглых скобок:
   – любая переменная – это терм,
   – для любой переменной x и терма M
     выражение (λx. M) – терм,
   – для любых термов M и N выражение (MN) –
     терм.
• Упражнение #4: Является ли множество лямбда-
  термов контекстно-свободным языком?
03/14/12         Шилов Николай Вячеславович Всего слайдов 36   13
Элементы лямбда-исчисления: синтаксис

• Соглашения об обозначениях:
   – внешние скобки опускаются;
     λx,y,z. M ≡ λx.(λy.(λz. M));
   – MNPQ ≡ ((MN)P)Q.




03/14/12         Шилов Николай Вячеславович Всего слайдов 36   14
Элементы лямбда-исчисления: синтаксис

• Различают связанные (посредством λ) и
  свободные вхождения переменных в термах.
• Например, первое вхождение x в λy.xy(λx.xy) –
  свободное, второе – связанное, оба вхождения y
  в λy.xy(λx.xy) – связанные.
• Комбинатор – это терм, в котором все вхождения
  переменных связанные. Например, λxy.xy(λx.xy) –
  комбинатор, а λy.xy(λx.xy) – нет.


03/14/12        Шилов Николай Вячеславович Всего слайдов 36   15
Элементы лямбда-исчисления:
            аксиоматическая семантика
∀ λ-исчисление является эквициональной теорией,
  т.е. формулами являются равенства термов M=N.
  Оно аксиоматизируется следующим образом:
     α-конверсия: λx.M = λy.M, если y не имеет
     свободных вхождений в M;
     β-конверсия: (λx.M)N = MN/x, т.е.
     осуществляется подстановка N вместо всех
     свободных вхождений x в M но так (с
     использованием α-конверсии), что бы никакая
     свободная переменная N не стала связанной
     после подстановки;

03/14/12         Шилов Николай Вячеславович Всего слайдов 36   16
Элементы лямбда-исчисления:
            аксиоматическая семантика
     –
    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
Элементы лямбда-исчисления:
           теорема о неподвижной точке
• Теорема:
  Для любого терма 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
Элементы лямбда-исчисления:
           теорема о неподвижной точке
• Следствие: Существует комбинатор
  неподвижной точки, т.е. такой комбинатор fix,
  что для любого терма F в λ-исчислении
  доказуемо равенство F(fixF) = fixF.
• Доказательство: fix ≡ λF.(λx.F(xx) λx.F(xx)).




03/14/12         Шилов Николай Вячеславович Всего слайдов 36   19
Элементы лямбда-исчисления:
           о противоречивости λ-исчисления
• Эквициональная теория называется
  противоречивой, если в ней доказуемо любое
  равенство.
∀ λ-исчисление непротиворечиво (как это следует
  из теоремы Чёрча – Россера).




03/14/12           Шилов Николай Вячеславович Всего слайдов 36   20
Найди ошибку
• Однако, если выполнять α- или β-редукции
  неаккуратно, то можно получить противоречие.
   – Пусть 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
Найди ошибку

• Упражнение #6: Покажите, что из равенства xy=xx
  можно вывести равенство любых термов.
  Найдите ошибку в приведённом выше
  доказательстве.




03/14/12        Шилов Николай Вячеславович Всего слайдов 36   22
Стандартные комбинаторы

• «Булевские значения» 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
Стандартные комбинаторы

• Для любых термов M иN имеем
  – «свёртка» [M,N] ≡ [_,_]MN = λz.zMN,
  – «проекции» ([M,N])0=M и ([M,N])1=N.
• Упражнение #7: Проверьте приведённые свойства
  комбинаторов булевских значений, композиции,
  если-то-иначе, свёртки и проекций.




03/14/12        Шилов Николай Вячеславович Всего слайдов 36   24
Натуральные числа

• Для каждого 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
Идея в основе классической денотационной
            семантике для ToyPL
• [[;]] = comp
• [[if-then-else]] = if-th-el
• [[while-do]] = (fix)(if-th-el)




03/14/12            Шилов Николай Вячеславович Всего слайдов 36   26
Что читать?

• Шилов Н.В. Основы синтаксиса, семантики,
  трансляции и верификации программ.
  Новосибирск: РИЦ НГУ. 2011. 292 стр.
• (Спросить у лектора в формате PDF.)




03/14/12        Шилов Николай Вячеславович Всего слайдов 36   27
Куда податься?

• Третий международный семинар «Семантика,
  спецификация и верификация программ: теория и
  приложения» (г. Нижний Новгород, 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
Куда податься?

• Семинар пройдет в рамках седьмого
  международного симпозиума по компьютерным
  наукам в России (7th International Computer
  Science Symposium in Russia, CSR-2012, July 3-7,
  2012) http://agora.guru.ru
  /display.php?conf=csr2012&page=item009




03/14/12         Шилов Николай Вячеславович Всего слайдов 36   29
Важные даты

• Представление докладов по электронной почте:
  18.03. 2012
• Извещение о включении доклада в программу
  семинара: 09.04.2012




03/14/12       Шилов Николай Вячеславович Всего слайдов 36   30
Тематика

• формализмы для описания семантики;
• формальные модели и семантики программ и
  систем;
• семантика языков программирования и языков
  спецификаций;
• языки формальной спецификации программ и
  систем;
• логики для формальной спецификации и
  верификации;



03/14/12       Шилов Николай Вячеславович Всего слайдов 36   31
Тематика

• дедуктивная верификация программ;
• автоматическое доказательство теорем;
• верификация моделей (model checking) программ
  и систем;
• статический анализ программ;
• формальный подход к тестированию и
  валидации;
• системы и инструментальные средства
  тестирования и верификации.


03/14/12       Шилов Николай Вячеславович Всего слайдов 36   32
Программный комитет

• Непомнящий Валерий Александрович (Институт
  систем информатики СО РАН, vnep@iis.nsk.su),
• Соколов Валерий Анатольевич (Ярославский
  государственный университет,
  sokolov@uniyar.ac.ru).

• Natasha Alechina (University of Nottingham, UK),
• Баранов Сергей Николаевич (Санкт-Петербургский
  институт информатики и автоматизации РАН),



03/14/12        Шилов Николай Вячеславович Всего слайдов 36   33
Программный комитет

• Alexander Bolotov (University of Westminster, UK),
• Евтушенко Нина Владимировна (Томский
  государственный университет),
• Захаров Владимир Анатольевич (Московский
  государственный университет),
• Ицыксон Владимир Михайлович (Санкт-
  Петербургский государственный политехнический
  университет),
• Климов Андрей Валентинович (Институт
  прикладной математики РАН, Москва),


03/14/12         Шилов Николай Вячеславович Всего слайдов 36   34
Программный комитет

• Boris Konev (University of Liverpool, UK),
• Кулямин Виктор Вячеславович (Институт
  системного программирования РАН, Москва),
• Ломазова Ирина Александровна (Высшая школа
  экономики, Москва),
• Andrey Rybalchenko (Technical University, Munich,
  Germany),
• Sergey Tverdyshev (SYSGO AG, Germany),
• Шилов Николай Вячеславович (Институт систем
  информатики СО РАН, Новосибирск).

03/14/12         Шилов Николай Вячеславович Всего слайдов 36   35
До встречи ELSEWHERE!




03/14/12      Шилов Николай Вячеславович Всего слайдов 36   36

More Related Content

What's hot

Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовTheoretical mechanics department
 
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Alexey Paznikov
 
Predel funk
Predel funkPredel funk
Predel funkAlex_Tam
 
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...Tech Talks @NSU
 
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_satComputer Science Club
 
20120309 formal semantics shilov_lecture03
20120309 formal semantics shilov_lecture0320120309 formal semantics shilov_lecture03
20120309 formal semantics shilov_lecture03Computer Science Club
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахromovpa
 
Методы численного интегрирования
Методы численного интегрированияМетоды численного интегрирования
Методы численного интегрированияTheoretical mechanics department
 
Тригонометрические функции числового аргумента
Тригонометрические функции числового аргументаТригонометрические функции числового аргумента
Тригонометрические функции числового аргументаFormula.co.ua
 
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Positive Hack Days
 
20101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture0420101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture04Computer Science Club
 
Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераTheoretical mechanics department
 
07 бибердорф gala
07 бибердорф gala07 бибердорф gala
07 бибердорф galaMarina_creautor
 
20111202 machine learning_nikolenko_lecture02
20111202 machine learning_nikolenko_lecture0220111202 machine learning_nikolenko_lecture02
20111202 machine learning_nikolenko_lecture02Computer Science Club
 

What's hot (20)

Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
Лекция 5. Метод конечных разностей (параллельные алгоритмы в стандарте MPI)
 
Funkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafikFunkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafik
 
Predel funk
Predel funkPredel funk
Predel funk
 
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...
 
20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat20130302 np algorithms_kulikov_lecture04-05_sat
20130302 np algorithms_kulikov_lecture04-05_sat
 
20120309 formal semantics shilov_lecture03
20120309 formal semantics shilov_lecture0320120309 formal semantics shilov_lecture03
20120309 formal semantics shilov_lecture03
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
 
Методы численного интегрирования
Методы численного интегрированияМетоды численного интегрирования
Методы численного интегрирования
 
Тригонометрические функции числового аргумента
Тригонометрические функции числового аргументаТригонометрические функции числового аргумента
Тригонометрические функции числового аргумента
 
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
 
Сплайн интерполяция
Сплайн интерполяцияСплайн интерполяция
Сплайн интерполяция
 
Soboland Sat
Soboland SatSoboland Sat
Soboland Sat
 
20101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture0420101007 proof complexity_hirsch_lecture04
20101007 proof complexity_hirsch_lecture04
 
Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод Эйлера
 
графы
графыграфы
графы
 
Get Ft
Get FtGet Ft
Get Ft
 
07 бибердорф gala
07 бибердорф gala07 бибердорф gala
07 бибердорф gala
 
Pr i-7
Pr i-7Pr i-7
Pr i-7
 
20111202 machine learning_nikolenko_lecture02
20111202 machine learning_nikolenko_lecture0220111202 machine learning_nikolenko_lecture02
20111202 machine learning_nikolenko_lecture02
 

Viewers also liked

Certificado Impacta Tecnologia
Certificado Impacta TecnologiaCertificado Impacta Tecnologia
Certificado Impacta TecnologiaRubens Jr
 
Still life- By Henrik Bonnevier
Still life- By Henrik BonnevierStill life- By Henrik Bonnevier
Still life- By Henrik Bonneviermaditabalnco
 
Thanh cong cua marketing
Thanh cong cua marketingThanh cong cua marketing
Thanh cong cua marketingTruong Tho
 

Viewers also liked (7)

Medical symbol
Medical symbolMedical symbol
Medical symbol
 
Certificado Impacta Tecnologia
Certificado Impacta TecnologiaCertificado Impacta Tecnologia
Certificado Impacta Tecnologia
 
Philippines
PhilippinesPhilippines
Philippines
 
Still life- By Henrik Bonnevier
Still life- By Henrik BonnevierStill life- By Henrik Bonnevier
Still life- By Henrik Bonnevier
 
Thanh cong cua marketing
Thanh cong cua marketingThanh cong cua marketing
Thanh cong cua marketing
 
ldc dev-clojure
ldc dev-clojureldc dev-clojure
ldc dev-clojure
 
Certificado
CertificadoCertificado
Certificado
 

Similar to 20120309 formal semantics shilov_lecture06

20110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture0620110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture06Computer Science Club
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02Computer Science Club
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture0320110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture03Computer Science Club
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
20110224 systems of_typed_lambda_calculi_moskvin_lecture0120110224 systems of_typed_lambda_calculi_moskvin_lecture01
20110224 systems of_typed_lambda_calculi_moskvin_lecture01Computer Science Club
 
20110313 systems of_typed_lambda_calculi_moskvin_lecture05
20110313 systems of_typed_lambda_calculi_moskvin_lecture0520110313 systems of_typed_lambda_calculi_moskvin_lecture05
20110313 systems of_typed_lambda_calculi_moskvin_lecture05Computer Science Club
 
пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015LIPugach
 
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
20110306 systems of_typed_lambda_calculi_moskvin_lecture0420110306 systems of_typed_lambda_calculi_moskvin_lecture04
20110306 systems of_typed_lambda_calculi_moskvin_lecture04Computer Science Club
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Technosphere1
 
Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2LiloSEA
 
20110522 systems of typed lambda_calculi_moskvin_lecture12
20110522 systems of typed lambda_calculi_moskvin_lecture1220110522 systems of typed lambda_calculi_moskvin_lecture12
20110522 systems of typed lambda_calculi_moskvin_lecture12Computer Science Club
 
ст лекция 7
ст лекция 7ст лекция 7
ст лекция 7student_kai
 
20110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture0920110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture09Computer Science Club
 
20071111 efficientalgorithms kulikov_lecture05
20071111 efficientalgorithms kulikov_lecture0520071111 efficientalgorithms kulikov_lecture05
20071111 efficientalgorithms kulikov_lecture05Computer Science Club
 
20110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture0920110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture09Computer Science Club
 
Дмитрий Кашицын, Вывод типов в динамических и не очень языках II
Дмитрий Кашицын, Вывод типов в динамических и не очень языках IIДмитрий Кашицын, Вывод типов в динамических и не очень языках II
Дмитрий Кашицын, Вывод типов в динамических и не очень языках IIPlatonov Sergey
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Nikolay Grebenshikov
 
математик анализ лекц№10
математик анализ лекц№10математик анализ лекц№10
математик анализ лекц№10narangerelodon
 
предел последовательности
предел последовательностипредел последовательности
предел последовательностиtomik1044
 
ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6Andrey Danilchenko
 

Similar to 20120309 formal semantics shilov_lecture06 (20)

20110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture0620110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture06
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture0320110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
20110224 systems of_typed_lambda_calculi_moskvin_lecture0120110224 systems of_typed_lambda_calculi_moskvin_lecture01
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
 
20110313 systems of_typed_lambda_calculi_moskvin_lecture05
20110313 systems of_typed_lambda_calculi_moskvin_lecture0520110313 systems of_typed_lambda_calculi_moskvin_lecture05
20110313 systems of_typed_lambda_calculi_moskvin_lecture05
 
пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015
 
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
20110306 systems of_typed_lambda_calculi_moskvin_lecture0420110306 systems of_typed_lambda_calculi_moskvin_lecture04
20110306 systems of_typed_lambda_calculi_moskvin_lecture04
 
Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана" Лекция №12 "Ограниченная машина Больцмана"
Лекция №12 "Ограниченная машина Больцмана"
 
Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2
 
20110522 systems of typed lambda_calculi_moskvin_lecture12
20110522 systems of typed lambda_calculi_moskvin_lecture1220110522 systems of typed lambda_calculi_moskvin_lecture12
20110522 systems of typed lambda_calculi_moskvin_lecture12
 
ст лекция 7
ст лекция 7ст лекция 7
ст лекция 7
 
20110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture0920110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture09
 
20071111 efficientalgorithms kulikov_lecture05
20071111 efficientalgorithms kulikov_lecture0520071111 efficientalgorithms kulikov_lecture05
20071111 efficientalgorithms kulikov_lecture05
 
20110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture0920110409 quantum algorithms_vyali_lecture09
20110409 quantum algorithms_vyali_lecture09
 
Дмитрий Кашицын, Вывод типов в динамических и не очень языках II
Дмитрий Кашицын, Вывод типов в динамических и не очень языках IIДмитрий Кашицын, Вывод типов в динамических и не очень языках II
Дмитрий Кашицын, Вывод типов в динамических и не очень языках II
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
 
математик анализ лекц№10
математик анализ лекц№10математик анализ лекц№10
математик анализ лекц№10
 
сплайны
сплайнысплайны
сплайны
 
предел последовательности
предел последовательностипредел последовательности
предел последовательности
 
ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6
 

More from Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

More from Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

20120309 formal semantics shilov_lecture06

  • 1. Computer Science клуб - Екатеринбург Март 2012 Fun with Formal Program Semantics (О формальной семантике программ – просто) Шилов Николай Вячеславович 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 1
  • 2. Тема 3: Понятие о денотационной семантике языков программирования (на примере ToyPL) 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 2
  • 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. Реляционная денотационная семантика ToyPL • Let SupSts⇒SupSts denote the set of all partial functions f:SupSts → SupSts. • Some useful functions in this set are defined 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. Реляционная денотационная семантика 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)finitary 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. Реляционная денотационная семантика 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. Реляционная денотационная семантика 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. Реляционная денотационная семантика 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. Реляционная денотационная семантика 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. Реляционная денотационная семантика 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. Реляционная денотационная семантика 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. Реляционная денотационная семантика 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. Элементы лямбда-исчисления: синтаксис • Лямбда-термы – это слова в алфавите, состоящем из переменных (x, y, z, …), абстрактора λ, точки - разделителя и круглых скобок: – любая переменная – это терм, – для любой переменной x и терма M выражение (λx. M) – терм, – для любых термов M и N выражение (MN) – терм. • Упражнение #4: Является ли множество лямбда- термов контекстно-свободным языком? 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 13
  • 14. Элементы лямбда-исчисления: синтаксис • Соглашения об обозначениях: – внешние скобки опускаются; λx,y,z. M ≡ λx.(λy.(λz. M)); – MNPQ ≡ ((MN)P)Q. 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 14
  • 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. Элементы лямбда-исчисления: аксиоматическая семантика ∀ λ-исчисление является эквициональной теорией, т.е. формулами являются равенства термов M=N. Оно аксиоматизируется следующим образом: α-конверсия: λx.M = λy.M, если y не имеет свободных вхождений в M; β-конверсия: (λx.M)N = MN/x, т.е. осуществляется подстановка N вместо всех свободных вхождений x в M но так (с использованием α-конверсии), что бы никакая свободная переменная N не стала связанной после подстановки; 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 16
  • 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. Элементы лямбда-исчисления: теорема о неподвижной точке • Теорема: Для любого терма 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. Элементы лямбда-исчисления: теорема о неподвижной точке • Следствие: Существует комбинатор неподвижной точки, т.е. такой комбинатор fix, что для любого терма F в λ-исчислении доказуемо равенство F(fixF) = fixF. • Доказательство: fix ≡ λF.(λx.F(xx) λx.F(xx)). 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 19
  • 20. Элементы лямбда-исчисления: о противоречивости λ-исчисления • Эквициональная теория называется противоречивой, если в ней доказуемо любое равенство. ∀ λ-исчисление непротиворечиво (как это следует из теоремы Чёрча – Россера). 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 20
  • 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. Найди ошибку • Упражнение #6: Покажите, что из равенства xy=xx можно вывести равенство любых термов. Найдите ошибку в приведённом выше доказательстве. 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 22
  • 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. Стандартные комбинаторы • Для любых термов M иN имеем – «свёртка» [M,N] ≡ [_,_]MN = λz.zMN, – «проекции» ([M,N])0=M и ([M,N])1=N. • Упражнение #7: Проверьте приведённые свойства комбинаторов булевских значений, композиции, если-то-иначе, свёртки и проекций. 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 24
  • 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. Идея в основе классической денотационной семантике для ToyPL • [[;]] = comp • [[if-then-else]] = if-th-el • [[while-do]] = (fix)(if-th-el) 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 26
  • 27. Что читать? • Шилов Н.В. Основы синтаксиса, семантики, трансляции и верификации программ. Новосибирск: РИЦ НГУ. 2011. 292 стр. • (Спросить у лектора в формате PDF.) 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 27
  • 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. Куда податься? • Семинар пройдет в рамках седьмого международного симпозиума по компьютерным наукам в России (7th International Computer Science Symposium in Russia, CSR-2012, July 3-7, 2012) http://agora.guru.ru /display.php?conf=csr2012&page=item009 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 29
  • 30. Важные даты • Представление докладов по электронной почте: 18.03. 2012 • Извещение о включении доклада в программу семинара: 09.04.2012 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 30
  • 31. Тематика • формализмы для описания семантики; • формальные модели и семантики программ и систем; • семантика языков программирования и языков спецификаций; • языки формальной спецификации программ и систем; • логики для формальной спецификации и верификации; 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 31
  • 32. Тематика • дедуктивная верификация программ; • автоматическое доказательство теорем; • верификация моделей (model checking) программ и систем; • статический анализ программ; • формальный подход к тестированию и валидации; • системы и инструментальные средства тестирования и верификации. 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 32
  • 33. Программный комитет • Непомнящий Валерий Александрович (Институт систем информатики СО РАН, vnep@iis.nsk.su), • Соколов Валерий Анатольевич (Ярославский государственный университет, sokolov@uniyar.ac.ru). • Natasha Alechina (University of Nottingham, UK), • Баранов Сергей Николаевич (Санкт-Петербургский институт информатики и автоматизации РАН), 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 33
  • 34. Программный комитет • Alexander Bolotov (University of Westminster, UK), • Евтушенко Нина Владимировна (Томский государственный университет), • Захаров Владимир Анатольевич (Московский государственный университет), • Ицыксон Владимир Михайлович (Санкт- Петербургский государственный политехнический университет), • Климов Андрей Валентинович (Институт прикладной математики РАН, Москва), 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 34
  • 35. Программный комитет • Boris Konev (University of Liverpool, UK), • Кулямин Виктор Вячеславович (Институт системного программирования РАН, Москва), • Ломазова Ирина Александровна (Высшая школа экономики, Москва), • Andrey Rybalchenko (Technical University, Munich, Germany), • Sergey Tverdyshev (SYSGO AG, Germany), • Шилов Николай Вячеславович (Институт систем информатики СО РАН, Новосибирск). 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 35
  • 36. До встречи ELSEWHERE! 03/14/12 Шилов Николай Вячеславович Всего слайдов 36 36