#parsing #recursion #abstract-syntax-tree #recursive-descent #parse-recdescent
#синтаксический анализ #рекурсия #абстрактное синтаксическое дерево #рекурсивный спуск #синтаксический анализ-recdescent
Вопрос:
Я тут подумал, и возник вопрос. Действительно ли компилятору этого типа нужно полное синтаксическое дерево в памяти?
Ответ №1:
Синтаксическому анализатору не нужно ничего хранить. Он может просто сообщить вам, является ли ввод допустимым или нет. Но обычно вы анализируете входные данные для какой-то цели, которая определяет, какую информацию (кроме простой достоверности) вам нужно извлечь.
Например, компилятору необходимо преобразовать входную программу в некоторый исполняемый формат. Можно преобразовать непосредственно в машинные инструкции (или в какое-то промежуточное представление), особенно если вы не очень заботитесь об оптимизации сгенерированного кода.
Не зная цели синтаксического анализа входных данных, невозможно сказать что-либо более конкретное.