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

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

13 страниц (Word-файл)

Фрагмент текста работы

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

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

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

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

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

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

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

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

Вариант № 4141243

Выполнил:

студент группы АМ-610

Ретунский А.Л.

Проверил:

Малявко А.А.

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

Содержание

Цель работы.. 3

Задание. 4

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

Ход работы.. 6

Выводы.. 13

Цель работы

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

Задание

1.  Используя пакет ВебТрансЛаб:

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

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

- изучить структуру таблицы канонических и таблицы обобщенных конфигураций, связь этих таблиц с управляющей таблицей восходящего синтаксического акцептора;

- выявить разрешенные преобразователем конфликты типов «сдвиг–свертка» и «свертка–свертка», разрешенные и, возможно, не разрешенные преобразователем, уяснить на этих примерах основы LR-классификации грамматик;

2. Выполнить трассировку процессов восходящего синтаксического

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

3. Проанализировать и сравнить между собой все полученные тексты программ и результаты выполнения пункта 2. Оценить степень пригодности изученных вариантов реализации восходящих синтаксических акцепторов для выполнения курсовой работы.

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


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

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

Вариант:

4

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

<Б><Ц><пБЦ>

Константы

целые

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

символьные

7-ричные

L_T/ L_F

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

Вариант:

1

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

float

char

bool

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

Вариант:

4

Классов

define

Экземпляров

get / drop

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

Вариант:

1

<И> := <В>;

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

В-т:

2

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

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

В-т:

4

with <В> {?<К>:<ОБ> …}

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

В-т:

3

for<И>from<К>to<К> [step <К>] <ОБ>


Ход работы

1-2.  Используя пакет ВебТрансЛаб:

            - построил табличную реализацию (шаблон …SyntAsTxLR…), разобрался в структуре управляющей таблицы автомата, уяснил способы формирования и использования всех полей (таблица не приводится, из-за большого объема).

Смысл операций:

1.  Сдвиг ( Shift ) Sn:

1.1.1.  чтение следующего входного символа;

1.1.2.  занесение номера состояния n в стек состояний;

1.1.3.  переключение автомата в состояние n.

1.2.  Переход ( Go ) Gn:

1.2.1.  занесение номера состояния n в стек состояний;

1.2.2.  переключение автомата в состояние n.

2.  Свертка ( Reduce ) Rk,m:

2.1.  Со стека состояний сбрасывается k номеров состояний;

2.2.  Текущим устанавливается состояние, номер которого оказался на верхушке стека;

2.3.  В качестве текущей колонки УТ устанавливается колонка m.

3.  Операция Stop.

4.  Операция останова по ошибке.

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

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

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