Uploaded by Gregory Zhelyabin

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

advertisement
Лабораторная работа №6.
Транзитивное замыкание матриц
отношений.
Теория автоматов и формальных языков
Преподаватель дисциплины:
Кушнир
Надежда Владимировна
Выполнил:
Студент группы
16-КБ-ПИ1
Биденко Сергей
Александрович
Цель работы: освоение алгоритма транзитивного замыкания матриц
отношений LL(1)-грамматик.
Порядок выполнения работы:
• прочитать описание работы;
• получить задание у преподавателя;
• провести анализа правил LL(1)-грамматики применительно к индивидуальному
заданию и построить матрицу заданного вида отношений;
• разработать программу, реализующую алгоритм транзитивного замыкания
матрицы отношений.
Контрольные вопросы.
1. Как определяются аннулирующие нетерминалы и правила?
2. Пояснить операцию рефлексивно-транзитивного замыкания.
3. Какие нетерминалы являются "мертвыми" и какие "живыми"?
4. Пояснить порядок определения используемых отношений.
Основное окно.
Листинг.
Ответы на вопросы.
1. Определение анулирующегося нетерминала - если, применив к
нетерминалу <A> точно одно правило и, возможно, заменив в нем
некоторые аннулирующие нетерминалы на ε, можно получить
цепочку, начинающуюся, например с <B>.
2. Для каждого единичного элемента aij исходной матрицы в строку i
дописать единичные элементы из строки j; п.1 повторять сверху
вниз и слева направо для всех элементов матрицы.
3. Нетерминалы, которые не порождают ни одной терминальной
цепочки, называются бесплодными или мертвыми.
Download