Per compilare cosa a cosa? Un compilatore trasforma un codice sorgente da una lingua (lingua di origine) con un'altra (lingua di destinazione), che non indica nulla riguardo al basso livello della lingua di destinazione.
-
CoffeeScript viene compilato su JavaScript, il compilatore viene scritto in CoffeeScript.
-
Script # compila C # in JavaScript, il compilatore viene scritto in, se ricordo bene, C #.
- ecc.
La lingua scelta per scrivere un compilatore dipende dal contesto. Ad esempio, lavorando su un progetto che compila un linguaggio derivato da PHP a un codice PHP nativo, ho usato un mix di PHP e C # per scrivere il compilatore, perché ha più senso per me dato le mie capacità. Un'altra persona sceglierebbe Python, o Java e PHP o C ++ con un po 'di JavaScript, o qualsiasi cosa.
C o C ++ è una scelta popolare grazie al supporto degli strumenti relativi al compilatore (vedi la risposta di Telastyn), e perché queste due lingue ti permettono di diventare davvero nativo. Ma non c'è nulla di sbagliato nella scelta di un'altra lingua.
Nota che per essere più geek , puoi scegliere la lingua di partenza per scrivere il compilatore stesso. È quello che è successo per il compilatore CoffeeScript e molti altri compilatori. È anche popolare con gli IDE: uno dei primi Visual Studio è stato creato utilizzando lo stesso Visual Studio.