डिफ़ॉल्ट रूप से GCC AT & T सिंटैक्स का उपयोग क्यों करता है?


9

मुझे लगता है कि शीर्षक यह सब कहते हैं :)

क्या कोई विशेष व्यावहारिक कारण है (मुझे लगता है कि यह ज्यादातर ऐतिहासिक है, लेकिन मैं इसे अपने दम पर खोजने में असमर्थ हूं) जीसीसी एटीएंडटी / जीएएस सिंटैक्स का उपयोग क्यों करता है?

नोट: मुझे पता है कि यह सिर्फ डिफ़ॉल्ट है और आप इसे स्विच कर सकते हैं

नोट 2: मैं व्यक्तिगत रूप से "इंटेल सिंटैक्स" को अधिक पठनीय पाता हूं, इसीलिए यह मुझे सर्पाइज़ करता है।


3
जब तक आप उस व्यक्ति को शिकार नहीं करते हैं जो उस कार्यक्षमता को जोड़ता है और 'क्यों' पूछा है, तो इसका उत्तर अनजाना है।

1
@MichaelT मैं उस संभावना से अवगत हूं, लेकिन फिर भी मुझे लगता है कि यह काफी दिलचस्प विषय है ... शायद किसी ने कुछ उद्धरण देखा है।
व्य्कटोर

इस तरह @Vyktor प्रश्न कभी-कभी अचूक होते हैं , लेकिन मुझे अभी भी कंप्यूटर विज्ञान इतिहास दिलचस्प लगता है, भले ही " ऑन-टॉपिक " के ग्रे एरिया में हो

@Snowman ने सहमति व्यक्त की, लेकिन अगर यह मेरे साथ हुआ कि GlenH7 ने क्या किया (googling के बजाय गर्त इतिहास पर जाएं why gcc uses at&t) मैं यह सवाल नहीं पूछूंगा।
व्य्कटोर

जवाबों:


13

जीसीसी डिफ़ॉल्ट रूप से एटी एंड टी सिंटैक्स का उपयोग करता है क्योंकि यह मूल रूप से एक सिस्टम पर लिखा गया था जो या तो एटीएंडटी सिस्टम वी (अब यूनिक्स के रूप में जाना जाता है) या सिंटैक्स का उपयोग करता है जो सिस्टम वी के साथ निकटता से जुड़ा हुआ है।

जीसीसी पर विकिपीडिया से

जीएनयू ऑपरेटिंग सिस्टम को बूटस्ट्रैप करने के प्रयास में, रिचर्ड स्टैलमैन ने एम्स्टर्डम कंपाइलर किट (जिसे फ्री यूनिवर्सिटी कंपाइलर किट के रूप में भी जाना जाता है) के लेखक एंड्रयू एस तेनबाउम से पूछा कि क्या वह जीएनयू के लिए उस सॉफ्टवेयर का उपयोग कर सकता है। जब तेनबाम ने उनसे कहा कि जब फ्री यूनिवर्सिटी फ्री थी, तो कंपाइलर नहीं था, स्टैलमैन ने खुद लिखने का फैसला किया। स्टेलमैन की शुरुआती योजना लेन टॉवर और अन्य लोगों की कुछ मदद से पास्टेल से सी तक लॉरेंस लिवरमोर प्रयोगशाला के एक मौजूदा संकलक को फिर से लिखना था। स्टैलमैन ने लिवरमोर कंपाइलर के लिए एक नया सी फ्रंट एंड लिखा, लेकिन फिर महसूस किया कि इसमें स्टैक स्पेस की मेगाबाइट की आवश्यकता है, केवल 64K के साथ 68000 यूनिक्स सिस्टम पर एक असंभावना है, और निष्कर्ष निकाला है कि उन्हें स्क्रैच से एक नया बॉयलर लिखना होगा। जीसीसी में पेस्टल कंपाइलर कोड में से कोई भी समाप्त नहीं हुआ, हालांकि स्टेलमैन ने सी फ्रंट एंड का उपयोग किया था जो उसने लिखा था।

निम्नलिखित भाग पर ध्यान दें:

