कैसे सरणी तत्वों के लिए वर्ग कोष्ठक का उपयोग करने का रिवाज विकसित हुआ?


11

कई प्रोग्रामिंग भाषा एक सरणी, अनुक्रम, या वेक्टर a[i]के i'वें तत्व' को संदर्भित करने के लिए वाक्यविन्यास का उपयोग करती है a- विशेष रूप से, सी और पास्कल (1960 के दशक के अंत से और 1970 के दशक की शुरुआत से) ऐसा करते हैं। दूसरी ओर, कुछ पुरानी भाषाएँ, जैसे कि फोरट्रान (1950 के दशक से), इस सम्मेलन का उपयोग नहीं करती हैं। इसके अलावा, मैंने गणित का थोड़ा अध्ययन किया, और गणितज्ञ अंतराल के लिए वर्ग कोष्ठक का उपयोग करते हैं, और अच्छी तरह से सरणी और मैट्रिक्स सबस्क्रिप्टिंग (या नियमित कोष्ठक यदि गैर-नकारात्मक पूर्णांक से एक फ़ंक्शन के रूप में सोचा जाता है) के लिए सदस्यता लेते हैं।

तो, मेरा प्रश्न यह है: सरणी उप-सदस्यता के लिए इस वर्ग कोष्ठक ने कहां और कैसे / किस संदर्भ में, और किसके द्वारा विकसित किया है?

नोट: C में घुंघराले कोष्ठक के उपयोग के बारे में इस प्रश्न के सभी विवरणों पर नहीं ।



@gnat: यह कैसे है कि एक ठग है?
ईनपोकलम

1
संबंधित लेकिन एक ठग नहीं।
विस्फ़ोटक

1
वहाँ पर दूसरा शीर्ष उत्तर वर्ग कोष्ठक के इतिहास को कवर करता है
gnat

1
@ पाओल टाइपो आपका मतलब है xkcd.com/163 (xkdc डोमेन चीन में पंजीकृत है)
1201ProgramAlarm

जवाबों:


10

C और पास्कल की मुख्य अग्रदूत भाषा अल्गोल थी । उस समय का सबसे प्रारंभिक संस्करण अल्गोल 58 था, जो सरणी घोषणाओं और संदर्भों के लिए वर्ग कोष्ठक का उपयोग करता था ।

इसके बजाय कि अल्गोल ने चौकोर कोष्ठकों का उपयोग किया, उदाहरण के लिए, कोष्ठक तीन गुना था:

  1. क्योंकि वे कर सकते थे। प्रारंभिक आईबीएम कीबोर्ड, जिसे फोरट्रान के साथ डिज़ाइन किया गया था, केवल कोष्ठक थे। यह तब तक बदल चुका था जब अल्गोल को निर्दिष्ट किया जा रहा था।
  2. फोरट्रान के साथ अनुभव से पता चला था कि प्रोग्रामर अक्सर कोष्ठक के अधिक उपयोग से भ्रमित होते थे इसलिए इसे एक महत्वपूर्ण वाक्य परिवर्तन के रूप में देखा गया था।
  3. अल्गोल के पीछे आशय यह था कि इसका उपयोग एल्गोरिदम का वर्णन करने के लिए किया जाएगा ताकि यह मानक गणितीय अंकन अर्थ के करीब हो।

नोट, सी के विपरीत, जो अधिकतर मेमोरी को इंडेक्स करने के लिए सरणियों का उपयोग करता है, अल्गोल ने निचले और ऊपरी दोनों सूचकांक सीमा को निर्दिष्ट करने की अनुमति दी। फिर, यह अपने अधिक गणितीय इरादे के साथ था। इतना तो, वास्तव में, कि अल्गोल कई वर्षों तक छद्मकोड के लिए वास्तविक भाषा थी।


लेकिन क्या वर्ग ब्रैकेट वास्तव में मानक गणितीय संकेतन के करीब हैं? जब मैंने मैच का अध्ययन किया, तो [x]इसका उपयोग समकक्ष कक्षाओं के लिए किया गया था, न कि वैक्टर या मेट्रिसेस के भीतर संकेत पदों के लिए।
einpoklum

2
@einpoklum संदर्भों में सदस्यता या सुपरस्क्रिप्ट की तुलना में घोषणा में श्रेणियों के लिए अधिक है। लेकिन, जैसा कि वे वास्तव में समय की तकनीक के साथ सदस्यता या सुपरस्क्रिप्ट नहीं कर सकते थे, वे दृश्य स्थिरता के लिए चले गए। एपीएल ने कहा कि वे इस तरह से गणितीय धारणा का लक्ष्य नहीं बना रहे थे। वे एल्गोरिदम को स्पष्ट रूप से व्यक्त करने के लिए लक्ष्य कर रहे थे जो एक काफी संकीर्ण शाखा है।
एलेक्स

