Основы разработки трансляторов в САПР. Коробова И.Л - 8 стр.

UptoLike

12
11 8
20
22 4
14
22 2
21
12 4
11
1.2. СИНТАКСИЧЕСКИЙ АНАЛИЗ
Синтаксический анализвторой этап компиляции. Во время этого этапа предложения программы
распознаются как языковые конструкции используемой грамматики. Для того чтобы выяснить, принад-
лежит ли предложение языку, необходимо построить алгоритм, который для любого предложения, до-
пустимого грамматикой, давал бы последовательность выводов этой цепочки к начальному символу
грамматики. Мы можем рассматривать этот процесс как построение дерева грамматического разбора
для транслируемых предложений. Различают две категории алгоритмов разбора: нисходящий (сверху
вниз) и восходящий (снизу вверх). Эти термины соответствуют способу построения синтаксических де-
ревьев. Рассмотрим для примера предложение 35 в грамматике целых чисел:
N В/NВ; В 0/1/2/3/4/5/6/7/8/9.
При нисходящем разборе дерево строится от корня (начального символа) вниз к концевым узлам
(рис. 2).
B
B
N
N
NB
N5
B5
35
N
5
3
Рис. 2
Восходящий разбор состоит в том, что, отправляясь от заданной цепочки, пытаются привести ее к
начальному символу (рис. 3).
B
B
N
35
B5
N5
NB
N
N
53
Рис. 3
Разработано множество методов синтаксического анализа. В лабораторных работах рассматривают-
ся два метода: нисходящий и восходящий.