- •2011Г. Содержание:
- •Спецификация Разработка:
- •Описание входных данных:
- •Описание выходных данных:
- •Примеры входных и выходных данных:
- •Проектирование
- •Проектирование модульной структуры
- •Пример набора тестов для модулей распознавания цепочки:
- •3. Кодирование
- •3.1. Блок транслитерации
- •Транслитерация символьной цепочки:
- •3.2 Лексический блок
- •If b then X(f1, f2, f3) else d(e1, e2);
- •Конечный распознаватель лексического блока:
- •Редукция конечного распознавателя лексического блока:
- •Примитивные процедуры обрабатывающего автомата
- •Процедуры переходов обрабатывающего автомата лексического блока
- •3.3 Синтаксический блок
- •Тестирование
- •Пример протокола тестирования головного модуля
Процедуры переходов обрабатывающего автомата лексического блока
Действие |
Семантика |
1 |
Лексема(if); Обработать; |
2 |
Обработать; |
3 |
Лексема(имя); Обработать; |
4 |
Обработать; |
5 |
Лексема(then); Обработать; |
6 |
Обработать; |
7 |
Лексема(имя); Обработать; |
8 |
Лексема(идентифик); Обработать; |
9 |
Обработать; |
10 |
Лексема(else); Обработать; |
11 |
Обработать; |
12 |
Лексема(имя); Обработать; |
13 |
Лексема(идентифик); Обработать; |
14 |
Лексема(ТЧКЗПТ); Обработать; |
3.3 Синтаксический блок
Конечный распознаватель синтаксического блока:
|
Клслово if |
Клслово then |
Клслово else |
Идентификатор |
Скобка |
Зпт |
Тчкзпт |
НАЧ |
IF |
|
|
|
|
|
|
if |
|
|
|
ИДЕНТИФИК |
|
|
|
ИМЯ1 |
|
THEN |
|
|
|
|
|
then |
|
|
|
ИДЕНТИФИК |
|
|
|
ИМЯ2 |
|
|
|
|
СКОБКА |
|
|
СКОБКА1.1 |
|
|
|
ИДЕНТИФИК |
|
|
|
ИМЯ2.1 |
|
|
|
|
|
ЗПТ |
|
ЗАПЯТАЯ |
|
|
|
ИДЕНТИФИК |
|
|
|
ИМЯ2.2 |
|
|
|
|
|
ЗПТ |
|
ЗАПЯТАЯ |
|
|
|
ИДЕНТИФИК |
|
|
|
ИМЯ2.3 |
|
|
|
|
СКОБКА |
|
|
СКОБКА1.2 |
|
|
ELSE |
|
|
|
|
else |
|
|
|
ИДЕНТИФИК |
|
|
|
ИМЯ 3 |
|
|
|
|
СКОБКА |
|
|
СКОБКА 2.1 |
|
|
|
ИДЕНТИФИК |
|
|
|
ИМЯ2.1 |
|
|
|
|
|
ЗПТ |
|
ЗАПЯТАЯ |
|
|
|
ИДЕНТИФИК |
|
|
|
ИМЯ2.2 |
|
|
|
|
СКОБКА |
|
|
СКОБКА 2.2 |
|
|
|
|
|
|
Тчкзпт |
ТЧКЗПТ |
|
|
|
|
|
|
|
Тестирование
На этапе тестирования мы выполнили тестовые программы модулей, используя в качестве входных данных входные данные подготовленных ранее тестов, и сравнили полученные выходные данные с выходными данными тестов.
В случае, если установлен факт наличия ошибки, необходимо провести отладку данного модуля. Отладка модуля подразумевает поиск и устранение ошибки. При выполнении отладки полезно сочетать использование отладчика системы программирования с "сухой" отладкой (работа без компьютера, с карандашом и листингом модуля). После устранения ошибки необходимо вновь выполнить тестирование данного модуля на всех тестах. Тестирование и последующая отладка модуля продолжаются до тех пор, пока тестирование не приведет к совпадению всех ожидаемых и действительных результатов.