Chiunque abbia una vita informatica avanzata si sarà trovato, prima o poi, a lavorare con un compilatore.
Ma chi compila il compilatore? È una domanda sul genere “viene prima l’uovo o la gallina”, in un certo senso, ma possiamo dare una risposta.
Nel caso di un generico compilatore, esistono principalmente due strade.
La prima è quella più semplice: Si scrive il compilatore in un linguaggio terzo e così resta. La seconda, invece, è più autarchica: Si crea un compilatore base nel linguaggio terzo, possibilmente uno di più basso livello possibile, e col compilatore base si compila il compilatore ufficiale e completo.
Ma il primo compilatore?
E chi ha compilato il primo compilatore? Beh, semplicemente venne scritto a mano, in linguaggio macchina. Il primo compilatore venne teorizzato da Corrado Böhm, un matematico italiano, nel 1951 per la sua tesi di dottorato, ma venne implementato pochi anni dopo da Grace Hopper, conosciuta anche come Nonna COBOL, creatrice dell’omonimo linguaggio ancora vivo nonostante l’età.
Tali primi compilatori erano ovviamente scritti nei linguaggi macchina dell’epoca, ma permettevano un importante possibilità di riuso dei programmi, all’epoca incompatibili da calcolatore a calcolatore.
E il primo compilatore C?
Quando nacque C i compilatori esistevano da tempo! Il primo compilatore C venne scritto in un’evoluzione del B, ossia il linguaggio predecessore del C. Il compilatore del B era scritto in B e compilato da un compilatore scritto in BCPL, altro linguaggio dell’epoca.
Pingback: Altre ricerche più strane – Computer Blog