CoffeeScript компілюється в JavaScript з дуже простої причини, JavaScript є фактичною мовою клієнтської сторони, і було б нерозумно очікувати, що постачальники браузерів вдруге підтримують CoffeeScript, коли все, що він пропонує, є альтернативним синтаксисом.
У дуже схожий спосіб головна суть мови високого рівня для перекладачів C - це негайне перенесення, оскільки є компілятор C майже для кожної платформи та велика кількість бібліотек C. Наприклад, Вала був розроблений для :
- бути компілятором для GObject ,
- створювати власні виконувані файли (через компілятор машини C),
- автоматизувати підрахунок довідок та
- як і раніше доступні програмістам GNOME C
GNOME - це традиційно орієнтований на C проект, а GObject спеціально написаний на мові C, Vala, мабуть, не знайде великої любові серед розробників GNOME, якби він компілювався до машинного коду, незалежно від його дружнішого характеру (та синтаксису). Не всім здавалося, що синтаксис подобається, що інша мова, Genie , була побудована для вдосконалення.
Для прикладу C ++ Facebook розробив HipHop , перекладача PHP на C ++. Вони намагалися вирішити дуже конкретну проблему - використання процесора, не потребуючи заміни всіх своїх PHP-кодів та перепідготовки своїх інженерів (або, що найгірше, замінити їх). Це набагато конкретніший приклад, оскільки проблеми масштабованості у Facebook є унікальними, і знову-таки доступ до проміжного коду C ++ може бути корисним, оскільки розширення PHP записуються на C та C ++.
Тож перекладач з мови високого рівня на іншу є гарною ідеєю здебільшого, коли потрібен доступ до проміжного коду. Для CoffeeScript код JavaScript необхідний через його широке використання браузера, а для Vala, Genie та HipHop - через існуючу базу коду. Очевидно, що доступ до проміжного коду означає, що ви можете додатково оптимізувати його за потреби.
Але загалом кажучи, не було б такою хорошою ідеєю будувати мову, що перекладається на C, або будь-яку іншу мову, якби ви не використовували отриманий код. Тут так багато мов, якщо ви не можете впоратися з C, просто виберіть іншу. Випадково перший компілятор C ++, написаний Bjarne Stroustrup, CFront, був перекладачем C з Classes to C, але це було головним чином тому, що як нова мова, неможливо завантажувати C з класів.