
1.2. Графический метаязык
Использование аналитического метаязыка приводит к необхо-
димости определения не только понятий самого алгоритмического
языка, но и использования большого числа вспомогательных поня-
тий. Это затрудняет поиск правила для конкретной конструкции
языка, а также требует дополнительного учета всех вспомогатель-
ных правил для данного понятия. Одним из путей устранения ука-
занного недостатка состоит в переходе к графическим метаязыкам
для описания синтаксиса, например к метаязыку синтаксических
диаграмм.
На этом метаязыке описание синтаксиса также, как и при
аналитическом задании, представляет собой совокупность опреде-
лений понятий алгоритмического языка. Однако каждому понятию
соответствует не правило, а синтаксическая диаграмма, которая
графически изображает структуру всех конструкций, являющихся
значениями определяемого понятия.
Отдельным элементом диаграммы может быть основной символ,
заключенный в круг или овал, или понятие языка, заключенное в
прямоугольник. Причем использование названия понятия означает
ссылку на соответствующую диаграмму, описывающую данное поня-
- 8 -
тие. Из каждого элемента выходит одна или несколько стрелок,
указывающих на те элементы, которые могут непосредственно сле-
довать за данным элементом. Аналогом левой части правила явля-
ется стрелка в левой верхней части диаграммы, помеченная назва-
нием определяемого понятия и не выходящая из какого-либо
элемента. Такая стрелка указывает вход в диаграмму. Конец син-
таксического определения обозначается стрелкой, не ведущей к
какому-либо элементу и указывающей на выход из диаграммы.
Существуют определенные правила чтения синтаксических ди-
аграмм, которые заключаются в следующем. Для построения пра-
вильных грамматических конструкций нужно передвигаться по пу-
тям, указанном стрелками, от одного элемента диаграммы к друго-
му до встречи выхода. Там, где предусмотрено более одного нап-
равления, можно выбрать любое. При появлении ссылки к другой
синтаксической диаграмме следует войти в эту новую диаграмму,
пройти по ней, выйти из нее и возратиться на старое место в
первоначальной диаграмме.
Таким образом, допустимыми значениями определяемого поня-
тия, т.е. синтаксически правильными конструкциями, являются все
последовательности из элементов диаграммы, встречаемые на пу-
тях, ведущих в направлении стрелок от входа диаграммы к ее вы-
ходу.
1.3. Задачи порождения и распознавания конструкций языка
Набор синтаксических правил называют грамматикой языка.
Она может создаваться с целью порождения или распознавания пра-
вильных конструкций языка.
В рассмотренных выше примерах правила грамматики использо-
вались для порождения конкретных значений соответствующих поня-
тий языка. Необходимость порождения правильных кострукций
возникает на этапе записи алгоритма на данном языке. Граммати-
ку, используемую для этой цели, называют порождающей. При ана-
лизе программы компилятором решается обратная задача, заключаю-
щаяся в определении синтаксической правильности текста
программы, для чего используется распознающая грамматика. Таким
образом, грамматика может быть порождающей или распознающей.
.
- 9 -
Контрольные вопросы
1. Перечислите составляющие алгоритмического языка и дайте
их определения.
2. Что представляет собой описание синтаксиса алгоритмичес-
кого языка и в каких формах оно может быть выполнено?
3. Перечислите способы определения понятий алгоритмическо-
го языка.
4. Играет ли роль порядок альтернатив в правой части пра-
вила?
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
- 10 -
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.