Трансляция класса рекурсивных схем в класс Y(1M, L) Рекурсивная схема транслируется в схему с процедурами. Z={z1, z2, …, zl} k: z:=F i (n) (y1, …, yn)

Презентация:



Advertisements
Похожие презентации
Схемы с процедурами Главная схема x=F (n) (y 1, y 2, …, y n ) Множество схем процедур. Главная схемаМножество схем процедур (старт(x), 1: z:=x, 2: u:=a,
Advertisements

Денотационная семантика 0 |1|1 | 0 | 1 Mb:Mb: М b ('0') = 0, М b ('1')=1 М b ( '0') = =2 * М b ( ) М b ( 1) = =2 * М b ( ) + 1.
Часть II. Формальное описание языков программирования ( Формальная спецификация формальных языков ) Приложение. Операционная семантика языка SIL.
Составление программ Разработка программ в среде Турбо- Паскаль.
Часть II. Формальное описание языков программирования ( Формальная спецификация формальных языков ) Операционная семантика.
Алфавит языка TURBO PASCAL. Цель урока: Узнать: Алфавит языка программирования TURBO PASCAL. Этапы разработки программы Типы ошибок Разделы программы.
Главные свойства стандартных схем Тотальная схема; Пустая схема; Функционально- эквивалентные схемы (S 1 ~S 2 ) Цепочка стандартной схемы (ЦСС) (0, 1,
Актуализация знаний Что будет результатом выполнения процедуры task() при a = 1, 5, 10? a = 1 a = 5 a = 10 c = 1/5 = 0.2 c = 5/5 = 1 c = 10/5 = 2.
Program ( {, }); заголовок программы раздел описаний (описания) begin блок ; ; раздел операторов... (тело программы) end. Структура Паскаль-программы.
Операторы языка Си Лекция 5.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 5.
Глава 6. УПРАВЛЯЮЩИЕ СТРУКТУРЫ Оператор присваивания Простой и составной операторы Условный оператор Оператор множественного выбора Оператор цикла с предусловием.
Сучасні проблеми інформатики Лекція 5 Парадигми програмування.
ПРОГРАММИРОВАНИЕ ПОВТОРЕНИЙ. НАЧАЛО AB A, B, C A = A + C F = B + C F КОНЕЦ B = B + C F = A + B B < C A = A + B F = A + C нет да A = 1, B = 1, C = 4 F=?
Операторы. Оператор выбора Оператор выбора Оператор выбора Оператор выбора Оператор присваивания Оператор присваивания Оператор присваивания Оператор присваивания.
PL/SQL Введение 1. Типы данных Типы доступные SQL (в Oracle) BOOLEAN CHAR NUMBER RECORD TABLE.
Алгоритмические конструкции. Решить задачу при х=16, у=2.
Операторы языка. Арифметические операторы Арифметические операторы Арифметические операторы Арифметические операторы Операторы сравнения Операторы сравнения.
Язык программирования Delphi. Алфавит языка 53 буквы латинского алфавита и символ подчеркивания Цифры от 0 до 9 23 спец.символа
Ветвление и условный оператор Паскаль-3. Ветвление – это такой вычислительный процесс При котором выбирается одно из нескольких заранее предусмотренных.
Транксрипт:

Трансляция класса рекурсивных схем в класс Y(1M, L) Рекурсивная схема транслируется в схему с процедурами. Z={z1, z2, …, zl} k: z:=F i (n) (y1, …, yn) на m; k: M:=z1, …, M:=zl; w:=L; M:=w; x1:=y1, …, xn:=yn на L Fi ; L: z:=t на m. Fi(x1, …, xn) старт 1 => L Fi. стоп(v) t:=v; w:=M; zl:=M, …, z1:=M на w.

Пример: Рекурсивная схема S: F(x), F(x)=если p(x) то x иначе f(F(g(x)), F(h(x))) S: (старт (x), 1: y:=F(x), 2: стоп(y)) F(x) = (старт, 1: если p(x) то 2 иначе 3, 2: v:=x на 8, 3: z:=g(x), 4: z:=F(z), 5: u:=h(x), 6: u:=F(u), 7: v:=f(z, u), 8: стоп(v)). Сократим: M:=y 1, …, M:=y r =>M:=(y 1, …, y r ) y 1 :=M, …, y r :=M=>(y 1, …, y r ):=M x 1 :=y 1, …, x r :=y r =>(x 1, …, x r ):=(y 1, …, y r )

L F : если p(x) то L1 иначе L2, S: (старт (x), 1: y:=F(x), 2: стоп(y)) F(x) = (старт, 1: если p(x) то 2 иначе 3, 2: v:=x на 8, 3: z:=g(x), 4: z:=F(z), 5: u:=h(x), 6: u:=F(u), 7: v:=f(z, u), 8: стоп(v)). M:=(y, x, z, u, v), w:= L0, M:=w, x:=x на LF, L0: y:=t, M:=(y, x, z, u, v), w:=L3, M:=w, x:=z на LF, L3: z:=t, M:=(y, x, z, u, v), w:=L4, M:=w; x:=u на LF, L4: u:=t, L5: t:=v, w:=M, (v, u, z, x, y):=M на w). L1: L2: L5

Структурированные схемы (о 0, о 1, …, о n ) Специальные символы: если, то, иначе, пока, цикл, конец. Три типа схемных операторов: -простой оператор; -условный оператор: если то 1 иначе 0 конец. -оператор цикла: пока цикл конец до цикл конец.

Стандартная схема программы Структурированная схема программы старт(х), 1: y := f(x), 2: если p(y) то 7 иначе 3, 3: y := f(y), 4: если p(y) то 5 иначе 7, 5: если p(x) то 6 иначе 7, 6: x := h(x) на 5, 7: стоп(х, y). старт(х), y := f(x), если p(y) то иначе y := f(y), если p(y) то пока p(x) цикл x := h(x) конец иначе конец конец, стоп(х, y).

Трансляция структурированных схем в стандартные Все схемные операторы помечаются метками-числами k: если то k+1: 1 иначе l : 0 конец, k: если то k+1 иначе l, k+1: 1 на m, l : 0, k: пока цикл k+1: конец k: если то k+1 иначе m, k+1: на k, k: до цикл k+1: конец k: если то m иначе k+1, k+1: на k, k: если то k иначе m, k: если то m иначе k.

Семантическая теория программ Семантика Что делает данная программа? 1.Формальные грамматики. 2.Семантика языка. 3.Верификация программы. Синтаксис Как должна выглядеть программа?

Описание синтаксиса языков ::= | ::= if then else | if then

Описание семантики задается указанием: Используемых в языке типов (множеств) простых значений. Способов построения составных значений из нескольких простых. Операций над простыми, а иногда и над составными значениями. Способов задания сложных действий.

Семантика языка Грамматические модели Атрибутивные грамматики. Императивные (операционные) модели VDL. Аппликативные модели. Аксиоматические модели Аксиоматическая семантика Хоара. Модели спецификаций pop(push(S,x))=S.

Атрибутивные грамматики ET | E+T TP | T×P PI | (E) ПравилоАтрибут EE+T значение(Е)=значение(Е)+значение(Т) ETET значение(Е)=значение(Т) TT×P значение(Т)=значение(Т)×значение(Р) TPTP значение(Т)=значение(Р) PIPI значение(Р)=значение числа I P(E) значение(Р)=значение(Е)

2+4*(1+2)

Операционная семантика Оператор языка СОперационная семантика for (exp1; exp2; ехрЗ){exp1... loop: if exp2 = 0 goto out } … ехрЗ; goto loop; out; PL/1Vienna Definition Language

Денотационная семантика 0 |1|1 | 0 | 1 Mb:Mb: М b ('0') = 0, М b ('1')=1 М b ( '0') = =2 * М b ( ) М b ( 1) = =2 * М b ( ) + 1

0|1|2|3|4|5|6|7|8|9 | (0|1|2|3|4|5|6|7|8|9) Синтаксические правила: M d (0) = 0, M d ('1') = 1,,..., M d ('9') = 9 М d ( '0') = =10 * М d ( ) М d ( 1) = = 10 * М d ( ) + 1 … М d ( '9') = = 10 * М d ( ) + 9