Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ЛРС_Теория вычислительных процессо...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
315.39 Кб
Скачать

Содержание

  1. Лабораторная работа 1

Интерпретация стандартных схем программ

  1. Лабораторная работа 2

Построение транслятора

  1. Лабораторная работа 3

Высказывания. Вычисление и исчисление высказываний

Лабораторная работа 4

Методы нисходящего анализа

  1. Лабораторная работа 5

Методы восходящего анализа

  1. Лабораторная работа 6

Реализация методов верификации программ

  1. Лабораторная работа 7,8

Реализация сетей Петри

  1. Лабораторная работа 9

Исследование сетей Петри

  1. Лабораторная работа 10

Анализ сети Петри на основе матричных уравнений.

Лабораторная работа 1 Интерпретация стандартных схем программ

  1. Цель работы:

    1. Изучение структуры стандартных схем программ.

    2. Проведение интерпретации стандартной схемы программы.

  1. Литература:

    1. Молчанов А.Ю. Системное программное обеспечение. – СПб.: Питер, 2006. – 395с.

    2. Свердлов С.З. Языки программирования и методы трансляции. – СПб.: Питер, 2007. – 637с.

    3. Тонаненбаум Э. Компьютерные сети. – СПб.: Питер, 2008 – 991с.

    4. Сырецкий Г.А. Информатика. Фундаментальный курс. Том 1, 2. – Москва, 2005- 234с.

    5. Душин В.К. Теория основных информационных процессов и систем. – Москва, 2009 – 348 с.

    6. Русская компьютерная библиотека.URL: http://www.rusdoc.ru

  1. Подготовка к работе:

    1. Повторить теоретический материал по теме «Семантика языка программирования».

  2. Основное оборудование:

    1. ПЭВМ.

    2. Среда разработки Delphi 7.

  3. Задание:

    1. Изучить теоретический материал.

    2. Выполнить задания.

    3. Составить отчет по работе.

  4. Порядок выполнения работы:

    1. Ответить на вопросы преподавателя, актуализирующие знания касающиеся построения стандартной схемы программ.

    2. Запустить программу Delphi 7.

    3. Написать программу по заданию в зависимости от варианта.

    4. Интерпретировать программу.

Теоретические сведения.

Схемы программ - это математические модели программ, описывающие строение программы, или точнее строение множества программ, где конкретные операции и функции заменены абстрактными функциональными и предикатными символами.

Стандартные схемы программ (ССП) характеризуются базисом и структурой схемы.

Базис класса фиксирует символы, из которых строятся схемы, указывает их роль (переменные, функциональные символы и др.), задает вид выражений и операторов схем.

Полный базис В класса стандартных схем состоит из 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, которая сопоставляет:

  1. каждой переменной х из базиса В - некоторый элемент d = I(x) из области интерпретации D;

  2. каждой константе а из В - некоторый элемент d = I(а) из области интерпретации D;

  3. каждому функциональному символу f(n) - всюду определенную функцию F(n)=I(f(n));

  4. каждой логической константе р(0) - один символ множества { 0,1 };

  5. каждому предикатному символу р(n) - всюду определенный предикат P(n) = I(p(n)).

Пара (S,I) называется интерпретированной стандартной схемой (ИСС), или стандартной программой (СП).

Состоянием памяти программы (S,I) называют функцию W: XS D, которая каждой переменной x из памяти схемы S сопоставляет элемент W(x) из области интерпретации D.

Значение терма τ при интерпретации I и состоянии памяти W (обозначим τI(W)) определяется следующим образом:

  1. если τ=х, x – переменная, то τI(W) = W(x);

  2. если τ=a, a – константа, то τI(W) = I(a);

  3. если τ=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

Написать программу решения задачи в зависимости от варианта:

  1. Из заданного множества точек на плоскости выбрать две различные точки так, чтобы количество точек, лежащих по разные стороны прямой, проходящей через эти две точки, различались наименьшим образом.

  2. Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих круглых скобок, т.е. верно ли, что можно установить взаимно однозначное соответствие открывающих и закрывающих скобок.

  3. Найти все такие простые числа, не превосходящие заданного N, двоичная запись которых представляет собой симметричную последовательность нулей и единиц (начинающуюся единицей).

  4. Начина с центра, обойти по спирали все элементы квадратной матрицы размером 13 x 13(распечатывая их в порядке обхода).

  5. Построить таблицу всех различных разбиений заданного целого числа N>0 на сумму трех натуральных слагаемых (разбиения, отличающиеся лишь порядком слагаемых, различными не считаются).

  6. Задано M множество точек плоскости. Определить, верно ли, что для каждой точки a из множества M существует точка b из множества M, ( a не равна b) такая, что не существует двух точек множества M, лежащих по разные стороны от прямой ab.

  7. По заданной квадратной матрице размером 10x10, построить вектор длиной 19, элементы которого – максимумы элементов, диагоналей, параллельных главной диагонали.

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

  9. Перечислить все натуральные числа, не превосходящие заданного N, в двоичном представлении которых номера ненулевых разрядов образуют арифметическую прогрессию.

  10. Многоугольник (не обязательно выпуклый) задан на плоскости перечислением координат вершин в порядке обхода его границы. Определить площадь многоугольника.

Задание 2

Построить графовую модель стандартной схемы программы.

Задание 3

Указать интерпретацию ССП и представить протокол выполнения программы.