ev писал(а):- как именно работает синтаксический анализатор (какая именно рекурсия используется)
Язык Паскаль, в моем понимании, является контекстно-независимым, что дает отсутствие рекурсии и быструю однопроходную компиляцию. Как формально называется то, что получилось в FPC в результате добавленной поддержки макро-определений режима MacPas и дженериков, сказать затрудняюсь.
ev писал(а):- какая используется таблица символов/имен
Она не одна. В каждом модуле есть глобальная таблица символов (определенных в interface) и локальная (определенных в implementation). Кроме того, каждый класс имеет свою таблицу имен. Впрочем, могу ошибаться, в тонкости не слишком вникал.
ev писал(а):- какой используется промежуточный код
Исходный код преобразуется в дерево "элементарных операций", которое, вместе с таблицами символов, сериализуется в .ppu файл. Формат этого файла (по сути, набор сохраняемых свойств) менялся уже примерно 90 раз. Кроме того, ассемблерный код модуля сохраняется в объектный файл COFF-формата (.o)
Что касается оптимизаций, то большая их часть (peephole, regvars, DFA, CSE) делается на уровне готового ассемблерного кода, что дает разницу в качестве кода на разных процессорах. На уровне промежуточного кода делается только вычисление константных выражений, хотя есть и экспериментальные реализации DFA и CSE.