Формальные языки, грамматики и основы построения трансляторов. Кревский И.Г - 70 стр.

UptoLike

70
Программа грамматического разбора, приведенная выше, "стремится" к
новой подцели G, как только она появляется, не проверяя даже, содержится
ли текущий символ входного файла во множестве начальных символов
соответствующего графа first(G). Это предполагает, что в синтаксическом
графе не должно существовать выбора между несколькими альтернативными
нетерминальными элементами. В частности, если какой-либо
нетерминальный символ может порождать пустую последовательность, то ни
одна из правых частей соответствующих ему порождающих правил не
должна начинаться с нетерминального символа.
При такой организации грамматического разбора программа обычно
считывает представленную в определенном формате грамматику языка,
заполняя при этом соответствующие структуры данных, и только после этого
читает текст на разбираемом
языке и выполняет его синтаксический анализ.
На основе этой программы грамматического разбора можно построить
более сложные таблично-управляемые программы грамматического разбора,
которые могут работать с более широкими классами грамматик. Небольшая
модификация позволяет также осуществлять и возвраты, но это будет
сопровождаться значительной потерей эффективности.
                                                                           70
     Программа грамматического разбора, приведенная выше, "стремится" к
новой подцели G, как только она появляется, не проверяя даже, содержится
ли текущий символ входного файла во множестве начальных символов
соответствующего графа first(G). Это предполагает, что в синтаксическом
графе не должно существовать выбора между несколькими альтернативными
нетерминальными     элементами.     В    частности,    если    какой-либо
нетерминальный символ может порождать пустую последовательность, то ни
одна из правых частей соответствующих ему порождающих правил не
должна начинаться с нетерминального символа.
     При такой организации грамматического разбора программа обычно
считывает представленную в определенном формате грамматику языка,
заполняя при этом соответствующие структуры данных, и только после этого
читает текст на разбираемом языке и выполняет его синтаксический анализ.
     На основе этой программы грамматического разбора можно построить
более сложные таблично-управляемые программы грамматического разбора,
которые могут работать с более широкими классами грамматик. Небольшая
модификация позволяет также осуществлять и возвраты, но это будет
сопровождаться значительной потерей эффективности.