Министерство образования и науки Российской Федерации
УТВЕРЖДАЮ руководитель работы _____________________ А.Н. Петрова «_____ »__________________ 2007 г. |
Разработка транслятора с языка PROST на язык С++.
Описание программы
02067988. 2301071 – 03 13
Бумажный носитель
Исполнитель _____________________ А.Н. Беляев «_____ »__________________ 2007 г. |
УТВЕРЖДЕН
02067988. 2301071 – 03 13 - ЛУ
Разработка транслятора с языка PROST на язык С++.
Описание программы
02067988. 2301071 – 03 13
Бумажный носитель
|
Листов ______
Аннотация
Данный документ содержит описание программы и описание задачи.
Содержание
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
на язык С++ "
Представляет собой стандартное приложение в виде командного файла.
Программное обеспечение необходимое для работы со всей программой: любая операционная система семейства Windows или MS-DOS версии не ниже 5.0.
Языки программирования: написана языке программирования С++.
Данная программа демонстрирует особенности работы транслятора с языка PROST на язык С++.
Правила перехода от автоматной грамматики к конечному автомату . КА для чисел будет содержать:
· Входной алфавит состоит из множества терминалов и добавляются символы, признака конца лексемы (разделители, обозначим их все ├), то есть V=T={ц, ., с, ‘}U{├}.
· Множество заключительных состояний: Z – допустить лексему, O – отклонить лексему, переход в них происходит при достижении конца лексемы. F={O, Z}.
· Алфавит состояний Q=N U {O, Z}.
· Начальное состояние q0=0.
· Функции переходов изобразим в виде диаграммы переходов (рис. 1).
В состояние “отклонить” КА приходит при обнаружении любой ошибки. Ошибкой считается ситуация, когда на входной ленте встречается символ не предусмотренный для текущего состояния КА.
Разделим множество входных символов V на непересекающиеся подмножества символов (классы). Для удобства анализа разделителей и констант выделим символы: {‘, <, >, .} в отдельные классы.
Таким образом, получим следующие подмножества символов:
1 – {abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}
2 – {0123456789}
3 – {+ – * / ( ) ;}
4 – {.} //Разделитель в числе
5 – {:} //Разделитель является началом двухсимвольного //разделителя :=
6 – {=}
7 – {<} //Могут быть односимвольными и началом
8 – {>} //двухсимвольных разделителей <>, <=, >=
9 – { }
10 – { \n }
11 – {'}
Имеет смысл определить так же дополнительное подмножество 0 – все остальные символы. Это будет полезно при анализе строковых констант.
Для удобства программирования весь входной алфавит можно представить с помощью кодов – номеров подмножеств символов, приведенных выше. Для этих же целей в таблице, содержащей матрицу переходов, в заголовке указан номер подмножества символов.
Переходя к матрице переходов, получим следующий автомат, пригодный для реализации в программе. Переход в состояние Z – отмечаем символом"+", отвергание лексемы – символом " - " . Матрицы переходов изображены на рис. 3-4.
Разделители
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.