Синтаксис языков программирования. Нисходящий синтаксический анализ, процедурная и автоматные реализации

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

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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

NSTU1

Лабораторная работа №5

по дисциплине «Системное программное обеспечение»

Синтаксис языков программирования. Нисходящий синтаксический анализ, процедурная и автоматные реализации

Выполнил: Белоусов М.Ю.                                              Преподаватель:

Группа: АМ-610                                                                 Малявко А.А.

Факультет: АВТ

Вариант: 3134212

Новосибирск 2009

Цель работы

Изучение основных идей и понятий нисходящих методов синтаксического анализа, выявление свойств формальных грамматик, необходимых для реализации нисходящего восстановления дерева грамматического разбора, приобретение навыков построения процедурной и различных автоматных реализаций нисходящего анализа, исследование поведения нисходящих синтаксических акцепторов.

Вариант задания

II.1  Идентификаторы и константы

Вариант:

3

Идентификаторы

<пБ><пЦ>

Константы

Целые

вещественные

символьные

6-ричные

L_0/L_1

II.2  Объявления примитивных типов (целое, вещественное, символьное, булево):

Вариант:

1

int[e[g[e[r]]]]

float

char

bool

II.3  Объявления объектов и создание/уничтожение экземпляров

Вариант:

3

Классов

class

Экземпляров

new / delete

II.4  Оператор присваивания:

Вариант:

4

  <И> <= <В> ;

II.5  Условный оператор:

В-т:

2

when <ЛВ> then <ОБ> [else <ОБ>]

II.6  Переключатель

В-т:

1

select <В> case (<К>) <ОБ> … end

II.7  Оператор цикла:

В-т:

2

repeat <ОБ> when <ЛВ>

Выполнение работы

В ходе выполнения предыдущей работы было рассмотрено определение принадлежности грамматики к классу LL(1), которое определяется по отсутствию пересечения множеств выбора правил с одинаковым нетерминалом в левой части правила.

ü  Построить конечный автомат со стековой памятью и несколькими состояниями (шаблон …SyntAsManySA…), разобраться в структуре управляющей таблицы автомата, уяснить способы формирования и использования всех полей;

Часть управляющей таблицы автомата с несколькими состояниями

Грамматика принадлежит классу LL(1)

 N сост. 

 flag_A 

 flag_S 

 flag_R 

 flag_E 

 Переход 

 Множество выбора 

 Действие 

0 SG 

73 

class

1 OneClass 

76 

class

2 NextClass 

 1

82 

class

3 NextClass 

84 

main

4 Main 

85 

main

5 Idents 

 1

91 

bool char float integer

6 Idents 

93 

id

7 Funcs 

94 

id

8 MainOp`s 

96 

id bool char delete float integer

9 Ident 

98 

bool char float integer

10 OneFunc 

101 

id

11 NextFunc 

 1

108 

id

12 NextFunc 

110 

}

13 MainOp 

 1

111 

bool char float integer

14 MainOp 

 1

112 

delete

15 MainOp 

115 

id

16 NMainOp 

 1

118 

id bool char delete float integer

17 NMainOp 

120 

}

18 Type 

 1

121 

integer

19 Type 

 1

122 

float

20 Type 

 1

123 

char

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

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