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

Для построения МП – автомата нам необходимо знать множество ВЫБОР для каждого правила грамматики ( множество ВЫБОР для правила грамматики показывает, с какого символа может начинаться оставшаяся часть цепочки на входной ленте, в выводе которой участвует это правило). Приведем множества ВЫБОР для каждого правила грамматики.

Правило

Выбор

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).

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

Для работоспособности программы необходимы технические средства – компьютер, содержащий:

·  процессор не ниже i286;

·  память не меньше 640Kb;

·  устройство ввода – клавиатура.

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

На компьютере должна быть установлена операционная система Windows 9x/ME/NT/2000/XP или MS-DOS версии 5.0 или выше. Запуск приложения осуществляется с помощью исполняемого файла TRAN.exe.

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

Файлы:

- in_prost.txt – текст  программы на языке PROST

- mystack.h – подключаемый файл для реализации стека

- syntax.cpp – подключаемый файл для реализации синтаксического анализа и перевода на язык С++.

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

Выходные данные –трансляция программы на язык С++, out_cpp.cpp.