- •Глава 1. Общие сведения о системах программирования.
- •Глава 2. Основные понятия и определения формальных языков.
- •Глава 3. Регулярные грамматики и языки.
- •Метод проверки регулярности заданного языка.
- •Методика построения конечного автомата:
- •Глава 4. Контекстно-свободные грамматики и языки.
- •Построение мп-автомата.
- •Построение расширенного мп-автомата.
- •Алгоритм построения матрицы предшествования:
Алгоритм построения матрицы предшествования:
Для каждого нетерминала найти правила грамматики языка, содержащие в левой части. Из правой части в множество включить самый левый, а в множество - самый правый символ.
Просмотреть каждое полученное множество. Если содержит нетерминалы
и т.д., то
дополнить элементами из
,
и т.д., отсутствующими в
.
Выполнить подобные операции для
множества
.Повторять пункт 2 алгоритма, пока множества и не перестанут меняться.
Просмотреть правые части правил грамматики и записать в матрицу предшествования отношение для символов, расположенных рядом, согласно формуле
.Просмотреть правые части правил грамматики и записать в матрицу предшествования отношение для символов, определенных по формуле
.Просмотреть правые части правил грамматики и записать в матрицу предшествования отношение
для символов, определенных по формуле
.Вычислить отношения предшествования для концевых маркеров
и
по формулам
;
.
Данный алгоритм можно использовать для проверки принадлежности применяемой грамматики к классу грамматик предшествования. Каждая пара символов словаря грамматики предшествования должна иметь не более одного отношения предшествования.