स्टैलमैन ने लिवरमोर कंपाइलर के लिए एक नया सी फ्रंट एंड लिखा, लेकिन तब एहसास हुआ कि इसमें स्टैक स्पेस की मेगाबाइट की आवश्यकता है, केवल 64K के साथ 68000 यूनिक्स सिस्टम पर एक असंभवता ...

यह देखते हुए कि GCC was first released March 22, 1987* और वह System V Release 3 was released in 1986** , यह अत्यधिक संभावना है कि GCC को SVR2 या SVR3 पर लिखा गया था।


विकिपीडिया उद्धरण यह स्पष्ट करता है कि स्टैलमैन लॉरेंस लिवरमोर लैब्स के उपकरण पर काम कर रहा था, जो यूनिक्स आधारित था और इसलिए सिस्टम वी। इसलिए हम वहां रुक सकते थे और बस यह कह सकते थे "कि उसे क्या काम करना था।" लेकिन उस समय उपलब्ध MS-DOS / PC-DOS सिस्टम को देखना भी दिलचस्प है । इस समयरेखा के अनुसार , पीसी-डॉस 1 के संभावित उम्मीदवार का संस्करण 3.2 होगा।

पीसी (पर्सनल कंप्यूटर) उस समय शैक्षणिक या अनुसंधान सेटिंग्स में व्यापक रूप से उपयोग नहीं किए गए थे, क्योंकि उनकी नेटवर्किंग सुविधाएं उतनी अच्छी नहीं थीं जितनी यूनिक्स आधारित प्रणालियां प्रदान कर सकती हैं। सर्वर / टर्मिनल प्रकार के वातावरण के लिए एक ऐतिहासिक प्राथमिकता भी थी। सर्वर / टर्मिनल सिस्टम पीसी के अस्तित्व से पहले उपलब्ध थे और आम तौर पर एक पीसी क्या किफायती प्रदान कर सकते हैं की तुलना में बहुत अधिक प्रसंस्करण शक्ति और अन्य संसाधन प्रदान करते थे।

इसलिए जब स्टेलमैन एक पीसी पर जीसीसी विकसित कर सकता था , तो संभवत: वह नहीं चाहता था कि यूनिक्स सिस्टम पर उसका प्राथमिक काम हो।

और जैसा कि एक टिप्पणी में कहा गया है , यूनिक्स सिस्टम और पीसी को शक्ति देने वाले सीपीयू के बीच एक अंतर्निहित वास्तु अंतर था ।

उन सभी टुकड़ों को एक साथ रखें और यह बहुत स्पष्ट है कि स्टालमैन ने जीसीसी विकसित करते समय इंटेल पर एटी एंड टी सिंटैक्स को क्यों चुना।

1 ध्यान दें कि यह कहना आसान है कि MS-DOS को 3.31 संस्करण से पहले PC-DOS कहा जाता था कहा जा रहा है, DOS विकास के इतिहास में बहुत कुछ है जो इस प्रश्न के दायरे से बाहर है।


मुझे समझ में नहीं आया कि मैंने यह कैसे याद किया " MS-DOS और Windows दुनिया में Intel सिंटैक्स प्रमुख है, और Unix दुनिया में AT & T सिंटैक्स प्रमुख है, क्योंकि Unix AT & T Bell Labs में बनाया गया था। " इतना सीधा आगे।
व्य्कटर

हालांकि, यह उत्तर स्पर्श नहीं करता है, इसलिए जीएएस बहुत सारे अन्य सीपीयू आर्किटेक्चर के लिए "देशी" सिंटैक्स का उपयोग करता है। x86 CPUs मुझे कुछ के बीच लगता है जिसके लिए यह वास्तव में एटी एंड टी सिंटैक्स का उपयोग करता है।
डोडा २२

"... यूनिक्स सिस्टम और पीसी को शक्ति देने वाले सीपीयू के बीच एक अंतर्निहित वास्तु अंतर था।" है ना? सीपीयू समान थे। निर्देश सेट वास्तुकला समान था। एटी एंड टी सिंटैक्स हमेशा एक ही अंतर्निहित वास्तुकला के लिए एक वैकल्पिक संकेतन रहा है। सही?
मैक्समू

1
@Maxpm - CPU समान नहीं थे, और यह वह जगह है जहाँ बड़े बनाम छोटे एंडियन आर्किटेक्चर मायने रखते हैं।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.