फर्नांडो जे। कॉर्बेटो की "विवश भाषाएँ"


13

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

[यू] डिजाइन या संश्लेषण के लिए विवश भाषाओं में से एक शक्तिशाली पद्धति है। एक प्रोग्रामर या डिजाइनर को अप्रासंगिक विचारों को व्यक्त करने की अनुमति नहीं देने से, संभावित त्रुटियों का क्षेत्र अधिक सीमित हो जाता है।

"विवश भाषा" से उनका क्या अभिप्राय है?

एक पल के लिए मैंने बाधा प्रोग्रामिंग पर विचार किया । हालांकि, बाधा प्रोग्रामिंग प्रोग्राम के समाधान स्थान को प्रतिबंधित करने के बारे में है। यह एक उपकरण है जो एक प्रोग्रामर को सशक्त बनाता है। कॉर्बेटो ने जिस फीचर का जिक्र किया है, वह वास्तव में प्रोग्रामर को प्रतिबंधित करता है, या कम से कम उसे ट्रेजर कोड लिखने के लिए प्रेरित करता है।

मेरा दूसरा विचार यह है कि वह रूढ़िवादी प्रोग्रामिंग भाषाओं की बात कर रहा है । कॉर्बेटो को 1960 और 1970 के दशक में किए गए काम के लिए उनका ट्यूरिंग पुरस्कार मिला। यह मेरी समझ है कि उसने बहुत सारे पंच कार्ड निपटाए। मैंने कभी एक पंच कार्ड नहीं देखा है, इसलिए मुझे निश्चित रूप से पता नहीं है कि किसी को कैसे प्रोग्राम करना है, लेकिन मुझे लगता है कि पंच कार्ड प्रोग्रामिंग बेहद उदार है। मुझे टाइपिंग, स्टेटिक एनालिसिस की धारणाओं पर संदेह है, और इसके बाद बस मौजूद नहीं था। तो, क्या कॉर्बेट शायद उन भाषाओं के विचार का जिक्र कर रहे हैं जो डेवलपर को गूंगी गलतियों से रोकती हैं? यह मामला प्रतीत नहीं होता है, या तो। सेफ्टी चेकिंग और डेटा मॉडलिंग का किसी से कोई लेना-देना नहीं है, जो कि जब वह "अनुमति नहीं दे रहा ... अप्रासंगिक विचारों" का उल्लेख करता है, तो वह बात करने लगता है।


@jweyrich मुझे Programmers.SE पर भेजने के लिए धन्यवाद। हालाँकि, जब मैं स्टैकऑवरफ़्लो पर प्रोग्रामिंग-भाषाओं के टैग पर जाता हूं, तो मुझे ऐसे प्रश्नों का खजाना मिलता है, जो मेरे जैसे सामान्य हैं, जैसे "क्या कोई सांख्यिकीय रूप से कमजोर टाइप की भाषा है?" जहाँ लेखक सामान्य पठन सामग्री का भी संदर्भ लेता है
Xander Dunn

5
@thoughtadvances आपके द्वारा उल्लिखित प्रश्नों पर तिथियों की जांच करें, मैं शर्त लगा सकता हूं कि उनमें से अधिकांश काफी पुराने हैं। एसओ 4 साल का है, चीजें बदल जाती हैं, और सामान्य तौर पर हम समय बीतने के साथ-साथ सख्त हो जाते हैं। प्रोग्रामर पर आपका प्रश्न ठीक है (मैं वहां एक मॉड हूँ), लेकिन यह आसान होता अगर आप इसे मॉडरेशन ध्यान देने के लिए इसे ध्वजांकित करते और इसे रीपोस्टिंग के बजाय माइग्रेट करने के लिए कहते। माइग्रेशन ने आपको रीपोस्टिंग की परेशानी से बचाया होगा और यह प्रोग्रामर के उत्तर को प्रश्न के साथ लाया होगा। अब इसकी चिंता मत करो, मैं इसका ध्यान रखूँगा।
यानिस

