- •Содержание:
- •Спецификация Разработка:
- •Описание входных данных:
- •Описание выходных данных:
- •Примеры входных и выходных данных:
- •Проектирование
- •Проектирование модульной структуры
- •Пример набора тестов для модулей распознавания цепочки:
- •3.1. Блок транслитерации
- •Транслитерация символьной цепочки:
- •3.2 Лексический блок
- •3. Кодирование
- •Конечный распознаватель лексического блока:
- •Редукция конечного распознавателя лексического блока:
- •Примитивные процедуры обрабатывающего автомата
- •Процедуры переходов обрабатывающего автомата лексического блока
- •3.3 Синтаксический блок
- •Тестирование
- •Пример протокола тестирования головного модуля
Редукция конечного распознавателя лексического блока:
Шаг |
Результат( блоки состояний) |
Действия |
0 |
Р0={НАЧ, КЛСЛОВО, ПРОБЕЛ 1, ИМЯ, ПРОБЕЛ 2, КЛСЛОВО, ПРОБЕЛ 3, ИМЯ, ПРОБЕЛ 4, КЛСЛОВО, ПРОБЕЛ 5, ИМЯ ,ТЧКЗПТ} |
Разбиваем P0 на два блока: допустимые и отвергающие состояния |
1 |
|
Разбиваем
|
2 |
|
1.
Разбиваем
2.
Разбиваем
3.
Разбиваем
4.
Разбиваем
|
3 |
|
Разбиваем
|
Примитивные процедуры обрабатывающего автомата
№ п |
Процедура |
Семантика |
|
0 |
Да |
Остановить обработку и допустить цепочку |
|
1 |
Нет |
Остановить обработку и отвергнуть цепочку |
|
2 |
Обработать |
Добавить входной символ к значению текущей лексемы |
|
3 |
Лексема (класс) |
Увеличить счетчик лексем на 1, установить заданный класс текущей лексемы |
|
Процедуры переходов обрабатывающего автомата лексического блока
Действие |
Семантика |
1 |
Лексема(if); Обработать; |
2 |
Обработать; |
3 |
Лексема(имя); Обработать; |
4 |
Обработать; |
5 |
Лексема(then); Обработать; |
6 |
Обработать; |
7 |
Лексема(имя); Обработать; |
8 |
Лексема(идентифик); Обработать; |
9 |
Обработать; |
10 |
Лексема(else); Обработать; |
11 |
Обработать; |
12 |
Лексема(имя); Обработать; |
13 |
Лексема(идентифик); Обработать; |
14 |
Лексема(ТЧКЗПТ); Обработать; |

{
НАЧ, КЛСЛОВО, ПРОБЕЛ 1, ИМЯ, ПРОБЕЛ 2,
КЛСЛОВО, ПРОБЕЛ 3, ИМЯ, ПРОБЕЛ 4, КЛСЛОВО,
ПРОБЕЛ 5, ИМЯ }
{ТЧКЗПТ}
по входу буква
{НАЧ,
КЛСЛОВО}
{ПРОБЕЛ
1, ИМЯ}
{
ПРОБЕЛ 2, КЛСЛОВО }
{
ПРОБЕЛ 3, ИМЯ }
{
ПРОБЕЛ 4, КЛСЛОВО }
{
ПРОБЕЛ 5, ИМЯ }
{ТЧКЗПТ}
по входу цифра
по входу цифра
по входу двоеточие
по
входу тчкзпт
{НАЧ
}
{
КЛСЛОВО }
{
ПРОБЕЛ 1 }
{
ИМЯ }
{
ПРОБЕЛ 2 }
{
КЛСЛОВО }
{
ПРОБЕЛ 3}
{
ИМЯ }
{
ПРОБЕЛ 4 }
{
КЛСЛОВО }
{
ПРОБЕЛ 5 }
{
ИМЯ }
{ТЧКЗПТ}
по входу тчкзпт