
- •Содержание
- •Лабораторная работа 1 Интерпретация стандартных схем программ
- •Цель работы.
- •Лабораторная работа 2 Построение транслятора
- •Теоретические сведения
- •На основании составленных таблиц можно записать входной текст через введённые дескрипторы (дескрипторный текст):
- •Цель работы.
- •Лабораторная работа 3 Высказывания. Вычисление и исчисление высказываний
- •Цель работы.
- •Лабораторная работа 4 Методы нисходящего анализа
- •Лабораторная работа 5 Методы восходящего анализа
- •Лабораторная работа 6 Реализация методов верификации программ
- •Цель работы.
- •Лабораторная работа 7, 8 Реализация сетей Петри
- •Цель работы.
- •Лабораторная работа 9 Исследование сетей Петри
- •Цель работы.
- •Лабораторная работа 10 Анализ сети Петри на основе матричных уравнений.
- •Цель работы.
Содержание
Лабораторная работа 1
Интерпретация стандартных схем программ
Лабораторная работа 2
Построение транслятора
Лабораторная работа 3
Высказывания. Вычисление и исчисление высказываний
Лабораторная работа 4
Методы нисходящего анализа
Лабораторная работа 5
Методы восходящего анализа
Лабораторная работа 6
Реализация методов верификации программ
Лабораторная работа 7,8
Реализация сетей Петри
Лабораторная работа 9
Исследование сетей Петри
Лабораторная работа 10
Анализ сети Петри на основе матричных уравнений.
Лабораторная работа 1 Интерпретация стандартных схем программ
Цель работы:
Изучение структуры стандартных схем программ.
Проведение интерпретации стандартной схемы программы.
Литература:
Молчанов А.Ю. Системное программное обеспечение. – СПб.: Питер, 2006. – 395с.
Свердлов С.З. Языки программирования и методы трансляции. – СПб.: Питер, 2007. – 637с.
Тонаненбаум Э. Компьютерные сети. – СПб.: Питер, 2008 – 991с.
Сырецкий Г.А. Информатика. Фундаментальный курс. Том 1, 2. – Москва, 2005- 234с.
Душин В.К. Теория основных информационных процессов и систем. – Москва, 2009 – 348 с.
Русская компьютерная библиотека.URL: http://www.rusdoc.ru
Подготовка к работе:
Повторить теоретический материал по теме «Семантика языка программирования».
Основное оборудование:
ПЭВМ.
Среда разработки Delphi 7.
Задание:
Изучить теоретический материал.
Выполнить задания.
Составить отчет по работе.
Порядок выполнения работы:
Ответить на вопросы преподавателя, актуализирующие знания касающиеся построения стандартной схемы программ.
Запустить программу Delphi 7.
Написать программу по заданию в зависимости от варианта.
Интерпретировать программу.
Теоретические сведения.
Схемы программ - это математические модели программ, описывающие строение программы, или точнее строение множества программ, где конкретные операции и функции заменены абстрактными функциональными и предикатными символами.
Стандартные схемы программ (ССП) характеризуются базисом и структурой схемы.
Базис класса фиксирует символы, из которых строятся схемы, указывает их роль (переменные, функциональные символы и др.), задает вид выражений и операторов схем.
Полный базис В класса стандартных схем состоит из 4-х непересекающихся, счетных множеств символов и множества операторов - слов, построенных из этих символов.
Множества символов полного базиса:
1. множество символов, называемых переменными;
2. множество функциональных символов;
3. множество предикатных символов;
4. {start, stop, ...,:= и т. д.} - множество специальных символов.
Множество операторов включает пять типов:
1. начальный оператор - слово вида start(х1, х2...хк),
2. заключительный оператор - слово вида stop(τ1, τ2...τn),
3. оператор присваивания
4. условный оператор (тест)
5. оператор петли.
Графовая форма стандартной схемы программ
Графовая форма стандартной схемы - представление стандартной схемы программ в виде размеченного графа, вершинам которого приписаны операторы из некоторого базиса В.
При этом стандартной схемой в базисе В называется конечный (размеченный ориентированный) граф без свободных дуг и с вершинами следующих пяти видов:
1. Начальная вершина
2. Заключительная вершина
3. Вершина-преобразователь.
4. Вершина-распознаватель.
5. Вершина-петля.
Схема S называется правильной, если на каждой дуге заданы все переменные.
Вершины изображены прямоугольниками, а вершина-распознаватель - овалом. Операторы записаны внутри вершины.
Графовая форма стандартной схемы программ содержит следующие вершины:
Начальная вершина – 1шт;
Заключительная вершина – 1шт;
Вершина-преобразователь – 5шт;
Вершина-распознователь – 1шт;
Вершина-петля – 1шт.
Линейная форма стандартной схемы программ
Для использования линейной формы стандартной схемы программ множество специальных символов расширяется дополнительными символами: goto, if, then, else. Стандартная схема программ в линейной форме представляет собой последовательность инструкций, которая строится следующим образом:
1. если выходная дуга начальной вершины с оператором start(х1,..., хn) ведет к вершине с меткой L, то начальной вершине соответствует инструкция:
0: start(х1,..., хn) goto L;
2. если вершина схемы S с меткой L - преобразователь с оператором присваивания х:=τ, выходная дуга которого ведет к вершине с меткой L1, то этому преобразователю соответствует инструкция:
L: x: =τ goto L1;
3. если вершина с меткой L - заключительная вершина с оператором stop(τ1,...τm), то ей соответствует инструкция
L: stop(τ1,..., τm);
4. если вершина с меткой L - распознаватель с условием р(τ1,...τk), причем 1-дуга ведет к вершине с меткой L1, а 0-дуга - к вершине с меткой L0, то этому распознавателю соответствует инструкция
L: if р(τ1,...τk) then L1 else L0;
5. если вершина с меткой L - петля, то ей соответствует инструкция
L: loop.
Интерпретация стандартных схем программ
Пусть в некотором базисе В определен класс ССП. Интерпретацией базиса В в области интерпретации D называется функция I, которая сопоставляет:
каждой переменной х из базиса В - некоторый элемент d = I(x) из области интерпретации D;
каждой константе а из В - некоторый элемент d = I(а) из области интерпретации D;
каждому функциональному символу f(n) - всюду определенную функцию F(n)=I(f(n));
каждой логической константе р(0) - один символ множества { 0,1 };
каждому предикатному символу р(n) - всюду определенный предикат P(n) = I(p(n)).
Пара (S,I) называется интерпретированной стандартной схемой (ИСС), или стандартной программой (СП).
Состоянием
памяти программы (S,I) называют функцию
W: XS
D,
которая каждой переменной x из памяти
схемы S сопоставляет элемент W(x) из
области интерпретации D.
Значение терма τ при интерпретации I и состоянии памяти W (обозначим τI(W)) определяется следующим образом:
если τ=х, x – переменная, то τI(W) = W(x);
если τ=a, a – константа, то τI(W) = I(a);
если τ=f(n)(τ1, τ2..., τn), то τI(W)= I(f(n))(τ1I(W), τ2I(W),..., τnI(W)).
Аналогично определяется значение теста при интерпретации I и состоянии памяти W или I(W): если =р(n)(τ1, τ2..., τn), то I(W)= I(p(n))(τ1I(W), τ2I(W),... τnI(W)), n ≥0.
Конфигурацией программы называют пару U=(L,W), где L - метка вершины схемы S, а W - состояние ее памяти. Выполнение программы описывается конечной или бесконечной последовательностей конфигураций, которую называют протоколом выполнения программы.
Задание 1
Написать программу решения задачи в зависимости от варианта:
Из заданного множества точек на плоскости выбрать две различные точки так, чтобы количество точек, лежащих по разные стороны прямой, проходящей через эти две точки, различались наименьшим образом.
Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок, т.е. верно ли, что можно установить взаимно однозначное соответствие открывающих и закрывающих скобок.
Найти все такие простые числа, не превосходящие заданного N, двоичная запись которых представляет собой симметричную последовательность нулей и единиц (начинающуюся единицей).
Начина с центра, обойти по спирали все элементы квадратной матрицы размером 13 x 13(распечатывая их в порядке обхода).
Построить таблицу всех различных разбиений заданного целого числа N>0 на сумму трех натуральных слагаемых (разбиения, отличающиеся лишь порядком слагаемых, различными не считаются).
Задано M множество точек плоскости. Определить, верно ли, что для каждой точки a из множества M существует точка b из множества M, ( a не равна b) такая, что не существует двух точек множества M, лежащих по разные стороны от прямой ab.
По заданной квадратной матрице размером 10x10, построить вектор длиной 19, элементы которого – максимумы элементов, диагоналей, параллельных главной диагонали.
Определить радиус и центр окружности, проходящей хотя бы через три различные точки заданного множества точек на плоскости, что минимальна разность количества точек, лежащих внутри и вне окружности.
Перечислить все натуральные числа, не превосходящие заданного N, в двоичном представлении которых номера ненулевых разрядов образуют арифметическую прогрессию.
Многоугольник (не обязательно выпуклый) задан на плоскости перечислением координат вершин в порядке обхода его границы. Определить площадь многоугольника.
Задание 2
Построить графовую модель стандартной схемы программы.
Задание 3
Указать интерпретацию ССП и представить протокол выполнения программы.