Il compilatore gcc C è scritto in C? O è scritto in Assembly? Se il compilatore è scritto in C, allora qual è il compilatore usato per compilare il codice del compilatore?Il compilatore gcc C è scritto in C?
risposta
La cronologia specifica di gcc viene fornita allo GCC Wiki. Il punto più generale è che i compilatori sono in genere compilati originariamente con qualche altro compilatore finché non sono abbastanza potenti da essere compilati. In alternativa, è possibile scrivere un compilatore di base in grado di gestire un sottoinsieme delle funzionalità in assembler e creare da lì. Ma ancora, questo non è quasi mai più necessario. Ci sono molti compilatori disponibili, in una varietà di lingue. Anche quando Stephen Johnson stava scrivendo pcc (uno dei primi compilatori C), c'erano i compilatori per B disponibili, insieme a molte altre lingue. gcc aveva diversi compilatori tra cui scegliere per crearlo in origine, e RMS dice che stava usando il compilatore Pastel almeno durante il suo sviluppo iniziale.
Ricordate, non è richiesto che un compilatore C sia scritto in C. Potete scriverlo in Perl se lo si desidera. Non è richiesto che un compilatore per una data piattaforma sia originariamente scritto su quella piattaforma (i sistemi embedded sono quasi sempre compilati su qualche altro sistema). Quindi ci sono molti modi per farti bootstrap.
Questa domanda presenta alcune sottigliezze interessanti relative alla prima istanza di bootstrap del compilatore. Se tu fossi molto intelligente, potresti fare uso di questo bootstrap per fare something incredible, brilliant and terrifying.
+1 per il link Ritchie, è sempre una buona lettura. :) – unwind
Woah, il secondo articolo a cui ti sei collegato è follemente intelligente. – Ponkadoodle
Ora usano alcuni [C++ in gcc] (http://lwn.net/Articles/542457/). –
Originariamente era stato scritto in alcune lingue di assemblaggio, quindi ha iniziato a dare da mangiare al cane stesso.
+1 Ama il fraseggio. –
Non ho visto alcun riferimento a RMS usando l'assemblatore per il bootstrap originale. Qual è la tua fonte per questo? Aveva molti altri compilatori con cui fare il bootstrap, quindi sembra molto lavoro. –
Anche se il termine era bootstrap. –
Mentre questo è ovviamente solo un indicatore molto approssimativo, ho trovato questo rapido elenco nella directory gcc-5.1.0-src/gcc/
interessante. Questa directory contiene le principali fonti di GCC stesso (ad eccezione delle librerie di runtime).
Ecco i migliori file-conta (oltre 100) raggruppati per estensione dominato da file C e C++.
112 .opt
118 .def
140 .cc
185 .x
250 .exp
353 .md
366 .mm
414 .f
430 .f03
521 .m
625 .a
1082 .go
1371 .h
1602 .ads
1655 .adb
1828 .ada
3860 .f90
11231 .C // C++
23811 .c // C
prega di notare che al giorno d'oggi GCC
si riferisce alla GNU Compiler Collection, non solo la GNU C Compiler.
6,3 sottodirectory gcc
La directory GCC contiene molti file che fanno parte delle fonti C di GCC, altri file utilizzati come parte della configurazione e costruire processo, e sottodirectory compresa la documentazione e una suite di test.
Riferimento:https://gcc.gnu.org/onlinedocs/gccint/gcc-Directory.html
- 1. Il compilatore C# era scritto in C++?
- 2. Come è stato scritto il primo compilatore C?
- 3. Come può un compilatore C essere scritto in C?
- 4. Quando il compilatore C# è scritto in C#, sarà in grado di modificarlo?
- 5. come cambiare il compilatore gcc in C++ 11 su ubuntu
- 6. Come eseguire il programma scritto per il vecchio compilatore?
- 7. Blog software scritto in C o C++
- 8. Server FTP scritto in C#
- 9. Il compilatore C# è open source?
- 10. controlla se il compilatore C funziona ... no
- 11. Compilatore C standard attuale?
- 12. Compilatore C/C++ che genera codice offuscato
- 13. Installazione di gcc su linux senza compilatore c
- 14. Visual C++ è potente come gcc?
- 15. Nessun compilatore C su EC2?
- 16. C per avviare il compilatore?
- 17. Specificare il compilatore C++ in waf
- 18. Configurare il percorso del compilatore C in RStudio
- 19. Nessun compilatore C accettabile trovato in $ PATH durante l'installazione del compilatore C
- 20. Qualsiasi IDE PHP scritto in C?
- 21. Perché configure dice che nessun compilatore C è stato trovato quando GCC è installato?
- 22. Il compilatore C# è abbastanza intelligente da ottimizzare questo codice?
- 23. Perché firefox è scritto in C++ e nell'interfaccia utente javascript?
- 24. Un client BitTorrent completamente scritto in C#?
- 25. C++ 0x regex in GCC
- 26. c'è un equivalente Memcached scritto in C#?
- 27. Il più bel software open source scritto in C++
- 28. GCC supporta C++ AMP
- 29. La differenza tra il compilatore Mono C# e il compilatore MS C# rispetto all'ambito
- 30. GCC C++ precisione Pow
sì lo è (per lo più). Naturalmente, per compilare C è necessario un compilatore C, quindi, come con la maggior parte dei compilatori, esiste una serie di fasi "boot-strap". L'idea generale è trattata in [Installazione di GCC: Building] (http://gcc.gnu.org/install/build.html) e [Installazione di GCC - LFS] (http://www.linuxfromscratch.org/lfs/ view/sviluppo/chapter05/gcc-pass2.html). –
@mu: questo è il prossimo passo. – euphoria83
Diverse workstation di marca negli anni '80 e nei primi anni '90 avevano i propri ambienti unix con c compilatore, strumenti, ecc ... che erano tutti leggermente diversi l'uno dall'altro.Con la fonte GCC si può fare una prima compilazione di gcc su una di queste piattaforme, e quindi compilare gcc con se stesso alcune volte per controllare più o meno per un punto fisso. – Paul