प्रोग्रामिंग भाषा सिद्धांत

From Vigyanwiki
Revision as of 15:30, 7 May 2023 by alpha>Indicwiki (Created page with "{{Short description|Branch of computer science}} {{Redirect |Theory of programming|the branch of CS that deals with what problems can be solved|Theory of computation}} {{More...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
लोअरकेस ग्रीक वर्णमाला पत्र λ (लैम्ब्डा) प्रोग्रामिंग-भाषा सिद्धांत के क्षेत्र का एक अनौपचारिक प्रतीक है।[citation needed] यह प्रयोग लैम्ब्डा कैलकुलस से निकला है, जो 1930 के दशक में अलोंजो चर्च द्वारा शुरू की गई संगणना का एक मॉडल है और व्यापक रूप से प्रोग्रामिंग-भाषा शोधकर्ताओं द्वारा उपयोग किया जाता है। यह आवरण की शोभा बढ़ाता है[1] क्लासिक पाठ संरचना और कंप्यूटर प्रोग्राम की व्याख्या, और 1975 से 1980 के तथाकथित लैम्ब्डा पेपर्स का शीर्षक, गेराल्ड जे सुस्मान और गाय स्टील, योजना के डेवलपर्स (प्रोग्रामिंग भाषा) द्वारा लिखित।[jargon]

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

इतिहास

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

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

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

1950 के दशक

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

1960 के दशक

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

1970 के दशक

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

1980 के दशक

1990 के दशक

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

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

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

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

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

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

कार्यक्रम विश्लेषण और परिवर्तन

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

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

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

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

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

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

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

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

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

रन-टाइम सिस्टम

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

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

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

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

यह भी देखें

संदर्भ

  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.


अग्रिम पठन


बाहरी संबंध