ओह, भी, चौकोर कोष्ठक अंतराल के लिए उपयोग किए गए थे। मुझे लगता है कि यह एक अर्थ में एक सरणी में पर्वतमाला की तरह है। इसके अलावा - आपको यकीन है कि अल्गोल जहां यह रिवाज शुरू हुआ है?
ईनपोकलम

@einpoklum मुझे यकीन है कि सी और पास्कल में वर्ग कोष्ठक का उपयोग अल्गोल से आया था। वंश काफी अच्छी तरह से प्रलेखित है। अगर अल्गोल 58 के लिए एक पूर्ववर्ती था कि डिजाइनरों ने सिंटैक्स लिया, तो मैं इससे अनजान हूं। यह समय दिए जाने की संभावना नहीं है लेकिन असंभव नहीं है। Algol 58 को Algol 60 से पहले लागू नहीं किया गया था, इसलिए यह संभव है कि एक अनियोजित भाषा एक प्रेरणा थी।
एलेक्स

5

यह एक दिलचस्प रीड है: https://en.m.wikipedia.org/wiki/ ब्रैकेट

निम्नलिखित मेरे अपने अवलोकन हैं।

सी डिजाइनरों ने पात्रों और निर्माणों के अर्थ को अपनाने में बहुत सावधानी बरती क्योंकि वे नियमित रूप से लिखित भाषा में सैकड़ों वर्षों तक उपयोग किए गए थे। और ऐसा करने पर, उन्हें ASCII वर्णों के काफी सीमित उपसमूह के साथ काम करना पड़ा। पश्चिमी भाषा में, लिखित पाठ में अधिक समूहीकरण वर्णों का उपयोग किया जाता है, लेकिन ये सिर्फ ASCII में नहीं बने।

नियमित भाषा में, मुख्य संदेश को बाधित किए बिना कोष्ठक का अर्थ पक्ष जानकारी प्रदान कर रहा है। किसी प्रक्रिया को कॉल करते समय यह समझ में आता है: मुख्य संदेश प्रदर्शन की जाने वाली क्रिया है और उप-जानकारी तर्क हैं।

घुंघराले ब्रेसिज़ का उपयोग समूहन के लिए किया जाता है। "शब्दों का यह संग्रह एक साथ है, बाकी हिस्सों से अलग होना है"। तो यह कोड, यौगिक कथनों के ब्लॉक के लिए उनका उपयोग करने के लिए समझ में आता है।

स्क्वायर ब्रैकेट का उपयोग टेक्स्ट में सम्मिलन के लिए किया जाता है जो मूल का हिस्सा नहीं थे, मूल पाठ को स्पष्ट करने और संदर्भ प्रदान करने के लिए। या दीर्घवृत्त के साथ चूक का संकेत करने के लिए: [...]। "वह [रानी] खुश नहीं थी"। कंप्यूटर प्रोग्रामिंग में यह सरणी अनुक्रमण के लिए ब्रैकेट का उपयोग करने के लिए थोड़ा समझ में आता है क्योंकि यह एक प्रकार का संदर्भ प्रदान किया जा रहा है। "ऐरे? क्या सरणी? अच्छा, विशेष रूप से वह तत्व।" लेकिन भले ही मूल अर्थ कंप्यूटर की भाषा में उपयोग को पूरी तरह से कवर नहीं करता है, लेकिन ASCII में बहुत सारे अन्य विकल्प नहीं हैं।

तो मैं कहूंगा कि यह पूर्व कला का एक संयोजन है और उस समय क्या उपलब्ध था जो सरणी अनुक्रमण के लिए वर्ग कोष्ठक के उपयोग के लिए नेतृत्व करता है।

[एलेक्स की टिप्पणी के कारण संपादित करें]

इस स्रोत के अनुसार , एएससीआईआई को 1963 में पेश किया गया था और 1968 में इसे सरकारी मंजूरी मिली थी। इस विकी के अनुसार, सी भाषा का विकास 1969 तक शुरू नहीं हुआ था । इसलिए ऐसा लगता है कि श्री रिची ने अपने पात्रों को चुनते समय ASCII नामक इस नए व्यापक रूप से समर्थित मानक पर नजर रखी।

कृपया अन्य उत्तर (ओं) को अल्गोल के लिए एक केस बनाते हुए देखें, "कई भाषाओं की माँ", एक मजबूत प्रभाव है।


मुझे लगता है कि मुझे वही मिल रहा है जो आप कह रहे हैं लेकिन ASCII को सी डिजाइन किए जाने के लगभग एक दशक बाद तक कोड नहीं किया गया था। बहुत अधिक प्रत्यक्ष प्रभाव पीडीपी -11 का कीबोर्ड था जिसे सी के लिए डिज़ाइन किया गया था। यह वर्णों का उपयोग करने के लिए समझ में आता है कि यह समर्थन करता है। सरणियों के लिए वर्ग कोष्ठक का उपयोग सीधे बीसीपीएल और बी के माध्यम से अल्गोल से प्रेरित था। इसी तरह पास्कल के लिए। Wirth ने Algol-W को पास्कल डिजाइन करने से पहले कार्यान्वित किया।
एलेक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.