3
एक उदाहरण के रूप में, यदि (ध्यान दें: यदि ) किसी कारण से किसी विशेष आवेदन के लिए मॉलॉक का विचार "अप्रासंगिक" है, तो सी (मॉलॉक है) पर जावा ("कोई मॉलोक होने से विवश) चुनना" संभावित त्रुटियों के डोमेन को सीमित कर देगा। "यह
मल्लोक के

@YannisRizos इसे स्थानांतरित करने के लिए बहुत बहुत धन्यवाद। मुझे नहीं पता था कि यह फ़ंक्शन मौजूद है। शायद StackOverflow पर अधिक अनुभवी उपयोगकर्ता केवल इसे बंद करने के बजाय इस पथ का सुझाव दे सकते थे।
Xander Dunn

3
" छिद्रित कार्ड पर कोडिंग " एक प्रोग्राम टाइप करने का सिर्फ एक और तरीका था। १ ९ ६० के दशक के अंत और १ ९ were० के दशक की शुरुआत में, हमारे पास ऐसी भाषाएँ थीं जो आज की तरह ही परिष्कृत थीं। प्रोग्रामिंग भाषाओं की कई मूल अवधारणाएं पहले से ही अच्छी तरह से स्थापित थीं, और ALGOL 60 ने पहले ही 1963 तक प्रोग्रामिंग टूल के लिए मानक निर्धारित कर दिया था।
रॉस पैटरसन

जवाबों:


8

एक "विवश प्रोग्रामिंग भाषा" बस एक है जो भाषाओं के उद्देश्य के लिए अप्रासंगिक होने वाली चीजों को करने के लिए (आसान) तरीके प्रदान नहीं करती है।

ध्यान दें कि "अप्रासंगिक" है, "गूंगा", "बेवकूफ" या "गलत" नहीं है।

इसका एक उचित उदाहरण ISO / ANSI SQL (SQL-92 से पहले) हो सकता है, जिसमें कई प्रक्रियात्मक-प्रकार की प्रोग्रामिंग कलाकृतियों जैसे कि पुनरावृत्ति या छोरों को व्यक्त करने के लिए क्वेरी भाषा में कोई रास्ता नहीं था। (हालांकि, यह अब उनके पास है, और विक्रेताओं ने उनके लिए पहले भी कस्टम एक्सटेंशन जोड़ा है)।


6
यह बिल्कुल कॉर्बेटो की बात है। वह 1969 के डीटामेशन लेख में PL / I के रूप में सिस्टम प्रोग्रामिंग के लिए एक उपकरण के रूप में बहुत विस्तार में गया (भयानक उपशीर्षक के साथ " एक अस्थायी कंपाइलर के साथ पांच साल !")।
रॉस पैटरसन

धन्यवाद, यह उत्तर बहुत मददगार है। इस विचार के दिलचस्प निहितार्थ हैं। इससे यह प्रतीत होता है कि एक प्रोग्रामर विभिन्न भाषाओं की बहुतायत के साथ अलग-अलग क्षमताओं तक पहुंच बनाना चाहेगा, बल्कि उन सभी पर शासन करने के लिए एक भाषा होगी, जो कि कई प्रोग्रामर सी, सी ++, या जावा को मान सकते हैं।
Xander Dunn

@RossPatterson बहुत बढ़िया! धन्यवाद! मैं कॉर्बेटो के विषय पर विस्तार की तलाश कर रहा था, लेकिन मुझे बहुत कुछ नहीं मिला।
Xander Dunn

1
उस डाटामेशन लेख से एक महान सारांश उद्धरण: " सिस्टम करने में हमारी वस्तु ... सीमांत का पता लगाने और यह देखने के लिए किया गया है कि कैसे प्रभावी ढंग से एक साथ रखा जाए जो एक प्रणाली तक पहुंचता है और जो लक्ष्य निर्धारित किए गए थे उन्हें संतुष्ट करता है। हम खोजने की कोशिश कर रहे हैं। मुख्य डिजाइन विचारों को बाहर करें और दूसरों से संपर्क करें, भले ही वे किस प्रणाली से परिचित हों। इसलिए, एक ऐसी भाषा जो हार्डवेयर के विशिष्ट विवरण से ऊपर होती है, निश्चित रूप से वांछनीय है, ... दूसरे शब्दों में, यह एक को डिजाइन करने के लिए मजबूर करती है, कोड के साथ बेला नहीं है। और यह उसके मजबूत बिंदुओं में से एक बन गया है "
रॉस पैटरसन

2
@thoughtadvances " इससे यह प्रतीत होता है कि एक प्रोग्रामर विभिन्न भाषाओं की बहुतायत के साथ अलग-अलग क्षमताओं तक पहुंच बनाना चाहेगा, बल्कि उन सभी पर शासन करने के लिए एक भाषा होगी " - यह एक जूनियर और एक वरिष्ठ प्रोग्रामर के बीच के मतभेदों में से एक है। किसी भी बढ़ई के पास केवल एक हथौड़ा नहीं है
रॉस पैटरसन


0

सबसे पहले, आपको कंप्यूटिंग के युग को समझने की आवश्यकता है जब उसका भाषण दिया गया था (1990)। इसके अलावा, एहसास है कि वह एक अकादमिक दर्शकों के लिए बोल रहा है और एमआईटी उसका घरेलू आधार है।

उस युग में, भाषा लिखने के लिए भाषाएं (मेटा-भाषाएँ) एक गर्म विषय थीं। मेटा-ऑब्जेक्ट प्रोटोकॉल की कला अभी बाहर है और नई भाषाओं के डिजाइन को प्रेरित कर रही है। हालांकि, यह सब लक्जरी एक कीमत पर आता है: जटिलता।

सिस्टम की जटिलता को कम करने और इन प्रणालियों की जाँच करने की अनुमति देने के लिए, मेटा-भाषाएँ जैसे Z एक परीक्षण योग्य विनिर्देश बनाने के लिए सामने आए। यह मेरा अनुमान है कि वह इस प्रकार की भाषाओं को संदर्भित करता है।


2
कॉर्बेटो केवल एक लेट-ट्वेन-सेन एमआईटी शैक्षणिक नहीं है। वह हमारे क्षेत्र के अग्रदूतों में से एक है। CTSS पर उनका काम मौलिक था, जो सीधे तौर पर मल्टिक्स, यूनिक्स, सीपी / 67 और आज के लिनक्स और जेड / वीएम सिस्टम के लिए अग्रणी है। और विचाराधीन कथन एक सिद्धांत से संबंधित है जिसे उन्होंने द आर्ट ऑफ़ मेटा-ऑब्जेक्ट प्रोटोकॉल और उनके ट्यूरिंग व्याख्यान से 20 साल पहले खुलकर बताया ।
रॉस पैटरसन

0

संभवतः उनका अर्थ है कि एक ऐसी भाषा जिसमें अवधारणाओं की संख्या काफी कम है। यहां उन आरेखों की जांच करें जो कॉफ़्सस्क्रिप्ट, रूबी और सी ++ में अवधारणाओं के चित्रमय प्रतिनिधित्व को दर्शाते हैं। हो सकता है कि ट्यूनर का मतलब है कि आपकी भाषा में जितनी कम अवधारणाएं हैं, अप्रासंगिक विचारों को व्यक्त करने की उतनी ही कम संभावनाएं हैं।


"... या एक भाषा" - क्या यह किसी चीज़ पर टिप्पणी है?
कुटकी

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