56
10. ПОСТРОЕНИЕ СИНТАКСИЧЕСКОГО ГРАФА
Для построения синтаксического анализатора можно использовать два
различных метода. Один из них – это написать универсальную программу
грамматического разбора, пригодную для всех возможных грамматик
заданного класса. В этом случае конкретные грамматики задаются этой
программе в виде данных некоторой структуры, которая управляет ее
работой. Поэтому такая программа называется таблично-управляемой
.
Другой метод – это разработка программы грамматического разбора
специально для заданного конкретного языка; при этом его синтаксис по
определенным правилам отображается в последовательность операторов, т.е.
в программу. Такую реализацию разбора будем называть программно-
управляемой.
Каждый из этих методов имеет свои преимущества и недостатки. При
построении транслятора для конкретного языка программирования вряд ли
потребуется высокая гибкость и параметризация, свойственные
универсальной программе. Программа грамматического разбора,
предназначенная специально для данного языка, обычно оказывается более
эффективной и с ней легче работать, легче встроить выполнение параллельно
с синтаксическим разбором
различных дополнительных действий, например,
проверки соответствия типов данных и пр., что может оказаться особенно
важно при реализации специализированных языков САПР. Использование
универсальной программы позволяет разработать синтаксический анализатор
максимально быстро, с меньшими требованиями к квалификации
разработчика (в идеале, он должен только представить в требуемой форме и
ввести грамматику реализуемого языка). В
любом случае полезно
представлять заданный синтаксис в виде так называемого синтаксического
графа (синтаксической диаграммы, графа распознавания). Такой граф
отражает управление ходом работы при грамматическом анализе
предложения.