Gcc C derleyicisi C'nin kendisinde mi yazılıyor? Yoksa Assembly'de mi yazılmış? Derleyici C'de yazılırsa, derleyici kodunu derlemek için kullanılan derleyici nedir?
Gcc C derleyicisi C'nin kendisinde mi yazılıyor? Yoksa Assembly'de mi yazılmış? Derleyici C'de yazılırsa, derleyici kodunu derlemek için kullanılan derleyici nedir?
Yanıtlar:
Gcc'nin özel geçmişi, GCC Wiki'de verilmiştir . Daha genel olan nokta, derleyicilerin genellikle kendilerini derleyebilecek kadar güçlü olana kadar başka bir derleyici ile orijinal olarak derlenmeleridir. Alternatif olarak, assembler'daki özelliklerinizin bir alt kümesini işleyebilecek ve oradan oluşturabilecek temel bir derleyici yazmak mümkündür. Ama yine, buna artık neredeyse hiç ihtiyaç duyulmuyor. Çeşitli dillerde pek çok derleyici mevcuttur. Stephen Johnson pcc (ilk C derleyicilerinden biri) yazarken bile, diğer birçok dilin yanı sıra B için de derleyiciler mevcuttu. gcc'nin bunu orijinal olarak oluşturmak için seçebileceği birkaç derleyicisi vardı ve RMS, Pastel derleyicisini en azından ilk geliştirme sırasında kullandığını söylüyor.
Unutmayın, C'de bir C derleyicisinin yazılmasına gerek yoktur. İsterseniz Perl ile de yazabilirsiniz. Belirli bir platform için bir derleyicinin orijinal olarak o platformda yazılmasına gerek yoktur (gömülü sistemler hemen hemen her zaman başka bir sistemde derlenir). Öyleyse kendinizi önyüklemenin birçok yolu var.
Bu soru, derleyicinin ilk önyükleme örneğiyle ilgili bazı ilginç inceliklere sahiptir. Çok zeki olsaydınız, inanılmaz, parlak ve ürkütücü bir şey yapmak için o önyükleme kayışını kullanabilirdiniz .
Başlangıçta bir montaj dilinde yazılmıştı, sonra köpek mamasının kendisini oluşturmaya başladı.
Bu tabii ki sadece çok kaba bir gösterge olsa da, ben bu hızlı buldum listeleme üzerine gcc-5.1.0-src/gcc/
dizin ilginç. Bu dizin GCC'nin ana kaynaklarını içerir (çalışma zamanı kitaplıkları hariç).
C ve C ++ dosyalarının hakim olduğu uzantıya göre gruplandırılmış en iyi dosya sayıları (100'den fazla) .
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
Lütfen günümüzde GCC
sadece GNU C Derleyicisini değil, GNU Derleyici Koleksiyonunu ifade ettiğini unutmayın .
6.3 gcc Alt Dizini
Gcc dizini, GCC'nin C kaynaklarının parçası olan birçok dosyayı, yapılandırma ve oluşturma sürecinin bir parçası olarak kullanılan diğer dosyaları ve dokümantasyon ve bir test takımı dahil olmak üzere alt dizinler içerir.
Referans: https://gcc.gnu.org/onlinedocs/gccint/gcc-Directory.html