प्रोग्रामिंग भाषा सिद्धांत: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(12 intermediate revisions by 4 users not shown)
Line 2: Line 2:
{{Redirect |Theory of programming|the branch of CS that deals with what problems can be solved|Theory of computation}}
{{Redirect |Theory of programming|the branch of CS that deals with what problems can be solved|Theory of computation}}
{{More footnotes |date=October 2015}}
{{More footnotes |date=October 2015}}
[[File:Lambda lc.svg|thumb|250px|लोअरकेस [[ग्रीक वर्णमाला]] पत्र λ ([[लैम्ब्डा]]) प्रोग्रामिंग-भाषा सिद्धांत के क्षेत्र का एक अनौपचारिक प्रतीक है।{{Citation needed|date= July 2020}} यह प्रयोग [[लैम्ब्डा कैलकुलस]] से निकला है, जो 1930 के दशक में [[अलोंजो चर्च]] द्वारा शुरू की गई संगणना का एक मॉडल है और व्यापक रूप से प्रोग्रामिंग-भाषा शोधकर्ताओं द्वारा उपयोग किया जाता है। यह आवरण की शोभा बढ़ाता है<ref>{{Cite book |last=Abelson |first=Harold |url=https://www.worldcat.org/oclc/34576857 |title=कंप्यूटर प्रोग्राम की संरचना और व्याख्या|date=1996 |publisher=MIT Press |others=Gerald Jay Sussman, Julie Sussman |isbn=0-262-01153-0 |edition=2nd |location=Cambridge, Mass. |oclc=34576857}}</ref> क्लासिक पाठ संरचना और कंप्यूटर प्रोग्राम की व्याख्या, और 1975 से 1980 के तथाकथित [[लैम्ब्डा पेपर्स]] का शीर्षक, [[गेराल्ड जे सुस्मान]] और [[गाय स्टील]], योजना के डेवलपर्स (प्रोग्रामिंग भाषा) द्वारा लिखित।{{Technical statement|date=July 2020}}]]प्रोग्रामिंग भाषा सिद्धांत (PLT) [[कंप्यूटर विज्ञान]] की एक शाखा है जो [[प्रोग्रामिंग भाषा|प्रोग्रामिंग भाषाओं]] के रूप में ज्ञात [[Index.php?title=औपचारिक भाषाओं|औपचारिक भाषाओं]] के डिजाइन, कार्यान्वयन, विश्लेषण, लक्षण वर्णन और वर्गीकरण से संबंधित है। प्रोग्रामिंग भाषा सिद्धांत गणित, [[सॉफ्टवेयर इंजीनियरिंग]] और [[भाषा विज्ञान]] सहित अन्य क्षेत्रों से निकटता से संबंधित है। क्षेत्र में कई अकादमिक सम्मेलन और [[अकादमिक जर्नल]] हैं।
[[File:Lambda lc.svg|thumb|250px|निम्न [[ग्रीक वर्णमाला]] पत्र λ ([[लैम्ब्डा]]) प्रोग्रामिंग-भाषा सिद्धांत के क्षेत्र का एक अनौपचारिक प्रतीक है।{{Citation needed|date= July 2020}} यह प्रयोग [[लैम्ब्डा कैलकुलस|लैम्ब्डा अवकलन]] से निकला है, जो 1930 के दशक में [[अलोंजो चर्च]] द्वारा शुरू की गई संगणना का एक प्रणाली है और व्यापक रूप से प्रोग्रामिंग-भाषा शोधकर्ताओं द्वारा उपयोग किया जाता है। यह आवरण की शोभा बढ़ाता है<ref>{{Cite book |last=Abelson |first=Harold |url=https://www.worldcat.org/oclc/34576857 |title=कंप्यूटर प्रोग्राम की संरचना और व्याख्या|date=1996 |publisher=MIT Press |others=Gerald Jay Sussman, Julie Sussman |isbn=0-262-01153-0 |edition=2nd |location=Cambridge, Mass. |oclc=34576857}}</ref> क्लासिक पाठ संरचना और कंप्यूटर प्रोग्राम की व्याख्या, और 1975 से 1980 के तथाकथित [[लैम्ब्डा पेपर्स]] का शीर्षक, [[गेराल्ड जे सुस्मान]] और [[गाय स्टील]], योजना के डेवलपर्स (प्रोग्रामिंग भाषा) द्वारा लिखित है।{{Technical statement|date=July 2020}}]]'''प्रोग्रामिंग भाषा सिद्धांत (पीएलटी)''' [[कंप्यूटर विज्ञान]] की एक शाखा है जो [[प्रोग्रामिंग भाषा|प्रोग्रामिंग भाषाओं]] के रूप में ज्ञात [[Index.php?title=औपचारिक भाषाओं|औपचारिक भाषाओं]] के डिजाइन, कार्यान्वयन, विश्लेषण, लक्षण वर्णन और वर्गीकरण से संबंधित है। प्रोग्रामिंग भाषा सिद्धांत गणित, [[सॉफ्टवेयर इंजीनियरिंग]] और [[भाषा विज्ञान]] सहित अन्य क्षेत्रों से निकटता से संबंधित है। क्षेत्र में कई अकादमिक सम्मेलन और [[अकादमिक जर्नल]] हैं।


== इतिहास ==
== इतिहास ==
कुछ सम्बन्धो मे, प्रोग्रामिंग भाषा सिद्धांत का इतिहास स्वयं प्रोग्रामिंग भाषाओं के विकास से भी पहले का है। 1930 के दशक में अलोंजो चर्च और [[स्टीफन कोल क्लेन]] द्वारा विकसित लैम्ब्डा अवकलन को कुछ लोगों द्वारा दुनिया की पहली प्रोग्रामिंग भाषा माना जाता है, भले ही इसका उद्देश्य कंप्यूटर प्रोग्रामिंग अंकगणित के लिए प्रोग्रामर के लिए एक कंप्यूटर प्रणाली का साधन होने के अतिरिक्त अभिकलन संगणना का प्रारूप था। कई आधुनिक [[कार्यात्मक प्रोग्रामिंग भाषा|कार्यात्मक प्रोग्रामिंग भाषाओं]] को लैम्ब्डा अवकलन पर पतली परत प्रदान करने के रूप में वर्णित किया गया है,<ref>http://www.c2.com/cgi/wiki?ModelsOfComputation {{Bare URL inline|date=August 2022}}</ref> और इसके संदर्भ में कई और आसानी से वर्णित हैं।
कुछ सम्बन्धो मे, प्रोग्रामिंग भाषा सिद्धांत का इतिहास स्वयं प्रोग्रामिंग भाषाओं के विकास से भी पहले का है। 1930 के दशक में अलोंजो चर्च और [[स्टीफन कोल क्लेन]] द्वारा विकसित लैम्ब्डा अवकलन को कुछ लोगों द्वारा दुनिया की पहली प्रोग्रामिंग भाषा माना जाता है, भले ही इसका उद्देश्य कंप्यूटर प्रोग्रामिंग अंकगणित के लिए प्रोग्रामर के लिए एक कंप्यूटर प्रणाली का साधन होने के अतिरिक्त अभिकलन संगणना का प्रारूप था। कई आधुनिक [[कार्यात्मक प्रोग्रामिंग भाषा|कार्यात्मक प्रोग्रामिंग भाषाओं]] को लैम्ब्डा अवकलन पर पतली परत प्रदान करने के रूप में वर्णित किया गया है,<ref>http://www.c2.com/cgi/wiki?ModelsOfComputation {{Bare URL inline|date=August 2022}}</ref> और इसके संदर्भ में कई और आसानी से वर्णित हैं।


आविष्कार की जाने वाली पहली प्रोग्रामिंग भाषा प्लैंकलकुल थी, जिसे 1940 के दशक में [[कोनराड ज़्यूस]] द्वारा डिज़ाइन किया गया था, लेकिन 1972 तक सार्वजनिक रूप से ज्ञात नहीं था (और 1998 तक लागू नहीं किया गया था)। पहली व्यापक रूप से ज्ञात और [[उच्च स्तरीय प्रोग्रामिंग भाषा]] [[फोरट्रान]] थी, जिसे 1954 से 1957 तक [[जॉन बैकस]] के नेतृत्व में [[आईबीएम]] शोधकर्ताओं की एक टीम द्वारा विकसित किया गया था। फोरट्रान की सफलता ने एक सार्वभौमिक कंप्यूटर भाषा विकसित करने के लिए वैज्ञानिकों की एक समिति का गठन किया; उनके प्रयास का परिणाम [[ALGOL 58]] था। अलग से, MIT के जॉन मैक्कार्थी (कंप्यूटर वैज्ञानिक) ने [[ लिस्प (प्रोग्रामिंग भाषा) ]] विकसित की, जो सफल होने के लिए अकादमिक क्षेत्र में पहली भाषा थी। इन शुरुआती प्रयासों की सफलता के [[साथ]], 1960 के दशक और उसके बाद प्रोग्रामिंग भाषाएं शोध का एक सक्रिय विषय बन गईं।
आविष्कार की जाने वाली पहली प्रोग्रामिंग भाषा प्लैंकलकुल थी, जिसे 1940 में [[कोनराड ज़्यूस]] द्वारा निर्मित किया गया था, परन्तु 1972 तक सार्वजनिक रूप से ज्ञात नहीं था (और 1998 तक लागू नहीं किया गया था)। पहली व्यापक रूप से ज्ञात और [[उच्च स्तरीय प्रोग्रामिंग भाषा]] [[फोरट्रान]] थी, जिसे 1954 से 1957 तक [[जॉन बैकस]] के नेतृत्व में [[आईबीएम]] शोधकर्ताओं की एक टीम द्वारा विकसित किया गया था। फोरट्रान की सफलता ने एक सार्वभौमिक कंप्यूटर भाषा विकसित करने के लिए वैज्ञानिकों की एक समिति का गठन किया; उनके प्रयास का परिणाम [[ALGOL 58|ऐल्गॉल 58]] था। अलग से, एम्आईटी के जॉन मैक्कार्थी (कंप्यूटर वैज्ञानिक) ने [[ लिस्प (प्रोग्रामिंग भाषा) ]] विकसित की, जो सफल होने के लिए अकादमिक क्षेत्र में पहली भाषा थी। इन शुरुआती प्रयासों की सफलता के [[साथ]], 1960 के दशक और उसके बाद प्रोग्रामिंग भाषाएं शोध का एक सक्रिय विषय बन गईं।


प्रोग्रामिंग लैंग्वेज थ्योरी के इतिहास में तब से कुछ अन्य प्रमुख घटनाएं:
प्रोग्रामिंग भाषा सिद्धांत के इतिहास की कुछ अन्य प्रमुख घटनाएं:


=== 1950 के दशक ===
=== 1950 के दशक ===
Line 15: Line 15:


=== 1960 के दशक ===
=== 1960 के दशक ===
* सिमुला भाषा [[ओले-जोहान डाहल]] और [[क्रिस्टन न्यागार्ड]] द्वारा विकसित की गई थी; इसे व्यापक रूप से [[वस्तु-उन्मुख प्रोग्रामिंग भाषा]] का पहला उदाहरण माना जाता है; सिमुला ने कोरटाइन्स की अवधारणा भी पेश की।
* सिमुला भाषा [[ओले-जोहान डाहल]] और [[क्रिस्टन न्यागार्ड]] द्वारा विकसित की गई थी; इसे व्यापक रूप से [[वस्तु-उन्मुख प्रोग्रामिंग भाषा|ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषा]] का पहला उदाहरण माना जाता है; सिमुला ने कोरटाइन्स की अवधारणा भी ज्ञात की थी।
* 1964 में, [[पीटर लैंडिन]] ने महसूस किया कि चर्च के लैम्ब्डा कैलकुलस का उपयोग प्रोग्रामिंग भाषाओं को मॉडल करने के लिए किया जा सकता है। उन्होंने SECD मशीन का परिचय दिया जो लैम्ब्डा भावों की व्याख्या करती है।
* 1964 में, [[पीटर लैंडिन]] ने पाया की चर्च के लैम्ब्डा अवकलन का उपयोग प्रोग्रामिंग भाषाओं को निर्मित करने के लिए किया जा सकता है। उन्होंने एसइसीडी मशीन की खोज की जो लैम्ब्डा भावों की व्याख्या करती है।
* 1965 में, लैंडिन ने [[जे ऑपरेटर]] का परिचय दिया, अनिवार्य रूप से निरंतरता का एक रूप।
* 1965 में, लैंडिन ने [[जे ऑपरेटर]] का परिचय दिया, जो साधारणतया निरंतरता का एक रूप है।
* 1966 में, लैंडिन ने अपने लेख द नेक्स्ट 700 प्रोग्रामिंग लैंग्वेज में [[ISWIM]], एक अमूर्त कंप्यूटर प्रोग्रामिंग भाषा का परिचय दिया। [[हास्केल (प्रोग्रामिंग भाषा)]] प्रोग्रामिंग भाषा के लिए अग्रणी भाषाओं के डिजाइन में यह प्रभावशाली है।
* 1966 में, लैंडिन ने अपने लेख द नेक्स्ट 700 प्रोग्रामिंग लैंग्वेज में [[CUCH|आईएसडब्लूआईएम्]], एक अमूर्त कंप्यूटर प्रोग्रामिंग भाषा का परिचय दिया। [[हास्केल (प्रोग्रामिंग भाषा)]] प्रोग्रामिंग भाषा के लिए अग्रणी भाषाओं के निर्माण में यह प्रभावशाली है।
* 1966 में, Corrado Bohm ने प्रोग्रामिंग भाषा [[CUCH]] (करी-चर्च) की [[शुरुआत]] की।<ref>[[Corrado Böhm|C. Böhm]] and W. Gross (1996). Introduction to the CUCH. In E. R. Caianiello (ed.), ''Automata Theory'', p. 35-64/</ref>
* 1966 में, कर्राडो बोहम ने प्रोग्रामिंग भाषा [[CUCH|सीयुसीएच]] (करी-चर्च) की [[शुरुआत]] की थी।<ref>[[Corrado Böhm|C. Böhm]] and W. Gross (1996). Introduction to the CUCH. In E. R. Caianiello (ed.), ''Automata Theory'', p. 35-64/</ref>
* 1967 में, [[क्रिस्टोफर स्ट्रेची]] ने प्रोग्रामिंग लैंग्वेजेज में फंडामेंटल कॉन्सेप्ट्स इन लेक्चर नोट्स के अपने प्रभावशाली सेट को प्रकाशित किया, जिसमें टर्मिनोलॉजी [[ मूल्य (कंप्यूटर विज्ञान) ]] का परिचय दिया गया था।
* 1967 में, [[क्रिस्टोफर स्ट्रेची]] ने प्रोग्रामिंग भाषा में आधारभूत सिद्धांत इन लेक्चर नोट्स के अपने प्रभावशाली सेट को प्रकाशित किया, जिसमें टर्मिनोलॉजी R-मान, p-मान, पैरामीट्रिक पॉलीमॉरफिस्म, तथा एडी हॉक पॉलीमॉरफिस्म [[ मूल्य (कंप्यूटर विज्ञान) |मूल्यों (कंप्यूटर विज्ञान)]] का परिचय दिया गया था।
* 1969 में, जे. रोजर हिंडले ने द प्रिंसिपल टाइप-स्कीम ऑफ़ ए ऑब्जेक्ट इन कॉम्बिनेटरी लॉजिक प्रकाशित किया, जिसे बाद में हिंडले-मिलनर [[अनुमान टाइप करें]] एल्गोरिथम में सामान्यीकृत किया गया।
* 1969 में, जे. रोजर हिंडले ने द प्रिंसिपल टाइप-स्कीम ऑफ़ ए ऑब्जेक्ट इन कॉम्बिनेटरी लॉजिक प्रकाशित किया, जिसे बाद में हिंडले-मिलनर [[अनुमान टाइप करें|टाइप इंटरफेरेंस]] एल्गोरिथम में सामान्यीकृत किया गया।
* 1969 में, [[टोनी होरे]] ने [[होरे तर्क]] का परिचय दिया, जो [[स्वयंसिद्ध शब्दार्थ]] का एक रूप है।
* 1969 में, [[टोनी होरे]] ने [[होरे तर्क|होरे विचार]] का परिचय दिया, जो [[स्वयंसिद्ध शब्दार्थ]] का एक रूप है।
* 1969 में, [[विलियम एल्विन हावर्ड]] ने देखा कि एक उच्च-स्तरीय [[ सबूत कैलकुलेशन ]], जिसे प्राकृतिक डिडक्शन के रूप में संदर्भित किया जाता है, को सीधे इसके [[अंतर्ज्ञानवादी]] संस्करण में गणना के मॉडल के टाइप किए गए संस्करण के रूप में व्याख्या किया जा सकता है जिसे लैम्ब्डा कैलकुलस के रूप में जाना जाता है। यह करी-हावर्ड पत्राचार के रूप में जाना जाने लगा।
* 1969 में, [[विलियम एल्विन हावर्ड]] ने एक उच्च-स्तरीय [[ सबूत कैलकुलेशन |प्रूफ सिस्टम]] ज्ञात किया, जिसे प्राकृतिक डिडक्शन के रूप में संदर्भित किया जाता है, जिसका सीधे इसके [[अंतर्ज्ञानवादी]] संस्करण में गणना के प्रणाली के लिखे गए संस्करण के रूप में व्याख्या किया जा सकता है जिसे लैम्ब्डा अवकलन के रूप में जाना जाता है। यह बाद में करी-हावर्ड सामंजस्य के रूप में जाना जाने लगा।


=== 1970 के दशक ===
=== 1970 के दशक ===
* 1970 में, [[दाना स्कॉट]] ने पहली बार अपने काम को [[सांकेतिक शब्दार्थ]] पर प्रकाशित किया।
* 1970 में, [[दाना स्कॉट|डाना स्कॉट]] ने पहली बार अपने कार्य को [[सांकेतिक शब्दार्थ]] पर प्रकाशित किया।
* 1972 में, [[ तर्क प्रोग्रामिंग ]] और [[प्रोलॉग]] विकसित किए गए, जिससे कंप्यूटर प्रोग्राम को गणितीय लॉजिक के रूप में व्यक्त किया जा सके।
* 1972 में, [[ तर्क प्रोग्रामिंग ]]और [[प्रोलॉग]] विकसित किए गए, जिससे कंप्यूटर प्रोग्राम को गणितीय तर्क के रूप में व्यक्त किया जा सके।
* [[अब कश्मीर]] के नेतृत्व में [[ज़ेरॉक्स PARC]] में वैज्ञानिकों की एक टीम ने स्मॉलटॉक विकसित किया, जो एक वस्तु-उन्मुख भाषा है जो व्यापक रूप से अपने अभिनव विकास पर्यावरण के लिए जानी जाती है।
* अब [[अब कश्मीर|एलन के]] के नेतृत्व में [[ज़ेरॉक्स PARC|ज़ेरॉक्स पीएआरसी]] में वैज्ञानिकों की एक टीम ने स्मॉलटॉक विकसित किया, जो एक ऑब्जेक्ट-ओरिएंटेड भाषा है जो व्यापक रूप से अपने नवीन विकास पर्यावरण के लिए जानी जाती है।
* 1974 में, जॉन सी. रेनॉल्ड्स ने [[सिस्टम एफ]] की खोज की। यह 1971 में गणितीय तर्कशास्त्री [[जीन-यवेस गिरार्ड]] द्वारा पहले ही खोजा जा चुका था।
* 1974 में, जॉन सी. रेनॉल्ड्स ने [[सिस्टम एफ]] की खोज की। यह 1971 में गणितीय तर्कशास्त्री [[जीन-यवेस गिरार्ड]] द्वारा पहले ही खोजा जा चुका था।
* 1975 से, गेराल्ड जे सुस्मान और गाइ स्टील ने योजना (प्रोग्रामिंग भाषा) विकसित की, एक लिस्प बोली जिसमें [[लेक्सिकल स्कूपिंग]], एक एकीकृत नाम स्थान, और प्रथम श्रेणी की निरंतरता सहित [[अभिनेता मॉडल]] के तत्व शामिल हैं।
* 1975 से, गेराल्ड जे सुस्मान और गाइ स्टील ने स्कीम प्रोग्रामिंग भाषा विकसित की, एक लिस्प बोली जिसमें [[लेक्सिकल स्कूपिंग]], एक एकीकृत नाम स्थान, और प्रथम श्रेणी की निरंतरता के साथ ही [[अभिनेता मॉडल|एक्टर प्रणाली]] के तत्व सम्मलित है।
* 1977 के [[ट्यूरिंग अवार्ड]] व्याख्यान में बैकस ने औद्योगिक भाषाओं की वर्तमान स्थिति पर प्रहार किया और प्रोग्रामिंग भाषाओं की एक नई श्रेणी का प्रस्ताव रखा, जिसे अब [[फंक्शन-लेवल प्रोग्रामिंग]] भाषाओं के रूप में जाना जाता है।
* 1977 के [[ट्यूरिंग अवार्ड]] व्याख्यान में बैकस ने औद्योगिक भाषाओं की वर्तमान स्थिति का विरोध किया और प्रोग्रामिंग भाषाओं की एक नई श्रेणी का प्रस्ताव रखा, जिसे अब [[फंक्शन-लेवल प्रोग्रामिंग]] भाषाओं के रूप में जाना जाता है।
* 1977 में, [[गॉर्डन प्लॉटकिन]] ने [[प्रोग्रामिंग संगणनीय कार्य]], एक सार टाइप की गई कार्यात्मक भाषा पेश की।
* 1977 में, [[गॉर्डन प्लॉटकिन]] ने [[प्रोग्रामिंग संगणनीय कार्य]], एक अब्स्त्रक्त प्रकार की कार्यात्मक भाषा का निर्माण किया।
* 1978 में, [[रॉबिन मिलनर]] ने ML (प्रोग्रामिंग लैंग्वेज) के लिए हिंडले-मिलनर टाइप इनफेरेंस एल्गोरिथम पेश किया। [[ प्रकार सिद्धांत ]] प्रोग्रामिंग भाषाओं के लिए एक अनुशासन के रूप में लागू हो गई, इस एप्लिकेशन ने वर्षों से टाइप थ्योरी में जबरदस्त प्रगति की है।
* 1978 में, [[रॉबिन मिलनर]] ने एम्एल प्रोग्रामिंग भाषा के लिए हिंडले-मिलनर टाइप इनफेरेंस एल्गोरिथम प्रदान किया। [[ प्रकार सिद्धांत |टाइप सिद्धांत]] प्रोग्रामिंग भाषाओं के लिए एक अनुशासन के रूप में लागू हो गई, इस एप्लिकेशन ने वर्षों से टाइप सिद्धांत में बहुत अधिक प्रगति की है।


=== 1980 के दशक ===
=== 1980 के दशक ===
* 1981 में, गॉर्डन प्लॉटकिन ने [[संरचित परिचालन शब्दार्थ]] पर अपना पेपर प्रकाशित किया।
* 1981 में, गॉर्डन प्लॉटकिन ने [[संरचित परिचालन शब्दार्थ]] पर अपना लेख प्रकाशित किया।
* 1988 में, [[जाइल्स क्हान]] ने [[प्राकृतिक शब्दार्थ]] पर अपना पेपर प्रकाशित किया।
* 1988 में, [[जाइल्स क्हान]] ने [[प्राकृतिक शब्दार्थ]] पर अपना लेख प्रकाशित किया।
* उभरी प्रक्रिया कलन, जैसे कि रॉबिन मिलनर की संचार प्रणाली की गणना, और सी. ए. आर. होरे का संचार अनुक्रमिक प्रक्रिया मॉडल, साथ ही [[कार्ल हेविट]] के अभिनेता मॉडल जैसे समरूपता के समान मॉडल।
* यहाँ प्रक्रिया अवकलन, जैसे कि रॉबिन मिलनर की संचार प्रणाली का अवकलन, और सी. ए. आर. होरे का संचार अनुक्रमिक प्रक्रिया प्रणाली, साथ ही [[कार्ल हेविट]] के एक्टर प्रणाली जैसे समरूपता के समान प्रणाली उभरती हैं।
* 1985 में, [[ मिरांडा (प्रोग्रामिंग भाषा) ]] की रिलीज आलसी-मूल्यांकित शुद्ध कार्यात्मक प्रोग्रामिंग भाषाओं में एक अकादमिक रुचि जगाती है। 1990 में हास्केल 1.0 मानक जारी करने के परिणामस्वरूप एक खुले मानक को परिभाषित करने के लिए एक समिति का गठन किया गया था।
* 1985 में, [[ मिरांडा (प्रोग्रामिंग भाषा) ]] की निर्मित लेज़ी-मूल्यांकित शुद्ध कार्यात्मक प्रोग्रामिंग भाषाओं में एक अकादमिक इच्छा उत्त्पन करती है। 1990 में हास्केल 1.0 मानक जारी करने के परिणामस्वरूप एक प्रारंभिक मानक को परिभाषित करने के लिए एक समिति का गठन किया गया था।
* [[बर्ट्रेंड मेयर]] ने अनुबंध द्वारा कार्यप्रणाली डिजाइन बनाई और इसे [[एफिल (प्रोग्रामिंग भाषा)]] में शामिल किया।
* [[बर्ट्रेंड मेयर]] ने अनुबंध द्वारा कार्यप्रणाली निर्मित की गयी और इसे [[एफिल (प्रोग्रामिंग भाषा)]] में सम्मलित किया गया है।


=== 1990 के दशक ===
=== 1990 के दशक ===
* [[ग्रेगोर किकज़ालेस]], जिम डेस रिविएरेस और डैनियल जी. बोब्रो ने [[मेटाऑब्जेक्ट प्रोटोकॉल की कला]] नामक पुस्तक प्रकाशित की।
* [[ग्रेगोर किकज़ालेस]], जिम डेस रिविएरेस और डैनियल जी. बोब्रो ने [[मेटाऑब्जेक्ट प्रोटोकॉल की कला]] नामक पुस्तक प्रकाशित की थी।
* [[यूजीनियो मोगी]] और [[फिलिप वाडलर]] ने कार्यात्मक प्रोग्रामिंग भाषाओं में लिखे गए कार्यक्रमों की संरचना के लिए कार्यात्मक प्रोग्रामिंग में मोनाड्स के उपयोग की शुरुआत की।
* [[यूजीनियो मोगी]] और [[फिलिप वाडलर]] ने कार्यात्मक प्रोग्रामिंग भाषाओं में लिखे गए कार्यक्रमों की संरचना के लिए कार्यात्मक प्रोग्रामिंग में मोनाड्स के उपयोग की शुरुआत की थी।


== उप-विषय और संबंधित क्षेत्र ==
== उप-विषय और संबंधित क्षेत्र ==
अध्ययन के कई क्षेत्र हैं जो या तो प्रोग्रामिंग भाषा सिद्धांत के अंतर्गत आते हैं, या जिनका उस पर गहरा प्रभाव है; इनमें से कई में काफी ओवरलैप है। इसके अलावा, पीएलटी [[संगणनीयता सिद्धांत]], [[श्रेणी सिद्धांत]] और सेट सिद्धांत सहित गणित की कई अन्य शाखाओं का उपयोग करता है।
अध्ययन के कई क्षेत्र हैं जो या तो प्रोग्रामिंग भाषा सिद्धांत के अंतर्गत आते हैं, या जिनका उस पर गहरा प्रभाव है; इनमें से कई में बहुत अधिक आच्छादित किया गया है। इसके अतिरिक्त, पीएलटी [[संगणनीयता सिद्धांत]], [[श्रेणी सिद्धांत]] और सेट सिद्धांत सहित गणित की कई अन्य शाखाओं का उपयोग किया जाता हैं।


=== औपचारिक शब्दार्थ ===
=== औपचारिक शब्दार्थ ===
{{main|Formal semantics of programming languages}}
{{main|Formal semantics of programming languages}}
औपचारिक शब्दार्थ कंप्यूटर प्रोग्राम और प्रोग्रामिंग भाषाओं के व्यवहार की औपचारिक विशिष्टता है। शब्दार्थ या कंप्यूटर प्रोग्राम के अर्थ का वर्णन करने के लिए तीन सामान्य दृष्टिकोण हैं, शब्दार्थ शब्दार्थ, [[परिचालन शब्दार्थ]] और स्वयंसिद्ध शब्दार्थ।
औपचारिक शब्दार्थ कंप्यूटर प्रोग्राम और प्रोग्रामिंग भाषाओं के व्यवहार की औपचारिक विशिष्टता है। शब्दार्थ या कंप्यूटर प्रोग्राम के अर्थ का वर्णन करने के लिए तीन सामान्य दृष्टिकोण हैं, सांकेतिक शब्दार्थ, [[परिचालन शब्दार्थ]] और स्वयंसिद्ध शब्दार्थ।


=== प्रकार सिद्धांत ===
=== प्रकार सिद्धांत ===
{{main|Type theory}}
{{main|Type theory}}
टाइप थ्योरी [[ प्रकार प्रणाली ]] का अध्ययन है; जो गणना किए गए मानों के प्रकार के अनुसार वाक्यांशों को वर्गीकृत करके कुछ प्रोग्राम व्यवहारों की अनुपस्थिति को साबित करने के लिए एक ट्रैक्टेबल सिंटैक्टिक विधि है।<ref>Benjamin C. Pierce. 2002. [https://books.google.com/books?id=ti6zoAC9Ph8C&dq=%22Types+and+Programming+Languages%22&pg=PR13 Types and Programming Languages]. MIT Press, Cambridge, Massachusetts, USA.</ref> कई प्रोग्रामिंग भाषाएं उनके प्रकार प्रणालियों की विशेषताओं से अलग होती हैं।
प्रकार सिद्धांत[[ प्रकार प्रणाली ]]का अध्ययन है; जो गणना किए गए मानों के प्रकार के अनुसार वाक्यांशों को वर्गीकृत करके कुछ प्रोग्राम व्यवहारों की अनुपस्थिति को सिद्ध करने के लिए एक ट्रैक्टेबल सिंटैक्टिक विधि है।<ref>Benjamin C. Pierce. 2002. [https://books.google.com/books?id=ti6zoAC9Ph8C&dq=%22Types+and+Programming+Languages%22&pg=PR13 Types and Programming Languages]. MIT Press, Cambridge, Massachusetts, USA.</ref> कई प्रोग्रामिंग भाषाएं उनके प्रकार प्रणालियों की विशेषताओं से अलग होती हैं।


=== कार्यक्रम विश्लेषण और परिवर्तन ===
=== प्रोग्राम विश्लेषण और परिवर्तन ===
{{main|Program analysis|Program transformation}}
{{main|Program analysis|Program transformation}}
कार्यक्रम विश्लेषण एक कार्यक्रम की जांच करने और प्रमुख विशेषताओं (जैसे [[सॉफ्टवेयर बग]] की कक्षाओं की अनुपस्थिति) का निर्धारण करने की सामान्य समस्या है। कार्यक्रम परिवर्तन एक कार्यक्रम को एक रूप (भाषा) में दूसरे रूप में बदलने की प्रक्रिया है।
प्रोग्राम विश्लेषण एक प्रोग्राम की जांच करने और प्रमुख विशेषताओं (जैसे [[सॉफ्टवेयर बग]] की कक्षाओं की अनुपस्थिति) का निर्धारण करने की सामान्य समस्या है। प्रोग्राम परिवर्तन एक प्रोग्राम को एक रूप (भाषा) में दूसरे रूप में बदलने की प्रक्रिया है।


=== तुलनात्मक प्रोग्रामिंग भाषा विश्लेषण ===
=== तुलनात्मक प्रोग्रामिंग भाषा विश्लेषण ===
तुलनात्मक प्रोग्रामिंग भाषा विश्लेषण प्रोग्रामिंग भाषाओं को उनकी विशेषताओं के आधार पर विभिन्न प्रकारों में वर्गीकृत करना चाहता है; प्रोग्रामिंग भाषाओं की व्यापक श्रेणियों को अक्सर [[प्रोग्रामिंग प्रतिमान]]ों के रूप में जाना जाता है।
तुलनात्मक प्रोग्रामिंग भाषा विश्लेषण प्रोग्रामिंग भाषाओं को उनकी विशेषताओं के आधार पर विभिन्न प्रकारों में वर्गीकृत करता हैं; प्रोग्रामिंग भाषाओं की व्यापक श्रेणियों को प्रायः [[प्रोग्रामिंग प्रतिमान|प्रोग्रामिंग प्रतिमानको]] के रूप में जाना जाता है।


=== सामान्य और [[मेटाप्रोग्रामिंग]] ===
=== सामान्य और [[मेटाप्रोग्रामिंग]] ===
मेटाप्रोग्रामिंग उच्च-क्रम के कार्यक्रमों की पीढ़ी है, जो निष्पादित होने पर, परिणामस्वरूप प्रोग्राम (संभवतः एक अलग भाषा में, या मूल भाषा के एक उपसमूह में) उत्पन्न करते हैं।
मेटाप्रोग्रामिंग उच्च-क्रम के कार्यक्रमों की पीढ़ी है, जो निष्पादित होने पर, परिणामस्वरूप प्रोग्राम (संभवतः एक अलग भाषा में, या मूल भाषा के एक उपसमूह में) उत्पन्न करते हैं।


=== [[डोमेन-विशिष्ट भाषा]]एं ===
=== [[डोमेन-विशिष्ट भाषा|डोमेन-विशिष्ट]] भाषाए ===
डोमेन-विशिष्ट भाषाएँ डोमेन के किसी विशेष भाग की समस्याओं को कुशलतापूर्वक हल करने के लिए निर्मित भाषाएँ हैं।
डोमेन-विशिष्ट भाषाएँ डोमेन के किसी विशेष भाग की समस्याओं को कुशलतापूर्वक हल करने के लिए निर्मित भाषाएँ हैं।


=== संकलक निर्माण ===
=== संकलक निर्माण ===
{{main|Compiler construction}}
{{main|Compiler construction}}
[[संकलक]] सिद्धांत संकलक (या अधिक सामान्यतः, अनुवादक) लिखने का सिद्धांत है; प्रोग्राम जो एक भाषा में लिखे प्रोग्राम का दूसरी भाषा में अनुवाद करते हैं। एक कंपाइलर के कार्यों को परंपरागत रूप से सिंटैक्स विश्लेषण (लेक्सिकल विश्लेषण#स्कैनरिंग और [[ पदच्छेद ]]), सिमेंटिक विश्लेषण (यह निर्धारित करना कि प्रोग्राम को क्या करना चाहिए), कंपाइलर अनुकूलन (कुछ मीट्रिक द्वारा इंगित प्रोग्राम के प्रदर्शन में सुधार; आमतौर पर निष्पादन की गति) में विभाजित किया गया है। ) और [[ कोड जनरेशन (संकलक) ]] (कुछ लक्ष्य भाषा में समकक्ष प्रोग्राम का उत्पादन और आउटपुट; अक्सर सीपीयू का निर्देश सेट)
[[संकलक]] सिद्धांत संकलक (या अधिक सामान्यतः, अनुवादक) लिखने का सिद्धांत है; ये वे प्रोग्राम है जो एक भाषा में लिखे प्रोग्राम का दूसरी भाषा में अनुवाद करते हैं। एक कंपाइलर के कार्यों को परंपरागत रूप से सिंटैक्स विश्लेषण (लेक्सिकल विश्लेषण#स्कैनरिंग और [[ पदच्छेद ]]), सिमेंटिक विश्लेषण (यह निर्धारित करना कि प्रोग्राम को क्या करना चाहिए), कंपाइलर अनुकूलन (कुछ आव्यूहों द्वारा इंगित प्रोग्राम के प्रदर्शन में सुधार; साधारणतया निष्पादन की गति) में विभाजित किया गया है और [[ कोड जनरेशन (संकलक) ]](कुछ लक्ष्य भाषा में समकक्ष प्रोग्राम का उत्पादन और आउटपुट; प्रायः सीपीयू का निर्देश सेट) आते हैं।


=== [[रन-टाइम सिस्टम]] ===
=== [[रन-टाइम सिस्टम|रन-टाइम प्रणाली]] ===
रन-टाइम सिस्टम प्रोग्रामिंग भाषा रनटाइम वातावरण और उनके घटकों के विकास को संदर्भित करता है, जिसमें [[ आभासी मशीन ]], [[कचरा संग्रह (कंप्यूटर विज्ञान)]], और [[विदेशी फ़ंक्शन इंटरफ़ेस]] शामिल हैं।
रन-टाइम प्रणाली प्रोग्रामिंग भाषा रनटाइम वातावरण और उनके घटकों के विकास को संदर्भित करता है, जिसमें[[ आभासी मशीन | आभासी मशीन]], [[कचरा संग्रह (कंप्यूटर विज्ञान)]], और [[विदेशी फ़ंक्शन इंटरफ़ेस]] सम्मलित हैं।


== पत्रिकाएं, प्रकाशन और सम्मेलन ==
== पत्रिकाएं, प्रकाशन और सम्मेलन ==
प्रोग्रामिंग भाषाओं में अनुसंधान प्रस्तुत करने के लिए सम्मेलन प्राथमिक स्थल हैं। सबसे प्रसिद्ध सम्मेलनों में [[प्रोग्रामिंग भाषाओं के सिद्धांतों पर संगोष्ठी]] (पीओपीएल), प्रोग्रामिंग भाषा डिजाइन और कार्यान्वयन पर सम्मेलन (पीएलडीआई), [[कार्यात्मक प्रोग्रामिंग पर अंतर्राष्ट्रीय सम्मेलन]] (आईसीएफपी), ओओपीएसएलए | ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग, सिस्टम पर अंतर्राष्ट्रीय सम्मेलन शामिल हैं। भाषाओं और अनुप्रयोगों (ओओपीएसएलए) और प्रोग्रामिंग भाषाओं और ऑपरेटिंग सिस्टम (एएसपीएलओएस) के लिए आर्किटेक्चरल सपोर्ट पर अंतर्राष्ट्रीय सम्मेलन।
प्रोग्रामिंग भाषाओं में अनुसंधान प्रस्तुत करने के लिए सम्मेलन प्राथमिक स्थल हैं। सबसे प्रसिद्ध सम्मेलनों में [[प्रोग्रामिंग भाषाओं के सिद्धांतों पर संगोष्ठी]] (पीओपीएल), प्रोग्रामिंग भाषा डिजाइन और कार्यान्वयन पर सम्मेलन (पीएलडीआई), [[कार्यात्मक प्रोग्रामिंग पर अंतर्राष्ट्रीय सम्मेलन]] (आईसीऍफ़पी),ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का अंतर्राष्ट्रीय सम्मलेन (ओ ओ पी एस एल ए) | प्रोग्रामिंग भाषाओं और ऑपरेटिंग प्रणालियों (ए एस पी एल ओ एस) के लिए वास्तुकला सहयोग पर अंतर्राष्ट्रीय सम्मेलन सम्मलित हैं।


पीएलटी अनुसंधान प्रकाशित करने वाली उल्लेखनीय पत्रिकाओं में प्रोग्रामिंग लैंग्वेज एंड सिस्टम्स (TOPLAS), [[जर्नल ऑफ फंक्शनल प्रोग्रामिंग]] (JFP), जर्नल ऑफ फंक्शनल प्रोग्रामिंग, और [[उच्च-क्रम और प्रतीकात्मक संगणना]] पर ACM लेनदेन शामिल हैं।
पीएलटी अनुसंधान प्रकाशित करने वाली उल्लेखनीय पत्रिकाओं में प्रोग्रामिंग भाषा एवं प्रणाली (टीओपीएलएएस), [[जर्नल ऑफ फंक्शनल प्रोग्रामिंग]] (जेऍफ़पी), जर्नल ऑफ फंक्शनल एंड लॉजिक प्रोग्रामिंग, और [[उच्च-क्रम और प्रतीकात्मक संगणना]] पर एसीएम् सहभागिता सम्मलित हैं।


== यह भी देखें ==
== यह भी देखें ==
* [[ एसआईजी योजना ]]
* [[ एसआईजी योजना | एस. आई. जी योजना]]
* [[प्रोग्रामिंग भाषाओं की समयरेखा]]
* [[प्रोग्रामिंग भाषाओं की समयरेखा]]
* [[बहुत उच्च स्तरीय प्रोग्रामिंग भाषा]]
* [[बहुत उच्च स्तरीय प्रोग्रामिंग भाषा]]
Line 114: Line 114:
*[http://turing100.acm.org/lambda_calculus_timeline.pdf λ-Calculus: Then & Now] by [[Dana S. Scott]] for the ACM Turing Centenary Celebration
*[http://turing100.acm.org/lambda_calculus_timeline.pdf λ-Calculus: Then & Now] by [[Dana S. Scott]] for the ACM Turing Centenary Celebration
*[http://plgrand.blogspot.com/ Grand Challenges in Programming Languages]. Panel session at [[POPL]] 2009.
*[http://plgrand.blogspot.com/ Grand Challenges in Programming Languages]. Panel session at [[POPL]] 2009.
[[Category: प्रोग्रामिंग लैंग्वेज थ्योरी | प्रोग्रामिंग लैंग्वेज थ्योरी ]]


 
[[Category:All articles lacking in-text citations]]
 
[[Category:All articles needing expert attention]]
[[Category: Machine Translated Page]]
[[Category:All articles that are too technical]]
[[Category:All articles with bare URLs for citations]]
[[Category:All articles with unsourced statements]]
[[Category:Articles lacking in-text citations from October 2015]]
[[Category:Articles needing expert attention from July 2020]]
[[Category:Articles with bare URLs for citations from August 2022]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Articles with invalid date parameter in template]]
[[Category:Articles with unsourced statements from July 2020]]
[[Category:Commons category link from Wikidata]]
[[Category:Created On 07/05/2023]]
[[Category:Created On 07/05/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Missing redirects]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia articles that are too technical from July 2020]]
[[Category:प्रोग्रामिंग लैंग्वेज थ्योरी| प्रोग्रामिंग लैंग्वेज थ्योरी ]]

Latest revision as of 17:38, 29 August 2023

निम्न ग्रीक वर्णमाला पत्र λ (लैम्ब्डा) प्रोग्रामिंग-भाषा सिद्धांत के क्षेत्र का एक अनौपचारिक प्रतीक है।[citation needed] यह प्रयोग लैम्ब्डा अवकलन से निकला है, जो 1930 के दशक में अलोंजो चर्च द्वारा शुरू की गई संगणना का एक प्रणाली है और व्यापक रूप से प्रोग्रामिंग-भाषा शोधकर्ताओं द्वारा उपयोग किया जाता है। यह आवरण की शोभा बढ़ाता है[1] क्लासिक पाठ संरचना और कंप्यूटर प्रोग्राम की व्याख्या, और 1975 से 1980 के तथाकथित लैम्ब्डा पेपर्स का शीर्षक, गेराल्ड जे सुस्मान और गाय स्टील, योजना के डेवलपर्स (प्रोग्रामिंग भाषा) द्वारा लिखित है।[jargon]

प्रोग्रामिंग भाषा सिद्धांत (पीएलटी) कंप्यूटर विज्ञान की एक शाखा है जो प्रोग्रामिंग भाषाओं के रूप में ज्ञात औपचारिक भाषाओं के डिजाइन, कार्यान्वयन, विश्लेषण, लक्षण वर्णन और वर्गीकरण से संबंधित है। प्रोग्रामिंग भाषा सिद्धांत गणित, सॉफ्टवेयर इंजीनियरिंग और भाषा विज्ञान सहित अन्य क्षेत्रों से निकटता से संबंधित है। क्षेत्र में कई अकादमिक सम्मेलन और अकादमिक जर्नल हैं।

इतिहास

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

आविष्कार की जाने वाली पहली प्रोग्रामिंग भाषा प्लैंकलकुल थी, जिसे 1940 में कोनराड ज़्यूस द्वारा निर्मित किया गया था, परन्तु 1972 तक सार्वजनिक रूप से ज्ञात नहीं था (और 1998 तक लागू नहीं किया गया था)। पहली व्यापक रूप से ज्ञात और उच्च स्तरीय प्रोग्रामिंग भाषा फोरट्रान थी, जिसे 1954 से 1957 तक जॉन बैकस के नेतृत्व में आईबीएम शोधकर्ताओं की एक टीम द्वारा विकसित किया गया था। फोरट्रान की सफलता ने एक सार्वभौमिक कंप्यूटर भाषा विकसित करने के लिए वैज्ञानिकों की एक समिति का गठन किया; उनके प्रयास का परिणाम ऐल्गॉल 58 था। अलग से, एम्आईटी के जॉन मैक्कार्थी (कंप्यूटर वैज्ञानिक) ने लिस्प (प्रोग्रामिंग भाषा) विकसित की, जो सफल होने के लिए अकादमिक क्षेत्र में पहली भाषा थी। इन शुरुआती प्रयासों की सफलता के साथ, 1960 के दशक और उसके बाद प्रोग्रामिंग भाषाएं शोध का एक सक्रिय विषय बन गईं।

प्रोग्रामिंग भाषा सिद्धांत के इतिहास की कुछ अन्य प्रमुख घटनाएं:

1950 के दशक

  • नोम चौमस्की ने भाषाविज्ञान के क्षेत्र में चॉम्स्की पदानुक्रम विकसित किया, एक खोज जिसने प्रोग्रामिंग भाषा सिद्धांत और कंप्यूटर विज्ञान की अन्य शाखाओं को सीधे प्रभावित किया है।

1960 के दशक

  • सिमुला भाषा ओले-जोहान डाहल और क्रिस्टन न्यागार्ड द्वारा विकसित की गई थी; इसे व्यापक रूप से ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषा का पहला उदाहरण माना जाता है; सिमुला ने कोरटाइन्स की अवधारणा भी ज्ञात की थी।
  • 1964 में, पीटर लैंडिन ने पाया की चर्च के लैम्ब्डा अवकलन का उपयोग प्रोग्रामिंग भाषाओं को निर्मित करने के लिए किया जा सकता है। उन्होंने एसइसीडी मशीन की खोज की जो लैम्ब्डा भावों की व्याख्या करती है।
  • 1965 में, लैंडिन ने जे ऑपरेटर का परिचय दिया, जो साधारणतया निरंतरता का एक रूप है।
  • 1966 में, लैंडिन ने अपने लेख द नेक्स्ट 700 प्रोग्रामिंग लैंग्वेज में आईएसडब्लूआईएम्, एक अमूर्त कंप्यूटर प्रोग्रामिंग भाषा का परिचय दिया। हास्केल (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा के लिए अग्रणी भाषाओं के निर्माण में यह प्रभावशाली है।
  • 1966 में, कर्राडो बोहम ने प्रोग्रामिंग भाषा सीयुसीएच (करी-चर्च) की शुरुआत की थी।[3]
  • 1967 में, क्रिस्टोफर स्ट्रेची ने प्रोग्रामिंग भाषा में आधारभूत सिद्धांत इन लेक्चर नोट्स के अपने प्रभावशाली सेट को प्रकाशित किया, जिसमें टर्मिनोलॉजी R-मान, p-मान, पैरामीट्रिक पॉलीमॉरफिस्म, तथा एडी हॉक पॉलीमॉरफिस्म मूल्यों (कंप्यूटर विज्ञान) का परिचय दिया गया था।
  • 1969 में, जे. रोजर हिंडले ने द प्रिंसिपल टाइप-स्कीम ऑफ़ ए ऑब्जेक्ट इन कॉम्बिनेटरी लॉजिक प्रकाशित किया, जिसे बाद में हिंडले-मिलनर टाइप इंटरफेरेंस एल्गोरिथम में सामान्यीकृत किया गया।
  • 1969 में, टोनी होरे ने होरे विचार का परिचय दिया, जो स्वयंसिद्ध शब्दार्थ का एक रूप है।
  • 1969 में, विलियम एल्विन हावर्ड ने एक उच्च-स्तरीय प्रूफ सिस्टम ज्ञात किया, जिसे प्राकृतिक डिडक्शन के रूप में संदर्भित किया जाता है, जिसका सीधे इसके अंतर्ज्ञानवादी संस्करण में गणना के प्रणाली के लिखे गए संस्करण के रूप में व्याख्या किया जा सकता है जिसे लैम्ब्डा अवकलन के रूप में जाना जाता है। यह बाद में करी-हावर्ड सामंजस्य के रूप में जाना जाने लगा।

1970 के दशक

  • 1970 में, डाना स्कॉट ने पहली बार अपने कार्य को सांकेतिक शब्दार्थ पर प्रकाशित किया।
  • 1972 में, तर्क प्रोग्रामिंग और प्रोलॉग विकसित किए गए, जिससे कंप्यूटर प्रोग्राम को गणितीय तर्क के रूप में व्यक्त किया जा सके।
  • अब एलन के के नेतृत्व में ज़ेरॉक्स पीएआरसी में वैज्ञानिकों की एक टीम ने स्मॉलटॉक विकसित किया, जो एक ऑब्जेक्ट-ओरिएंटेड भाषा है जो व्यापक रूप से अपने नवीन विकास पर्यावरण के लिए जानी जाती है।
  • 1974 में, जॉन सी. रेनॉल्ड्स ने सिस्टम एफ की खोज की। यह 1971 में गणितीय तर्कशास्त्री जीन-यवेस गिरार्ड द्वारा पहले ही खोजा जा चुका था।
  • 1975 से, गेराल्ड जे सुस्मान और गाइ स्टील ने स्कीम प्रोग्रामिंग भाषा विकसित की, एक लिस्प बोली जिसमें लेक्सिकल स्कूपिंग, एक एकीकृत नाम स्थान, और प्रथम श्रेणी की निरंतरता के साथ ही एक्टर प्रणाली के तत्व सम्मलित है।
  • 1977 के ट्यूरिंग अवार्ड व्याख्यान में बैकस ने औद्योगिक भाषाओं की वर्तमान स्थिति का विरोध किया और प्रोग्रामिंग भाषाओं की एक नई श्रेणी का प्रस्ताव रखा, जिसे अब फंक्शन-लेवल प्रोग्रामिंग भाषाओं के रूप में जाना जाता है।
  • 1977 में, गॉर्डन प्लॉटकिन ने प्रोग्रामिंग संगणनीय कार्य, एक अब्स्त्रक्त प्रकार की कार्यात्मक भाषा का निर्माण किया।
  • 1978 में, रॉबिन मिलनर ने एम्एल प्रोग्रामिंग भाषा के लिए हिंडले-मिलनर टाइप इनफेरेंस एल्गोरिथम प्रदान किया। टाइप सिद्धांत प्रोग्रामिंग भाषाओं के लिए एक अनुशासन के रूप में लागू हो गई, इस एप्लिकेशन ने वर्षों से टाइप सिद्धांत में बहुत अधिक प्रगति की है।

1980 के दशक

  • 1981 में, गॉर्डन प्लॉटकिन ने संरचित परिचालन शब्दार्थ पर अपना लेख प्रकाशित किया।
  • 1988 में, जाइल्स क्हान ने प्राकृतिक शब्दार्थ पर अपना लेख प्रकाशित किया।
  • यहाँ प्रक्रिया अवकलन, जैसे कि रॉबिन मिलनर की संचार प्रणाली का अवकलन, और सी. ए. आर. होरे का संचार अनुक्रमिक प्रक्रिया प्रणाली, साथ ही कार्ल हेविट के एक्टर प्रणाली जैसे समरूपता के समान प्रणाली उभरती हैं।
  • 1985 में, मिरांडा (प्रोग्रामिंग भाषा) की निर्मित लेज़ी-मूल्यांकित शुद्ध कार्यात्मक प्रोग्रामिंग भाषाओं में एक अकादमिक इच्छा उत्त्पन करती है। 1990 में हास्केल 1.0 मानक जारी करने के परिणामस्वरूप एक प्रारंभिक मानक को परिभाषित करने के लिए एक समिति का गठन किया गया था।
  • बर्ट्रेंड मेयर ने अनुबंध द्वारा कार्यप्रणाली निर्मित की गयी और इसे एफिल (प्रोग्रामिंग भाषा) में सम्मलित किया गया है।

1990 के दशक

उप-विषय और संबंधित क्षेत्र

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

औपचारिक शब्दार्थ

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

प्रकार सिद्धांत

प्रकार सिद्धांतप्रकार प्रणाली का अध्ययन है; जो गणना किए गए मानों के प्रकार के अनुसार वाक्यांशों को वर्गीकृत करके कुछ प्रोग्राम व्यवहारों की अनुपस्थिति को सिद्ध करने के लिए एक ट्रैक्टेबल सिंटैक्टिक विधि है।[4] कई प्रोग्रामिंग भाषाएं उनके प्रकार प्रणालियों की विशेषताओं से अलग होती हैं।

प्रोग्राम विश्लेषण और परिवर्तन

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

तुलनात्मक प्रोग्रामिंग भाषा विश्लेषण

तुलनात्मक प्रोग्रामिंग भाषा विश्लेषण प्रोग्रामिंग भाषाओं को उनकी विशेषताओं के आधार पर विभिन्न प्रकारों में वर्गीकृत करता हैं; प्रोग्रामिंग भाषाओं की व्यापक श्रेणियों को प्रायः प्रोग्रामिंग प्रतिमानको के रूप में जाना जाता है।

सामान्य और मेटाप्रोग्रामिंग

मेटाप्रोग्रामिंग उच्च-क्रम के कार्यक्रमों की पीढ़ी है, जो निष्पादित होने पर, परिणामस्वरूप प्रोग्राम (संभवतः एक अलग भाषा में, या मूल भाषा के एक उपसमूह में) उत्पन्न करते हैं।

डोमेन-विशिष्ट भाषाए

डोमेन-विशिष्ट भाषाएँ डोमेन के किसी विशेष भाग की समस्याओं को कुशलतापूर्वक हल करने के लिए निर्मित भाषाएँ हैं।

संकलक निर्माण

संकलक सिद्धांत संकलक (या अधिक सामान्यतः, अनुवादक) लिखने का सिद्धांत है; ये वे प्रोग्राम है जो एक भाषा में लिखे प्रोग्राम का दूसरी भाषा में अनुवाद करते हैं। एक कंपाइलर के कार्यों को परंपरागत रूप से सिंटैक्स विश्लेषण (लेक्सिकल विश्लेषण#स्कैनरिंग और पदच्छेद ), सिमेंटिक विश्लेषण (यह निर्धारित करना कि प्रोग्राम को क्या करना चाहिए), कंपाइलर अनुकूलन (कुछ आव्यूहों द्वारा इंगित प्रोग्राम के प्रदर्शन में सुधार; साधारणतया निष्पादन की गति) में विभाजित किया गया है और कोड जनरेशन (संकलक) (कुछ लक्ष्य भाषा में समकक्ष प्रोग्राम का उत्पादन और आउटपुट; प्रायः सीपीयू का निर्देश सेट) आते हैं।

रन-टाइम प्रणाली

रन-टाइम प्रणाली प्रोग्रामिंग भाषा रनटाइम वातावरण और उनके घटकों के विकास को संदर्भित करता है, जिसमें आभासी मशीन, कचरा संग्रह (कंप्यूटर विज्ञान), और विदेशी फ़ंक्शन इंटरफ़ेस सम्मलित हैं।

पत्रिकाएं, प्रकाशन और सम्मेलन

प्रोग्रामिंग भाषाओं में अनुसंधान प्रस्तुत करने के लिए सम्मेलन प्राथमिक स्थल हैं। सबसे प्रसिद्ध सम्मेलनों में प्रोग्रामिंग भाषाओं के सिद्धांतों पर संगोष्ठी (पीओपीएल), प्रोग्रामिंग भाषा डिजाइन और कार्यान्वयन पर सम्मेलन (पीएलडीआई), कार्यात्मक प्रोग्रामिंग पर अंतर्राष्ट्रीय सम्मेलन (आईसीऍफ़पी),ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का अंतर्राष्ट्रीय सम्मलेन (ओ ओ पी एस एल ए) | प्रोग्रामिंग भाषाओं और ऑपरेटिंग प्रणालियों (ए एस पी एल ओ एस) के लिए वास्तुकला सहयोग पर अंतर्राष्ट्रीय सम्मेलन सम्मलित हैं।

पीएलटी अनुसंधान प्रकाशित करने वाली उल्लेखनीय पत्रिकाओं में प्रोग्रामिंग भाषा एवं प्रणाली (टीओपीएलएएस), जर्नल ऑफ फंक्शनल प्रोग्रामिंग (जेऍफ़पी), जर्नल ऑफ फंक्शनल एंड लॉजिक प्रोग्रामिंग, और उच्च-क्रम और प्रतीकात्मक संगणना पर एसीएम् सहभागिता सम्मलित हैं।

यह भी देखें

संदर्भ

  1. Abelson, Harold (1996). कंप्यूटर प्रोग्राम की संरचना और व्याख्या. Gerald Jay Sussman, Julie Sussman (2nd ed.). Cambridge, Mass.: MIT Press. ISBN 0-262-01153-0. OCLC 34576857.
  2. http://www.c2.com/cgi/wiki?ModelsOfComputation[bare URL]
  3. C. Böhm and W. Gross (1996). Introduction to the CUCH. In E. R. Caianiello (ed.), Automata Theory, p. 35-64/
  4. Benjamin C. Pierce. 2002. Types and Programming Languages. MIT Press, Cambridge, Massachusetts, USA.


अग्रिम पठन


बाहरी संबंध