Для чего нужны таблица символов и AST во время компиляции кода? - PullRequest
0 голосов
/ 25 октября 2018

Для чего нужны таблица символов и AST во время компиляции кода?

Я пытаюсь получить общее представление о процессе компиляции кода на высоком уровне.

Я понимаю основныеследующие шаги:

Лексический анализ
Синтаксический анализ
Семантический анализ
Генерация кода
Оптимизация кода
Связывание

Насколько я понимаю, начинается таблица символовполучить на этапе лексического анализа, так как код лексирован.Это будет включать тип токена и фактические идентифицированные токены.На последующих этапах в таблицу символов добавляется дополнительная информация, такая как область действия и тип данных.Если я правильно понимаю, во время синтаксического анализа создается AST, представляющий структуру кода и снабженный той же информацией, что и в таблице символов.

Я не совсем понимаю, почему и таблица символов, и ASTнеобходимо.Используется ли один для создания другого?Они оба подаются на шаг генерации кода?Зависит ли этот язык (скомпилировано и интерпретировано)?

Где происходит удаление пробелов?Мне сказали, что это во время лексического анализа, но в этом случае my var = 5 будет преобразован в myvar=5, что теперь синтаксически правильно.

Спасибо за ваш вклад.

...