Разработка транслятора с языка PROST на язык С++. Часть 2.

Страницы работы

Содержание работы

Министерство образования  и науки Российской Федерации

УТВЕРЖДАЮ

руководитель работы

_____________________ А.Н. Петрова

«_____ »__________________ 2007 г.

Разработка транслятора с языка PROST на язык С++.

Описание программы

02067988. 2301071 – 03 13

Бумажный носитель

Исполнитель

_____________________  А.Н. Беляев

«_____ »__________________ 2007 г.


УТВЕРЖДЕН

02067988. 2301071 – 03 13 - ЛУ

Разработка транслятора с языка PROST на язык С++.

Описание программы

02067988. 2301071 – 03 13

Бумажный носитель

17

 
 


Листов ______


Аннотация

Данный документ содержит описание программы и описание задачи.


Содержание

2.1 Описание программы для главного окна " Разработка транслятора с языка PROST на язык С++ "........................................................................................................................................ 11

2.1.1 Общие сведения............................................................................................... 11

2.1.2 Функциональное назначение......................................................................... 11

2.1.3 Описание логической структуры................................................................... 11

2.1.4 Используемые технические средства............................................................ 23

2.1.5 Вызов и загрузка.............................................................................................. 23

2.1.6 Входные данные............................................................................................... 24

2.1.7 Выходные данные............................................................................................ 24


2.1 Описание программы для главного окна "Транслятор с языка PROST

на язык С++ "

2.1.1 Общие сведения

Представляет собой стандартное приложение в виде командного файла.

Программное обеспечение необходимое для работы со всей программой: любая операционная система семейства Windows или MS-DOS версии не ниже 5.0.

Языки программирования: написана языке программирования С++.

2.1.2 Функциональное назначение

Данная программа демонстрирует особенности работы транслятора с языка PROST на язык С++.

2.1.3 Описание логической структуры

2.1.3.1 Переход от грамматики к конечному автомату

Правила перехода от автоматной грамматики к конечному автомату . КА для чисел будет содержать:

·  Входной алфавит состоит из множества терминалов и добавляются символы, признака конца лексемы (разделители, обозначим их все ├), то есть  V=T={ц, ., с, ‘}U{├}.

·  Множество заключительных состояний: Z – допустить лексему, O – отклонить лексему, переход в них происходит при достижении конца лексемы. F={O, Z}.

·  Алфавит состояний Q=N U {O, Z}.

·  Начальное состояние q0=0.

·  Функции переходов изобразим в виде диаграммы переходов (рис. 1).

В состояние “отклонить” КА приходит при обнаружении любой ошибки. Ошибкой считается ситуация, когда на входной ленте встречается символ не предусмотренный для текущего состояния КА.

2.1.3.2 Разбиение входного алфавита на непересекающиеся классы

Разделим множество входных символов V на непересекающиеся подмножества символов (классы). Для удобства анализа разделителей и констант выделим символы: {‘, <, >, .} в отдельные классы.

Таким образом, получим следующие подмножества символов:

1 – {abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}

2 – {0123456789}

3 – {+ – * / ( ) ;}

4 – {.}                            //Разделитель в числе

5 – {:}                           //Разделитель является началом двухсимвольного //разделителя :=

6 – {=}                          

7 – {<}                          //Могут быть односимвольными и началом

8 – {>}                           //двухсимвольных разделителей <>, <=, >=

9 – { }

10 – { \n }

11 – {'}

Имеет смысл определить так же дополнительное подмножество 0 – все остальные символы. Это будет полезно при анализе строковых констант.

Для удобства программирования весь входной алфавит можно представить с помощью кодов – номеров подмножеств символов, приведенных выше. Для этих же целей в таблице, содержащей матрицу переходов, в заголовке указан номер подмножества символов.

2.1.3.3 Задание матрицы переходов конечного автомата

Переходя к матрице переходов, получим следующий автомат, пригодный для реализации в программе. Переход в состояние Z – отмечаем символом"+", отвергание лексемы – символом " - " . Матрицы переходов изображены на рис. 3-4.

Разделители

Похожие материалы

Информация о работе

Предмет:
ТЯПиМТ
Тип:
Курсовые работы
Размер файла:
211 Kb
Скачали:
0