- •«Мурманский государственный технический университет»
- •Методические указания к практическим занятиям студентов
- •Оглавление
- •Общие организационно-методические указания
- •Тематический план дисциплины
- •Перечень практических работ
- •Список рекомендуемой литературы
- •Содержание и методические указания к практическим занятиям по темам
- •Практическое занятие 1. Построение кс-грамматик.
- •Практическое занятие 2. Построение дерева синтаксического разбора, левого и правого выводов цепочек.
- •Практическое занятие 3. Эквивалентные преобразования кс-грамматик.
- •Практическое занятие 4. Построение конечных автоматов.
- •Практическое занятие 5. Построение минимального и приведенного конечного автомата.
- •Практическое занятие 6. Преобразование недетерминированного ка в детерминированный.
- •Практическое занятие 7. Построение автоматов с магазинной памятью.
- •Практическое занятие 8. Построение мп-трансляторов.
- •Практическое занятие 9. Построение s-грамматик и мп-автоматов для обработки языков, порождаемых этими грамматиками.
- •Практическое занятие 10. Построение q-грамматик и мп-автоматов для обработки языков, порождаемых этими грамматиками.
- •Практическое занятие 11. Построение ll(1)-грамматик и мп-автоматов для обработки языков, порождаемых этими грамматиками.
- •Практическое занятие 12. Определение атрибутов и работа с атрибутными транслирующими грамматиками.
- •Приложение 1.
Практическое занятие 11. Построение ll(1)-грамматик и мп-автоматов для обработки языков, порождаемых этими грамматиками.
Цель: освоить навык построения LL(1)-грамматик и МП-автоматов для обработки языков, порождаемых этими грамматиками.
Задание 1.
Для следующей грамматики с начальным символом <S> определить является ли она LL(1)-грамматикой:
<S> → a <A> <B> b <C> <D> <S> →
<A> → <A> <S> d <A> →
<B> → <S> <A> c <B> → e <C>
<B> → <C> → <S> f
<C> → <C> g <C> →
<D> → a <B> <D> <D> →
Рекомендуемая литература: [2], [3], конспект лекций.
Этапы выполнения.
Найти множество СЛЕД для каждого нетерминала.
Найти множество ВЫБОР для каждого правила.
Сделать вывод, является ли эта грамматика LL(1)-грамматикой.
Тема. Формальные методы описания перевода.
СУ-схемы перевода. Транслирующие грамматики. Понятие атрибута. Синтезированные и унаследованные атрибуты. Атрибутные транслирующие грамматики и перевод.
Практическое занятие 12. Определение атрибутов и работа с атрибутными транслирующими грамматиками.
Цель: освоить навык построения атрибутных транслирующих грамматик.
Задание 1.
Постройте транслирующую грамматику, допускающую в качестве входа произвольную цепочку, состоящую из нулей и единиц, и порождающую в качестве выхода:
обращение входной цепочки,
пустую цепочку,
саму входную цепочку,
цепочку 0n 1m , где n – число нулей, а m – число единиц во входной цепочке.
Рекомендуемая литература: [3], конспект лекций.
Этапы выполнения.
Для каждого варианта:
Определить множество нетерминальных символов и символов действий.
Определить начальный нетерминал.
Записать правила транслирующей грамматики.
Продемонстрировать требуемый перевод построением соответствующей последовательности актов.
Задание 2.
Постройте транслирующую грамматику для следующих переводов:
{1n 0m} в {1n 22n}, где n>0, m>0;
{1n 0m 1m 0n} в {1m 0n+m}, где m>0, n>0.
Рекомендуемая литература: [3], конспект лекций.
Этапы выполнения.
Для каждого перевода:
Определить множество входных и выходных символов.
Определить множество нетерминальных символов и символов действий.
Определить начальный нетерминал.
Записать правила транслирующей грамматики.
Продемонстрировать требуемый перевод построением соответствующей последовательности актов.
Задание 3.
Для следующей атрибутной транслирующей грамматики:
<S>i,s НАСЛЕДУЕМЫЙ i СИНТЕЗИРУЕМЫЙ s
Начальное значение i=3.
Атрибуты символов действия – НАСЛЕДУЕМЫЕ.
<S>i,s → ax {fy } {gz }
y x+ i
z y+ x
s z
<S>i,s → bx {fy } {gz }
y z
z s
s y
<S>i,s → cx {fy } {gz }
y z + 1
z s + 1
s y +1
<S>i,s → dx <S>j,t {fy }
y i+ t
j i
s t
<S>i,s → ex {hy } <S>j,t
y x
j t
s t
построить атрибутное дерево вывода и последовательность актов (если они существуют) для каждой из следующих входных цепочек:
а).a6 б). a1 a2 в). d3 a2
г). b4 д). c9 е). d1 d1 d3 d4 a5
ж). e2 d1 d2 d3 d4 a5
Рекомендуемая литература: [3], конспект лекций.
Этапы выполнения.
Записать по заданной атрибутной транслирующей грамматике соответствующую ей транслирующую грамматику.
Для каждой входной цепочки:
Построить дерево вывода в соответствии с полученной транслирующей грамматикой.
Подписать к каждой вершине дерева соответствующие атрибуты.
Присвоить синтезируемым атрибутам листьев начальное значение.
Передать снизу в верх значения синтезируемых атрибутов всем внутренним вершинам дерева, которые ими обладают, в соответствии с правилами для вычисления этих атрибутов, указанными в исходной грамматике.
Передать с верху вниз значения синтезируемых атрибутов всем вершинам дерева, которые ими обладают, в соответствии с правилами для вычисления этих атрибутов, указанными в исходной грамматике.
Определить последовательность актов.
