- •«Мурманский государственный технический университет»
- •Методические указания к практическим занятиям студентов
- •Оглавление
- •Общие организационно-методические указания
- •Тематический план дисциплины
- •Перечень практических работ
- •Список рекомендуемой литературы
- •Содержание и методические указания к практическим занятиям по темам
- •Практическое занятие 1. Построение кс-грамматик.
- •Практическое занятие 2. Построение дерева синтаксического разбора, левого и правого выводов цепочек.
- •Практическое занятие 3. Эквивалентные преобразования кс-грамматик.
- •Практическое занятие 4. Построение конечных автоматов.
- •Практическое занятие 5. Построение минимального и приведенного конечного автомата.
- •Практическое занятие 6. Преобразование недетерминированного ка в детерминированный.
- •Практическое занятие 7. Построение автоматов с магазинной памятью.
- •Практическое занятие 8. Построение мп-трансляторов.
- •Практическое занятие 9. Построение s-грамматик и мп-автоматов для обработки языков, порождаемых этими грамматиками.
- •Практическое занятие 10. Построение q-грамматик и мп-автоматов для обработки языков, порождаемых этими грамматиками.
- •Практическое занятие 11. Построение ll(1)-грамматик и мп-автоматов для обработки языков, порождаемых этими грамматиками.
- •Практическое занятие 12. Определение атрибутов и работа с атрибутными транслирующими грамматиками.
- •Приложение 1.
Практическое занятие 8. Построение мп-трансляторов.
Цель: освоить навык построения МП-трансляторов и организации перевода символьных цепочек.
Задание 1.
Постройте не примитивные МП-трансляторы, которые будут выполнять следующие переводы:
{1n 0m} в {1n 22n}, где n>0, m>0;
{1n 0m 1m 0n} в {1m 0n+m}, где m>0, n>0.
Рекомендуемая литература: [2], [3], конспект лекций.
Этапы выполнения.
Для каждого множества:
Указать цепочку длины, большей 3, принадлежащую этому множеству.
Построить управляющую таблицу МП-автомата, определив:
множества входных, выходных и магазинных символов,
правила переходов и выходов,
формат вывода.
Показать последовательность конфигураций построенного автомата при распознавании и переводе указанной цепочки.
Тема. Нисходящие методы синтаксического анализа.
Алгоритм нисходящего разбора. S-грамматика. Q-грамматика.
Практическое занятие 9. Построение s-грамматик и мп-автоматов для обработки языков, порождаемых этими грамматиками.
Цель: освоить навык построение S-грамматик и МП-автоматов для обработки языков, порождаемых этими грамматиками.
Задание 1.
Для каждого из следующих языков построить S-грамматику и соответствующий нисходящий МП-распознаватель:
{1 n m 0 n | n ≥ 0}
{w m w r | w {0,1}*}, где верхний индекс r обозначает запись цепочки в обратном порядке, например, w=00101, тогда w r = 10100.
Рекомендуемая литература: [2], [3], конспект лекций.
Этапы выполнения.
Для каждого языка:
Указать цепочку длины, большей 3, принадлежащую этому языку.
Описать S-грамматику, порождающую данный язык.
Построить управляющую таблицу МП-автомата, определив
множества входных и магазинных символов,
правила переходов и выходов.
Показать последовательность конфигураций построенного автомата при распознавании указанной цепочки.
Практическое занятие 10. Построение q-грамматик и мп-автоматов для обработки языков, порождаемых этими грамматиками.
Цель: освоить навык построения Q-грамматик и МП-автоматов для обработки языков, порождаемых этими грамматиками.
Задание 1.
Определить, является ли следующая грамматика с начальным символом <S> Q-грамматикой:
<S> → a <A> <B>
<S> → b <A>
<S> →
<A> → a <A>b
<A> →
<B> → b <B>
<B> → c
Рекомендуемая литература: [2], [3], конспект лекций.
Этапы выполнения.
Найти множество СЛЕД для каждого нетерминала;
Найти множество ВЫБОР для каждого правила;
Определить, является ли эта грамматика Q-грамматикой.
Задание 2.
Для каждого из следующих языков построить Q-грамматику и соответствующий нисходящий МП-распознаватель:
{1 n 0 n | n ≥ 0}
{1 n 0 m | m ≥ n > 0}
Рекомендуемая литература: [2], [3], конспект лекций.
Этапы выполнения.
Для каждого языка:
Указать цепочку длины, большей 3, принадлежащую этому языку.
Описать Q -грамматику, порождающую данный язык.
Определить для каждого нетерминала, стоящего в левой части -правила, множество СЛЕД.
Построить управляющую таблицу МП-автомата, определив
множества входных и магазинных символов,
правила переходов и выходов.
Показать последовательность конфигураций построенного автомата при распознавании указанной цепочки.
Задание 3.
Для следующей грамматики (с начальным нетерминалом <S>) построить управляющую таблицу МП-автомата, который распознает сверху вниз порождаемый грамматикой язык:
<S> → a <A> b <B> b <S>
<S> →
<A> → a <B><C>
<A> → b <A>
<B> → a <B>
<B> →
<C> → c <c>
<C> →
Изобразить в виде последовательности конфигураций, как автомат, соответствующий этой грамматике, распознает цепочки: aaabab, aabbaabb.
Рекомендуемая литература: [2], [3], конспект лекций.
Этапы выполнения.
Определить для каждого нетерминала, стоящего в левой части -правила, множество СЛЕД.
Определить для каждого правила множество ВЫБОР.
Построить управляющую таблицу МП-автомата, определив
множества входных и магазинных символов,
правила переходов и выходов для Q-грамматики.
Показать последовательность конфигураций построенного автомата при распознавании цепочек: aaabab, aabbaabb.
Тема. Алгоритмы синтаксического анализа для LL(k)-грамматик.
Определение LL(k)-грамматики. Алгоритм разбора для LL(1)-грамматик. Метод рекурсивного спуска.
