Скачиваний:
24
Добавлен:
02.05.2014
Размер:
880.64 Кб
Скачать

3.3. Результаты

Программа проводит синтаксический анализ последовательного набора лексем, поступающего от лексического анализатора, на основе правил остовной грамматики. Результатом ее работы является дерево синтаксического разбора. В случае синтаксической ошибки на экране появляется сообщение.

На вход подается следующий текстовый файл:

prog

while ( df > 0 ) do begin {

ddd }

if ( vxb > 0 ) and ( a = b ) then begin

c := nb / 0110 + 101 ;

d := 10110 ;

end

else c := 1011 endif

end

end.prog

if (p=0110b) then begin y := h; end

endif; {komment }

for k:=0011b to u do k:=k+00101b;

end.

Результат работы синтаксического анализатора представлены на рис. 9.

Рис. 9. Результат построения дерева разбора

На вход подается следующий текстовый файл:

prog

while ( df > 0 ) do begin

if ( vxb > 0 ) and ( a = b ) then begin

c := nb / 0110 + 101 ;

d := 10110 ; )

end

else c := 1011 endif

end

end.prog

if (p=0110b) then begin y := h; end

endif; {komment }

for k:=0011b to u do k:=k+00101b;

begin

end.

Результат работы синтаксического анализатора при подаче на вход анализатора ошибочных конструкций представлен на рис. 10.

Рис. 10. Результат построения дерева разбора при подаче на вход анализатора ошибочных конструкций

Заключение

В результате выполнения курсовой работы создан простейший компилятор для заданного входного языка.

Лексический анализатор, входящий в состав компилятора, игнорирует в тексте входной программы пробелы, знаки табуляции и переводы строки, а также комментарии, выделенные фигурными скобками. В случае обнаружения неверной лексемы (например числа, содержащего букву), незакрытого комментария или незавершенной лексемы (такой лексемой может быть только символ «:») лексический анализатор выдает сообщение об ошибке и прекращает дальнейший анализ. При наличии нескольких неверных лексем анализатор обнаруживает только первую из них. Результатом выполнения лексического анализатора является структура данных, которая представляет собой таблицу лексем.

Синтаксический анализатор, входящий в состав компилятора, построен на основе грамматики операторного предшествования. Синтаксический анализатор позволяет проверять соответствие структуры исходного текста заданной грамматике входного языка. При наличии одной ошибки пользователю выдается сообщение с указанием местоположения ошибки в исходном тексте. Анализ типа обнаруженной ошибки не производится. При наличии нескольких ошибок в исходном тексте обнаруживается только первая из них, после чего дальнейший анализ не выполняется. Результатом работы синтаксического анализатора является структура данных, которая представляет собой синтаксическое дерево. В процессе выполнения курсовой работы было разработано приложение, реализующее отдельные фазы компиляции заданного языка.

Список использованной литературы

1. Системное программное обеспечение: Учебник для вузов/ А.Ю. Молчанов- СПб.: Питер, 2003.- 396 с.

2. Системное программное обеспечение. Лабораторный практикум/ А.Ю. Молчанов- СПб.: Питер, 2005.- 284 с.

Соседние файлы в папке ПЗ