Как компилятор идентифицирует аппаратное обеспечение своего хост-компьютера? Какой компонент?
Мой учитель сказал мне, что промежуточный код является общим для всех систем, но компонент компилятора затем делает его другим в зависимости от системы / среды, в которой выполняется код. Может кто-нибудь, пожалуйста, объясните это.
1 ответ
Решение
Обычно компилятор делится на две части: интерфейс, который выполняет синтаксический анализ и генерирует промежуточный код. Затем бэкэнд, который берет промежуточный код и генерирует сборку или машинный код.
Внешний интерфейс может быть общим, но внутренний построен для определенной цели. Таким образом, компилятору не нужно "идентифицировать" хост, он должен знать только цель.
Обратите внимание, что хост и цель могут быть разными системами, которые используются для кросс-компиляции.