Компілятор зі змінними цілями
Компілятором зі змінними цілями (англ. retargetable compiler) називається такий компілятор, який був розроблений таким чином, щоб його було відносно просто модифікувати для генерації коду для різноманітних архітектур наборів команд процесору. Історія цього виду компілятору розпочинається у 1950-х роках, коли мова UNCOL була запропонована в якості універсальної проміжкової мови. Прикладом даного виду компілятору також є компілятор Pascal-P, який у минулому застосовувався доволі широко.
Вартість створення компілятору зі змінними цілями у порівнянні з іншими значно вища через те, що неможливо використовувати специфічні деталі процесору на всіх етапах компіляції. Його перевага полягає в тому, що загальна вартість декількох процесорів значно нижча, ніж сукупна вартість багатьох нецільових компіляторів.
Деякі компілятори даного виду, наприклад GCC, стали настільки широко розповсюджуватися та розвиватися, що тепер вони включають в себе підтримку багатьох оптимізацій і специфічних для машини деталей, і в результаті якість коду часто перевершує якість компіляторів іншого виду на багатьох процесорах.
Компілятор зі змінними цілями є різновидом крос-компілятору. Часто (але не завжди) він є пересувним, тобто сам компілятор може працювати на декількох різних процесорах.
Приклади:
Примітки
- Rainer Leupers, Peter Marwedel. "Retargetable Compiler Technology for Embedded Systems". 2001. (ISBN 0-7923-7578-5) p. 63.
Посилання
- LANCE compiler website (англ.)
- The LLVM compiler infrastructure website (англ.)
- The (open-source) ACK sourceforge page (англ.)
- Nils Weller's C compiler page (англ.)