क्या Gcc C संकलक C में ही लिखा गया है? या यह विधानसभा में लिखा है? यदि कंपाइलर C में लिखा जाता है, तो कंपाइलर कोड संकलित करने के लिए किस कंपाइलर का उपयोग करता है?
क्या Gcc C संकलक C में ही लिखा गया है? या यह विधानसभा में लिखा है? यदि कंपाइलर C में लिखा जाता है, तो कंपाइलर कोड संकलित करने के लिए किस कंपाइलर का उपयोग करता है?
जवाबों:
जीसीसी में विशिष्ट इतिहास जीसीसी विकी पर दिया गया है । अधिक सामान्य बिंदु यह है कि संकलक आमतौर पर मूल रूप से कुछ अन्य संकलक के साथ संकलित किए जाते हैं जब तक कि वे खुद को संकलित करने के लिए पर्याप्त शक्तिशाली न हों। वैकल्पिक रूप से, एक मूल संकलक लिखना संभव है जो कोडांतरक में आपकी सुविधाओं के सबसेट को संभाल सकता है, और वहां से निर्माण कर सकता है। लेकिन फिर, यह अब लगभग कभी भी ज़रूरत नहीं है। विभिन्न भाषाओं में बहुत सारे संकलन उपलब्ध हैं। यहां तक कि जब स्टीफन जॉनसन पीसीसी (पहले सी कंपाइलरों में से एक) लिख रहे थे, तो कई अन्य भाषाओं के साथ-साथ बी के लिए भी कंपाइलर उपलब्ध थे। gcc के पास मूल रूप से इसे बनाने के लिए चुनने के लिए कई संकलक थे, और RMS का कहना है कि वह अपने प्रारंभिक विकास के दौरान कम से कम पेस्टल संकलक का उपयोग कर रहा था।
याद रखें, कोई भी आवश्यकता नहीं है कि सी में एक सी संकलक लिखा जाए। यदि आप चाहते हैं तो आप इसे पर्ल में लिख सकते हैं। कोई आवश्यकता नहीं है कि किसी दिए गए प्लेटफ़ॉर्म के लिए एक कंपाइलर मूल रूप से उस प्लेटफ़ॉर्म पर लिखा जाए (एम्बेडेड सिस्टम लगभग हमेशा किसी अन्य सिस्टम पर संकलित किया जाता है)। तो अपने आप को बूटस्ट्रैप करने के कई तरीके हैं।
इस सवाल में संकलक के बूटस्ट्रैपिंग के पहले उदाहरण से संबंधित कुछ दिलचस्प सूक्ष्मताएं हैं। यदि आप बहुत चालाक थे, तो आप कुछ अविश्वसनीय, शानदार और भयानक करने के लिए उस बूटस्ट्रैप का उपयोग कर सकते हैं ।
मूल रूप से इसे कुछ असेंबली भाषा में लिखा गया था, फिर इसे कुत्ते के भोजन के लिए शुरू किया गया।
हालांकि यह स्पष्ट रूप से सिर्फ एक बहुत ही किसी न किसी सूचक है, मैं इस त्वरित पाया लिस्टिंग पर gcc-5.1.0-src/gcc/
निर्देशिका दिलचस्प। इस निर्देशिका में स्वयं जीसीसी के मुख्य स्रोत हैं (रनटाइम लाइब्रेरी को छोड़कर)।
यहाँ C और C ++ फ़ाइलों के वर्चस्व वाले विस्तार के आधार पर शीर्ष फ़ाइल-काउंट्स (100 से अधिक) हैं ।
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
कृपया ध्यान दें कि आजकल GCC
ग्नू कंपाइलर संग्रह को संदर्भित करता है, न कि केवल ग्नू सी कंपाइलर को।
6.3 gcc Subdirectory
जीसीसी निर्देशिका में कई फाइलें शामिल हैं जो जीसीसी के सी स्रोतों का हिस्सा हैं, कॉन्फ़िगरेशन और निर्माण प्रक्रिया के हिस्से के रूप में उपयोग की जाने वाली अन्य फाइलें और प्रलेखन और एक परीक्षण सहित उपनिर्देशिकाएं।
संदर्भ: https://gcc.gnu.org/oniltocs/gccint/gcc-Directory.html