Questa domanda può derivare da un equivoco di compilatori da parte mia, ma qui va ...Come può un compilatore C essere scritto in C?
Si può trovare la seguente dichiarazione nella prefazione alla prima edizione del K & R (pagina xi):
il sistema operativo, il compilatore C, ed essenzialmente tutti i programmi di applicazioni UNIX (compreso tutto il software usato per preparare questo libro) sono scritti in C.
(il corsivo è mio)
Ecco cosa non capisco: non è necessario compilare il compilatore C prima che possa compilare un codice C? E se il compilatore C è scritto in C, la compilazione non richiederebbe un compilatore C già esistente ?!
L'unico modo per uscire da questo enigma di regressione infinita (o problema di pollo e uovo) è che il compilatore C scritto in C a cui si riferisce K & R è stato effettivamente compilato con un compilatore C già esistente che è stato scritto in una lingua diversa da C. Il compilatore C scritto in C ha sostituito il secondo.
O sono completamente fuori servizio?
Bene, si inizia con uno in assemblaggio o qualsiasi altra cosa, e una volta che lo si possiede, è possibile usarlo per crearne uno in C e così via in seguito. – chris