कोड इंडेंटेशन की उत्पत्ति


31

मुझे यह पता लगाने में दिलचस्पी है कि किसने कोड इंडेंटेशन शुरू किया, साथ ही कब और कहां इसे पेश किया गया।

यह कोड कॉम्प्रिहेंशन के लिए बहुत महत्वपूर्ण है, लेकिन यह सार्वभौमिक नहीं था। अधिकांश फोरट्रान और बेसिक कोड था (है?) Unindented, और वही कोबोल के लिए जाता है।

मुझे पूरा यकीन है कि मैंने पुराने लिस्प कोड को भी निरंतर, लाइन-लिपटे पाठ के रूप में लिखा देखा है। आपको अपने सिर के लिए कोष्ठक को गिनना था, बस इसे समझने के लिए, कभी भी इसे समझने की ज़रूरत नहीं है।

तो इतना बड़ा सुधार कहां से आया? मैंने कभी भी इसकी उत्पत्ति का कोई उल्लेख नहीं देखा।

इसके उपयोग के मूल उदाहरणों के अलावा, मैं इंडेंटेशन की मूल चर्चा भी कर रहा हूँ।


मुझे यकीन नहीं है कि इसकी उत्पत्ति का एक बिंदु है। इसके अलावा, कुछ शुरुआती कोड के लिए, रिक्त स्थान द्वारा उठाए गए स्थान खुद एक मुद्दा रहा होगा।
जैक ऐडली

1
दरअसल, फोरट्रान इंडेंट था । प्रकार में। Cयदि आप एक टिप्पणी कर रहे थे, तो इसे पात्र के लिए आरक्षित किया गया था ।
जोनाथन लैंड्रम

उन मामलों को छोड़कर, जहां इंडेंटेशन का उपयोग कोड के अर्थ अर्थ को बदलने के लिए किया जाता है (यानी, जहां इंडेंटेशन इसे लूप में डाल देगा या ifa, a la F # के हिस्से के रूप में ), इंडेंटेशन वास्तव में एक भाषा सुविधा नहीं है, यह एक IDR सुविधा है और संकलक में थोड़ा, प्रमुख स्थानों को अनदेखा करने के लिए)। @ जैक का अधिकार - मूल रूप से कार्यक्रमों को कार्ड पर अंकित किया गया था, और इंडेंटेशन शाब्दिक रूप से भंडारण में मौजूद नहीं था (और शायद, अब भी नहीं होना चाहिए)। Columnar RPG इंडेंटेशन का उपयोग नहीं करता है (और आपके पास केवल ~ 20 अक्षर प्रति पंक्ति फ्री फ्री) हैं, लेकिन IDE आपके लिए कोड को "सॉफ्ट" इंडेंट कर सकता है।
क्लॉकवर्क-म्यूजियम

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

@ क्लॉकवर्क-म्यूज़ियम इंडेंटेशन लगभग 20 साल पहले ("एक क्षेत्र", "बी क्षेत्र", आदि ) तक COBOL में एक भाषा सुविधा थी ।
रॉस पैटरसन

जवाबों:


21

इंडेंटेड कोड की उत्पत्ति शायद इसमें पाई जा सकती है ALGOL :

ALGOL कोड ब्लॉक और शुरू की beginऔर endउन्हें परिसीमन के लिए जोड़े और यह भी शाब्दिक गुंजाइश के साथ नेस्टेड समारोह परिभाषाओं को लागू पहली भाषा थी।


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

4
@DanielMahler - LISP 1 प्रोग्रामिंग मैनुअल ब्राउज़ करें और अपने लिए देखें। उदाहरण कोड में से कुछ इंडेंटेड है, लेकिन यह सबसे अच्छा है। अधिकांश उदाहरण कोड फ्लश बचे हैं।
डेविड हैमेन

@David Hammen कि यह सबसे खराब टाइपराइटर में से एक रहा होगा ... आपने सोचा होगा कि उन्होंने पूरी बात को ही लिखा है।
पैंजरक्रिस

6
मुझे नहीं लगता कि उद्धृत पाठ वास्तव में इंडेंटेशन के उपयोग / अस्तित्व का समर्थन करता है । यह सेक्शनिंग कोड के लिए समर्थन है। जावा कोष्ठक ( {}) को ब्लॉक करने के लिए उपयोग करता है, और आप नेस्टेड फ़ंक्शंस को परिभाषित कर सकते हैं, लेकिन यह मुझे इस बारे में कुछ नहीं बताता है कि क्या कोड वास्तव में इंडेंट है।
क्लॉकवर्क-म्यूजियम

12

1958 से पहले इंडेंटेड कोड आ गया होगा, क्योंकि यह मौजूद था - लेकिन सर्वव्यापी नहीं - LISP और ALGOL में। मैं जल्द से जल्द पता लगा सकता हूँ COMTRAN जो 1957 में पेश किया गया था, हालाँकि मैं केवल पा सकता हूँ 1960 का मैनुअल ही देख सकता हूँ (देखें पेज 90ish)। यह संकेत आधुनिक गर्भाधान से अलग है क्योंकि COMTRAN में ALGOL के बाद से अधिकांश भाषाओं की ब्लॉक संरचना का अभाव है, लेकिन मुझे लगता है कि इसे अभी भी गिनना चाहिए।

मुझे संदेह है कि यह वास्तव में पहला उदाहरण नहीं है, लेकिन मैं किसी भी पहले का पता नहीं लगा सकता।

अपडेट किया गया

यह मेरे लिए हुआ है कि एक सार्थक डिग्री इंडेंटेशन शायद प्रोग्रामिंग से पहले है। किसी कंप्यूटर प्रोग्राम को लिखने से पहले अनुदेश सूचियों में इंडेंटेशन का उपयोग किया गया था। दुर्भाग्य से मुझे इसका कोई अच्छा उदाहरण नहीं मिल रहा है।


-1

रॉस पैटरसन की टिप्पणी पर एक विस्तार - COBOL संकलक (या कम से कम IBM के संकलक, जो मैंने अपने पूर्व-खुले सिस्टम करियर में उपयोग किया था) ने इंडेंटेशन ("ए" और "बी" क्षेत्रों का उल्लेख किया था)। यदि इन क्षेत्रों में होने वाले किसी भी तत्व को ठीक से नहीं रखा गया है, तो आपका कोड संकलन विफल हो जाएगा। हालाँकि, इसके अलावा किसी विशिष्ट इंडेंटेशन की आवश्यकता नहीं थी - यह अक्सर किसी अन्य डेवलपर के कोड को संशोधित करते समय पकड़ में आ जाता था, जिसकी इंडेंटेशन स्टाइल आपसे अलग थी - शिष्टाचार आपको मौजूदा पैटर्न का पालन करने की सलाह देगा, जैसे कि साथियों के बीच संरक्षित शांति। इसके अलावा, एक ही स्रोत में विभिन्न शैलियों को देखने के लिए, लगभग Tetris की तरह दिखने के लिए बढ़ जाएगा।

COBOL और इसके इंडेंटेशन के बारे में सोचने के बाद से मुझे कई साल हो गए हैं - सवाल पूछने और अतीत की एक छोटी यात्रा प्रदान करने के लिए धन्यवाद!

मार्टी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.