Для построения МП – автомата нам необходимо знать множество ВЫБОР для каждого правила грамматики ( множество ВЫБОР для правила грамматики показывает, с какого символа может начинаться оставшаяся часть цепочки на входной ленте, в выводе которой участвует это правило). Приведем множества ВЫБОР для каждого правила грамматики.
| Правило | Выбор | 
| TYPE → integer | integer | 
| TYPE → float | float | 
| TYPE → label | label | 
| vardef → DIM <identifier> as type ; | <identifier> | 
| vardefs → vardef vardefs | <identifier> | 
| vardefs → end | end | 
| defs → vars vardefs | vars | 
| binop → + | + | 
| binop → - | - | 
| binop → * | * | 
| binop → / | / | 
| condition → < | < | 
| condition → > | > | 
| condition → = | = | 
| condition → <> | <> | 
| condition → <= | <= | 
| condition → >= | >= | 
| EXPRESSION → <const> EXPRESSION’ | <const> | 
| EXPRESSION → - expression EXPRESSION’ | - | 
| EXPRESSION → <identifier> EXPRESSION’ | <identifier> | 
| EXPRESSION → ( expression ) EXPRESSION’ | ( | 
| EXPRESSION’ → binop expression EXPRESSION’ | + - * / | 
| EXPRESSION’ → λ | ; ) < > = <> <= >= | 
| ELSE → else operators | else | 
| ELSE → λ | <identifier> while input outputn outputs goto label end | 
| operator → <identifier> := expression ; | <identifier> | 
| operator → while ( expression condition expression ) do operators | while | 
| operator → input <dentifier> ; | input | 
| operator → outputn expression ; | outputn | 
| operator → outputs <strc> ; | outputs | 
| operator → goto <dentifier> ; | goto | 
| operator → label <dentifier> ; | label | 
| operator → if ( expression condition expression ) then operators ELSE | if | 
| operators → operator operators | <dentifier> while input outputn outputs goto label if | 
| operators → end | end | 
| operators → break | break | 
| operators → continue | continue | 
| code → code operators | code | 
| program → defs code ; | vars | 
Множества выбора для альтернативных правил не имеют общих символов, значит грамматика является LL(1) грамматикой.
Полученный МП-автомат приведён в Приложении (Таблица 1, Таблица 2)
Разберем программу, чтобы проверить работоспособность полученного МП-распознавателя. (см. Приложение Таблица 3).
Для работоспособности программы необходимы технические средства – компьютер, содержащий:
· процессор не ниже i286;
· память не меньше 640Kb;
· устройство ввода – клавиатура.
На компьютере должна быть установлена операционная система Windows 9x/ME/NT/2000/XP или MS-DOS версии 5.0 или выше. Запуск приложения осуществляется с помощью исполняемого файла TRAN.exe.
Файлы:
- in_prost.txt – текст программы на языке PROST
- mystack.h – подключаемый файл для реализации стека
- syntax.cpp – подключаемый файл для реализации синтаксического анализа и перевода на язык С++.
Выходные данные –трансляция программы на язык С++, out_cpp.cpp.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.