Apakah kompiler gcc C ditulis dalam C itu sendiri? Atau apakah itu tertulis dalam Assembly? Jika kompilator ditulis dalam C, lalu apa kompilator yang digunakan untuk mengkompilasi kode kompilator?
Apakah kompiler gcc C ditulis dalam C itu sendiri? Atau apakah itu tertulis dalam Assembly? Jika kompilator ditulis dalam C, lalu apa kompilator yang digunakan untuk mengkompilasi kode kompilator?
Jawaban:
Riwayat khusus untuk gcc diberikan di GCC Wiki . Poin yang lebih umum adalah bahwa kompiler pada umumnya pada awalnya dikompilasi dengan beberapa kompilator lain sampai mereka cukup kuat untuk mengkompilasi sendiri. Sebagai alternatif, dimungkinkan untuk menulis kompilator dasar yang dapat menangani subset fitur Anda di assembler, dan membangun dari sana. Tetapi sekali lagi, ini hampir tidak pernah dibutuhkan lagi. Ada banyak kompiler yang tersedia, dalam berbagai bahasa. Bahkan ketika Stephen Johnson sedang menulis pcc (salah satu kompiler C pertama), ada kompiler untuk B yang tersedia, bersama dengan banyak bahasa lainnya. gcc memiliki beberapa kompiler yang dapat dipilih untuk membangunnya secara asli, dan RMS mengatakan bahwa dia menggunakan kompiler Pastel setidaknya selama pengembangan awalnya.
Ingat, tidak ada persyaratan bahwa kompiler C harus ditulis dalam C. Anda dapat menulisnya di Perl jika Anda mau. Tidak ada persyaratan bahwa kompiler untuk platform tertentu harus aslinya ditulis pada platform itu (sistem tertanam hampir selalu dikompilasi pada sistem lain). Jadi ada banyak cara untuk membuat diri Anda bootstrap.
Pertanyaan ini memiliki beberapa seluk-beluk menarik terkait dengan contoh pertama bootstrap kompilator. Jika Anda sangat pintar, Anda dapat menggunakan bootstrap itu untuk melakukan sesuatu yang luar biasa, brilian, dan menakutkan .
Awalnya itu ditulis dalam beberapa bahasa assembly kemudian mulai menjadi makanan anjing itu sendiri.
Meskipun ini jelas hanya indikator yang sangat kasar, saya menemukan daftar singkat ini digcc-5.1.0-src/gcc/
direktori menarik. Direktori ini berisi sumber utama GCC itu sendiri (kecuali untuk pustaka waktu proses).
Berikut adalah jumlah file teratas (lebih dari 100) yang dikelompokkan berdasarkan ekstensi yang didominasi oleh file C dan 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
Harap dicatat bahwa saat ini GCC
mengacu pada Koleksi Kompilator GNU, bukan hanya Kompilator GNU C.
6.3 Subdirektori gcc
Direktori gcc berisi banyak file yang merupakan bagian dari C sumber GCC, file lain yang digunakan sebagai bagian dari konfigurasi dan proses build, dan subdirektori termasuk dokumentasi dan testsuite.
Referensi: https://gcc.gnu.org/onlinedocs/gccint/gcc-Directory.html