CoffeeScript mengkompilasi ke JavaScript untuk alasan yang sangat sederhana, JavaScript adalah bahasa sisi klien de facto dan tidak masuk akal untuk mengharapkan vendor peramban untuk secara asli mendukung CoffeeScript, ketika semua yang ditawarkan adalah sintaksis alternatif.
Dengan cara yang sangat mirip, poin utama dari bahasa tingkat tinggi ke penerjemah C adalah portabilitas langsung, karena ada kompiler C untuk hampir setiap platform dan banyak perpustakaan C. Vala , misalnya, dirancang untuk :
- menjadi kompiler untuk GObject ,
- membangun executable asli (melalui compiler C mesin),
- mengotomatiskan penghitungan referensi, dan
- masih dapat diakses oleh programmer GNOME C
GNOME adalah proyek berorientasi C tradisional dan GObject secara khusus ditulis dalam bahasa C, Vala mungkin tidak akan menemukan banyak cinta di antara para pengembang GNOME jika dikompilasi dengan kode mesin, terlepas dari sifatnya yang lebih ramah (dan sintaksisnya). Tidak semua orang tampaknya menyukai sintaksis, sampai-sampai bahasa lain, Genie , dibangun untuk memperbaikinya.
Sebagai contoh C ++, Facebook mengembangkan HipHop , penerjemah PHP ke C ++. Mereka berusaha memecahkan masalah yang sangat spesifik, penggunaan CPU, tanpa harus mengganti semua kode PHP mereka dan melatih kembali insinyur mereka (atau yang terburuk, ganti mereka). Ini adalah contoh yang jauh lebih spesifik, karena masalah skalabilitas Facebook, yah, unik, dan sekali lagi memiliki akses ke kode C ++ menengah dapat bermanfaat, karena ekstensi PHP ditulis dalam C dan C ++.
Jadi penerjemah dari bahasa tingkat tinggi ke yang lain adalah ide yang bagus sebagian besar ketika Anda mengakses kode perantara diperlukan. Untuk CoffeeScript, kode JavaScript diperlukan karena adopsi browsernya yang luas, dan untuk Vala, Genie, dan HipHop karena basis kode yang ada. Jelas memiliki akses ke kode perantara berarti Anda dapat lebih mengoptimalkannya jika perlu.
Tetapi secara umum, itu bukan ide yang baik untuk membangun bahasa yang diterjemahkan ke C, atau bahasa lain, jika Anda tidak menggunakan kode yang dihasilkan. Ada begitu banyak bahasa di luar sana, jika Anda tidak bisa mengatasi C, pilih saja yang lain. Secara kebetulan kompiler C ++ pertama yang ditulis oleh Bjarne Stroustrup, CFront, adalah penerjemah C dengan Classes ke C, tetapi itu terutama karena sebagai bahasa baru, tidak mungkin untuk mem - bootstrap C dengan Classes.