- •2011Г. Содержание:
- •Спецификация Разработка:
- •Описание входных данных:
- •Описание выходных данных:
- •Примеры входных и выходных данных:
- •Проектирование
- •Проектирование модульной структуры
- •Пример набора тестов для модулей распознавания цепочки:
- •3. Кодирование
- •3.1. Блок транслитерации
- •Транслитерация символьной цепочки:
- •3.2 Лексический блок
- •If b then X(f1, f2, f3) else d(e1, e2);
- •Конечный распознаватель лексического блока:
- •Редукция конечного распознавателя лексического блока:
- •Примитивные процедуры обрабатывающего автомата
- •Процедуры переходов обрабатывающего автомата лексического блока
- •3.3 Синтаксический блок
- •Тестирование
- •Пример протокола тестирования головного модуля
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИИ
Троицкий филиал федерального государственного бюджетного
образовательного учреждения высшего профессионального образования
“Челябинский государственный университет”
Кафедра математики и информатики
ОТЧЁТ ПО ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ
Выполнил: Терновский А.С
Группа: ТПМ-101
Дата: 12.07.2011
Проверила: ст.преп. Булатова М.Г.
Троицк
2011Г. Содержание:
|
|
|
3 |
3.1. Блок транслитерации 3.2. Лексический блок 3.3. Синтаксический блок
|
5 9
9 9 14 |
|
15 15 15 |
|
|
|
|
|
|
|
|
|
|
Спецификация Разработка:
Необходимо разработать распознаватель заданной символьной цепочки. Символьная цепочка задается с помощью формул Бэкуса-Наура.
<условный оператор>::=<оператор if-then>|<оператор if-then-else>;
<оператор if-then>::=IF <условие> THEN <оператор1> ELSE<>;
<оператор if-then>::=IF <условие> THEN <оператор1> ELSE<оператор2>;
<оператор1>::=<оператор присваивания>;
<оператор присваивания>::=<идентификатор>::=<выражение>;
<идентификатор>::=<буква>|<идентификатор><буква>|;
<буква>::=A|..|Z;
<выражение>::=<вызов подпрограммы>;
<вызов подпрограммы>::=<идентификатор>(<список параметров>);
<список параметров>::=<идентификатор>;
<оператор2>::=<вызов подпрограммы>;
<список параметров>::=<целая константа>;
<целая константа>::=<целое со знаком>|<целое без знака>;
<целое со знаком>::=<знак><целое без знака>;
<знак>::=+|-;
<целое без знака>::=<цифра>|<цифра><целое без знака>;
<цифра>::=0|..|9;
Помимо этого на цепочку накладывается следующее семантическое ограничение: идентификатор, входящий в цепочку, не должен совпадать с ключевыми словами языка Pascal.
Описание входных данных:
Цепочка записана в текстовом файле INPUT.TXT, который состоит из одной строки. Длина цепочки не превышает 80 символов.
Описание выходных данных:
Результат распознавания необходимо записать в текстовый файл OUTPUT.TXT в одно из следующих сообщений: ACCEPT, если цепочка допустима, и REJECT, если цепочка недопустима.
Примеры входных и выходных данных:
INPUT.TXT |
OUTPUT.TXT |
IF b THEN x(f1, f2, f3) ELSE d(e1, e2, e3); |
ACCEPT |
IF TRUE THEN a(b3) ELSE a(c7); | |
IF b THEN x(f1, f2, f3) ELSE d(e1, e2, e3) |
REJECT |
FOR r THEN x(f1, f2, f3) ELSE d(e1, e2); | |
IF b THEN TRUE ELSE x(d6); | |
IF 5 THEN v(t1,f2) ELSE m(u2,f1); |
Проектирование
На этапе проектирования необходимо выполнить проектирование модульной структуры программы и разработать набор тестов и соответствующие тестовые программы для проведения тестирования. Важной особенностью этапа проектирования является то, что все работы на данном этапе выполняются без использования системы программирования.