Компілятором зі змінними цілями (англ. retargetable compiler) — такий компілятор, який був розроблений таким чином, щоб його було відносно просто модифікувати для генерації коду для різноманітних архітектур наборів команд процесору. Історія цього виду компілятору розпочинається у 1950-х роках, коли мова UNCOL була запропонована універсальною проміжковою мовою. Прикладом даного виду компілятору також є компілятор Pascal-P, який у минулому застосовувався доволі широко.
Вартість створення компілятору зі змінними цілями у порівнянні з іншими значно вища через те, що неможливо використовувати специфічні деталі процесору на всіх етапах компіляції. Його перевага полягає в тому, що загальна вартість декількох процесорів значно нижча, ніж сукупна вартість багатьох нецільових компіляторів.
Деякі компілятори даного виду, наприклад GCC, стали настільки широко розповсюджуватися та розвиватися, що тепер вони включають в себе підтримку багатьох оптимізацій і специфічних для машини деталей, і в результаті якість коду часто перевершує якість компіляторів іншого виду на багатьох процесорах.
Компілятор зі змінними цілями є різновидом крос-компілятору. Часто (але не завжди) він є пересувним, тобто сам компілятор може працювати на декількох різних процесорах.
Приклади:
- GCC
- ACK
- lcc
- VBCC
- Портативний C компілятор
- SDCC
- LLVM
- Small-C компілятор
- MPG (машинно незалежний ефективний мікропрограмний генератор)[1]
Примітки
Посилання