Перечисленные шаги работы любого компилятора:
(1) перевод программы на промежуточный язык, не зависящий от системы команд конкретного компьютера
(2) разбор исходной программы и перевод ее во внутреннее представление, удобное для дальнейшей работы
(3) генерация выходного кода на машинном языке
(4) оптимизация кода программы
выстраиваются в следующей последовательности…