 
											 
											 
											 
											 
											 
											 
					 
					 
					 
					 
					 
					МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
|  | 
Лабораторная работа №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 | 
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.