Процесс синтаксического анализа в построении компилятора

В настоящее время я читаю Dragonbook.

В главе 2 объясняется процесс синтаксического анализа. Я изо всех сил пытаюсь понять всю картину этого процесса. Читая книгу, я иногда путаюсь, в каком порядке происходят вещи в синтаксическом анализаторе.

Итак, из моего понимания:

Синтаксический анализатор содержит определение синтаксиса, которое определяет грамматику с использованием контекстно-свободной грамматики. Это в основном "первая часть" синтаксического анализатора? Так включает ли синтаксический анализатор определение синтаксиса?

После этого сгенерированные токены с помощью Lexical Analyzer поступают в Syntax Analyzer. Синтаксический анализатор затем проверяет через CFG, является ли ввод строки действительным, путем генерации дерева разбора.

И, насколько я понимаю, это дерево разбора в конечном итоге станет (абстрактным) синтаксическим деревом (которое содержит меньше деталей, чем дерево разбора). Это дерево войдет в семантический анализатор.

Может ли кто-нибудь подтвердить правильность и правильность моего "общего представления" о синтаксическом анализаторе?

1 ответ

Синтаксический анализатор содержит определение синтаксиса, которое определяет грамматику с использованием контекстно-свободной грамматики.

Нет. В парсерных таблицах он содержит таблицу, которая была сгенерирована из грамматики и которая управляет парсером. В рукописных синтаксических анализаторах структура кода сильно отражает грамматику. Ни в том, ни в другом случае было бы неправильно сказать, что синтаксический анализатор фактически "содержит" грамматику. Он как-то разбирает ввод по грамматике.

Это в основном "первая часть" синтаксического анализатора?

Нет, я не знаю, откуда у тебя "первая часть".

Так включает ли синтаксический анализатор определение синтаксиса?

Только как описано выше.

После этого

Нет, до этого

сгенерированные токены Lexical Analyzer поступают в Syntax Analyzer. Синтаксический анализатор затем проверяет, через CFG, допустим ли ввод строки

Правильный.

Другие вопросы по тегам