
- •2) Проблема разрешимости
- •4) Эффективный ап, классы эквивалентности, управляемый ап.
- •5) Простой ап, его протокол. Репозиция ап.
- •6)Сети Петри: граф, структура, назначение, маркировка. Выполнение сп.
- •7)Особенности моделирования сетями Петри
- •8) Свойства сп:
- •9) Дерево достижимости
- •10)Анализ свойств сетей Петри с помощью дерева достижимости.
- •14) Виды конечных автоматов
- •15) Работа ка. Автоматы-преобразователи и автоматы-распознаватели.
- •16) Прямое произведение ка. Эквивалентность автоматов.
- •17) Нахождение эквивалентных состояний ка. Теорема Мура
- •18) Минимизация ка.
- •19) Взаимодействующие последовательные процессы (впп).
- •20) Протоколы впп и операции с ними.
- •21) Свойства параллельных вычислительных процессов (пвп).
- •22.3) Программирование пвп. Признаки параллельности.
- •24) Моделирование пвп: метод процесс/канал.
- •25)Моделирование пвп: метод обмена сообщениями.
- •26)Моделирование пвп: метод параллелизма данных.
- •27)Моделирование пвп: метод использования общей памяти.
- •28) Семантическая теория программ. Метаязыки для описания синтаксиса.
- •30) Семантическая теория программ. Денотационная семантика.
- •31) Семантическая теория программ. Операционная и декларативная семантика.
- •32) Аксиоматическая семантика
- •33) Жизненный цикл по. Основные модели жизненного цикла.
- •34) Верификация как этап жизненного цикла по.
30) Семантическая теория программ. Денотационная семантика.
Определение для каждой сущности языка некоего математического объекта (денотата) и некоей функции, отображающей экземпляры этого элемента в экземпляры математического объекта
Идея основана на факте существования строгих методов оперирования математическими объектами, а не конструкциями языков программирования.
Сложность использования метода заключается в создании объектов и функций отображения.
Пример описания денотационной семантики
Описание двоичных чисел:
$двоичное_число:= “0” | “1” | <двоичное_число> “0” |
<двоичное_число> “1”
Определим денотат Nat - область определения семантических значений объектов (представляет собой множество неотрицательных десятичных целых чисел).
Семантическая функция Мb отображает синтаксические объекты в объекты множества Nat согласно указанным правилам:
Мb(“0”) = 0, Мb(“1”)=1;
Мb(<двоичное_число> “0”) = 2 × Мb(<двоичное_число>);
Мb(<двоичное_число> “1”) = 2 × Мb(<двоичное_число>) + 1
31) Семантическая теория программ. Операционная и декларативная семантика.
Операционная семантика
Сводится к описанию смысла программы посредством выполнения ее операторов на реальной или виртуальной машине.
Смысл оператора определяется изменениями, произошедшими в состоянии машины после выполнения данного оператора, т.е. семантика команды представляется изменением в состоянии компьютера, вызванным выполнением команды.
Описание операционной семантики операторов языков программирования высокого уровня требует создания реального или виртуального автомата.
Операционная семантика является эффективной до тех пор, пока описание языка остается простым и неформальным.
Аппаратные проблемы операционной семантики
Аппаратное обеспечение компьютера является чистым интерпретатором его машинного языка, который создается с помощью программных средств, являющихся виртуальным компьютером для данного языка.
Сложность и индивидуальные особенности аппаратного обеспечения компьютера и операционной системы, используемых для запуска чистого интерпретатора, затрудняют понимание происходящих действий.
Семантическое определение будет доступно только для конфигурации компьютера, идентичной построенному интерпретатору.
Решение проблем: замена реального компьютера виртуальным компьютером низкого уровня.
Пример описания операционной семантики на низкоуровневом языке
ident := var
ident
:= ident -
1
goto
label
if
var
relop
var
goto
label
relop
– оператор
отношений
из
набора {= , <>, >, <, >=, <=},
ident
– идентификатор,
var
–
идентификатор
/ константа.
Обобщение
описания:
ident
:= var bin_op
var
ident
:= un_op
var
bin_op
- бинарный оператор,
un_op
- унарный оператор
Декларативная семантика
Является существенной характеристикой языков логического программирования, в которых программы состоят из объявлений (деклараций), а не из операторов присваивания и управляющих операторов. Эти объявления в действительности являются операторами, или высказываниями символьной логики.
Основная концепция: существует простой способ определения смысла каждого оператора, и он не зависит от того, как именно этот оператор используется для решения задачи.
Не требует для проверки отдельного оператора рассмотрения его контекста, локальных объявлений или последовательности выполнения программы.
Формальное определение семантики становится общепринятой частью определения нового языка.
Пример описания в декларативной семантике
Естественный язык |
Язык логики 1-го порядка |
Х - Студент |
Студент(X) |
V изучает T |
Изучает (V, T) |
Sin 3 = 0.1411 |
Sin (3, 0.1411) |
3+7 = 10 |
+(3,7,10) |