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