1. Roman Bovsunivskiy
  2. hkp3i

Wiki

Clone wiki

hkp3i / Home

Задание

Перший етап:

  • Реалізувати головну форму проекту та метод, що завантажує граматику в оперативну пам’ять.
  • Реалізувати алгоритм пошуку непродуктивних нетерміналів. Надрукувати список непродуктивних нетерміналів.
  • Розробити та реалізувати алгоритм пошуку різних виводів виду А=>*Aw мінімальної довжини, тобто мінімальних ліворекурсивних виводів. Надрукувати послідовність правил, які дають такий результат. (на автомат).

Другий етап:

  • Реалізувати алгоритм пошуку множини  для нетерміналів граматики. Надрукувати множини  для кожного не термінала.

Третій етап:

  • Реалізувати синтаксичний аналізатор для мови С методом рекурсивного спуску.



В той лабе, которую показывал Волохов, есть такие пункты:

Прочитать грамматику с файла
Вывести в терминал продукции
Вывести в терминал содержимое хеш-таблицы
Тестирование на правильность КС-грамматики
Поиск непродуктивных нетерминалов
Поиск недостижимых нетерминалов
Построение списка нетерминалов
Вывод в терминал списка нетерминалов и терминалов
Поиск ЭПСИЛОН-нетерминалов
Вывести в терминал список ЭПСИЛОН-нетерминалов
Поиск леворекурсивных нетерминалов
Поиск праворекурсивных нетерминалов
Построение разных леворекурсивных выводов
Построение разных праворекурсивных выводов
Поиск множества FIRSTk для нетерминалов
Вывести в терминал множество FIRSTk для нетерминалов
Вывести в терминал множество FIRSTk для терминалов
Поиск множества FOLLORk для нетерминалов
Вывести в темирнал множество FOLLOWk для нетерминалов
Вывести в темирнал множество FOLLOWk для терминалов
Поиск множества FIRSTk(w)*FOLLORk(A) для правил
Вывести в терминал множества FIRSTk(w)*FOLLORk(A)
Вывести в терминал множества FIRSTk(w)*FOLLORk(A) для правил
Проверка LL(k)-сильного условия (k=1, LL(1)-условия)
Посмтроение таблицы управления для LL(1)-анализатора
Синтаксический анализатор языка

Updated