Лексер, парсер и синтаксическое дерево
Коротко: Компилятор сначала читает исходный код как поток символов. Лексер разбивает его на токены, парсер по грамматике строит из них синтаксическое дерево (AST).
Подробнее: Лексер распознаёт слова, числа, операторы и скобки и игнорирует пробелы и комментарии. Парсер проверяет, соответствуют ли токены грамматике языка, и строит структуру, например 1 + 2 * 3 как дерево, в котором умножение находится глубже.
Подробности
- Токен: например
IDENT(x), `NUMBER(42…
См. также: промежуточное представление и оптимизация компилятора, системы типов и вывод типов