संकलक: Difference between revisions
From Vigyanwiki
(→इतिहास) |
No edit summary |
||
| Line 6: | Line 6: | ||
कंप्यूटिंग, '''''संकलक (कंपाइलर)''''' एक कंप्यूटर प्रोग्राम है जो प्रोग्रामिंग भाषा (स्रोत भाषा) में लिखे गए कंप्यूटर कोड को अन्य भाषा '''टारगेट-भाषा''' में अनुवादित करता है। <nowiki>''</nowiki>संकलक<nowiki>''</nowiki> नाम मुख्य रूप से उन प्रोग्रामों के लिए उपयोग किया जाता है जो एक एक्जीक्यूटेबल प्रोग्राम बनाने के लिए एक उच्च-स्तरीय प्रोग्रामिंग भाषा से एक निम्न-स्तरीय प्रोग्रामिंग भाषा (जैसे असेंबली भाषा, ऑब्जेक्ट कोड, या मशीन कोड) में स्रोत कोड का अनुवाद करता है।<ref>{{cite web |author= |date= |title=एनसाइक्लोपीडिया: कंपाइलर की परिभाषा|url=https://www.pcmag.com/encyclopedia/term/compiler |url-status=live |access-date=2 July 2022 |work=PCMag.com}}</ref><ref name=dragon>[[Compilers: Principles, Techniques, and Tools]] by Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman - Second Edition, 2007</ref>{{rp|p1}}<रेफरी नाम = सुदर्शनम मलिक फुजिता 2002 पीपी। 506–515 >{{cite book | last1=SUDARSANAM | first1=ASHOK | last2=MALIK | first2=SHARAD | last3=FUJITA | first3=MASAHIRO | title=हार्डवेयर/सॉफ्टवेयर सह-डिजाइन में रीडिंग| chapter=A Retargetable Compilation Methodology for Embedded Digital Signal Processors Using a Machine-Dependent Code Optimization Library | publisher=Elsevier | year=2002 | doi=10.1016/b978-155860702-6/50045-4 | pages=506–515 | isbn=9781558607026 | quote=एक कंपाइलर एक कंप्यूटर प्रोग्राम है जो एक उच्च-स्तरीय भाषा (HLL) में लिखे गए प्रोग्राम का अनुवाद करता है, जैसे C, एक समतुल्य असेंबली लैंग्वेज प्रोग्राम [2] में। }}</रेफरी> | कंप्यूटिंग, '''''संकलक (कंपाइलर)''''' एक कंप्यूटर प्रोग्राम है जो प्रोग्रामिंग भाषा (स्रोत भाषा) में लिखे गए कंप्यूटर कोड को अन्य भाषा '''टारगेट-भाषा''' में अनुवादित करता है। <nowiki>''</nowiki>संकलक<nowiki>''</nowiki> नाम मुख्य रूप से उन प्रोग्रामों के लिए उपयोग किया जाता है जो एक एक्जीक्यूटेबल प्रोग्राम बनाने के लिए एक उच्च-स्तरीय प्रोग्रामिंग भाषा से एक निम्न-स्तरीय प्रोग्रामिंग भाषा (जैसे असेंबली भाषा, ऑब्जेक्ट कोड, या मशीन कोड) में स्रोत कोड का अनुवाद करता है।<ref>{{cite web |author= |date= |title=एनसाइक्लोपीडिया: कंपाइलर की परिभाषा|url=https://www.pcmag.com/encyclopedia/term/compiler |url-status=live |access-date=2 July 2022 |work=PCMag.com}}</ref><ref name=dragon>[[Compilers: Principles, Techniques, and Tools]] by Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman - Second Edition, 2007</ref>{{rp|p1}}<रेफरी नाम = सुदर्शनम मलिक फुजिता 2002 पीपी। 506–515 >{{cite book | last1=SUDARSANAM | first1=ASHOK | last2=MALIK | first2=SHARAD | last3=FUJITA | first3=MASAHIRO | title=हार्डवेयर/सॉफ्टवेयर सह-डिजाइन में रीडिंग| chapter=A Retargetable Compilation Methodology for Embedded Digital Signal Processors Using a Machine-Dependent Code Optimization Library | publisher=Elsevier | year=2002 | doi=10.1016/b978-155860702-6/50045-4 | pages=506–515 | isbn=9781558607026 | quote=एक कंपाइलर एक कंप्यूटर प्रोग्राम है जो एक उच्च-स्तरीय भाषा (HLL) में लिखे गए प्रोग्राम का अनुवाद करता है, जैसे C, एक समतुल्य असेंबली लैंग्वेज प्रोग्राम [2] में। }}</रेफरी> | ||
कई अलग-अलग प्रकार के संकलक हैं जो विभिन्न उपयोगी रूपों में आउटपुट उत्पन्न करते हैं। | कई अलग-अलग प्रकार के संकलक हैं जो विभिन्न उपयोगी रूपों में आउटपुट उत्पन्न करते हैं। [[पार संकलक|क्रॉस-कंपाइलर (व्यति अनुभाषक)]] एक अलग [[सेंट्रल प्रोसेसिंग यूनिट|सेंट्रल प्रोसेसिंग यूनिट (सीपीयू)]] या [[ऑपरेटिंग सिस्टम]] के लिए कोड तैयार करता है, जिस पर क्रॉस-कंपाइलर स्वयं सक्रिय है। एक [[बूटस्ट्रैप संकलक]] प्रायः एक अस्थायी संकलक होता है, जिसका उपयोग किसी भाषा के लिए अधिक स्थायी या अपेक्षाकृत अधिक अनुकूलित संकलक के संकलन के लिए किया जाता है। | ||
एक प्रोग्राम जो निम्न-स्तरीय भाषा से उच्च स्तर की भाषा में अनुवाद करता है, वह एक [[decompiler|''डिकंपाइलर'']] है जो संबंधित सॉफ़्टवेयर में सम्मिलित हैं, एक प्रोग्राम जो उच्च-स्तरीय भाषाओं के बीच अनुवाद करता है, जिसे सामान्यतः सोर्स-टू-सोर्स कंपाइलर (एस2एस) या ''ट्रांसपिलर'' कहा जाता है। एक भाषा [[पुनर्लेखन]] सामान्यतः एक ऐसा प्रोग्राम है जो भाषा में परिवर्तन के बिना [[अभिव्यक्ति (कंप्यूटर विज्ञान)]] के रूप का अनुवाद करता है। एक [[संकलक-संकलक]] एक संकलक है जो एक संकलक (या एक का भाग) बनाता है, प्रायः एक सामान्य और पुन: प्रयोज्य तरीके से ताकि कई अलग-अलग कंपाइलरों का उत्पादन करने में सक्षम हो सके। | एक प्रोग्राम जो निम्न-स्तरीय भाषा से उच्च स्तर की भाषा में अनुवाद करता है, वह एक [[decompiler|''डिकंपाइलर'']] है जो संबंधित सॉफ़्टवेयर में सम्मिलित हैं, एक प्रोग्राम जो उच्च-स्तरीय भाषाओं के बीच अनुवाद करता है, जिसे सामान्यतः सोर्स-टू-सोर्स कंपाइलर (एस2एस) या ''ट्रांसपिलर'' कहा जाता है। एक भाषा [[पुनर्लेखन]] सामान्यतः एक ऐसा प्रोग्राम है जो भाषा में परिवर्तन के बिना [[अभिव्यक्ति (कंप्यूटर विज्ञान)]] के रूप का अनुवाद करता है। एक [[संकलक-संकलक]] एक संकलक है जो एक संकलक (या एक का भाग) बनाता है, प्रायः एक सामान्य और पुन: प्रयोज्य तरीके से ताकि कई अलग-अलग कंपाइलरों का उत्पादन करने में सक्षम हो सके। | ||
| Line 17: | Line 17: | ||
== इतिहास == | == इतिहास == | ||
{{Main|संकलक निर्माण का इतिहास}} | {{Main|संकलक निर्माण का इतिहास}} | ||
[[File:Compiler.svg |upright=1.5|thumb |एक विशिष्ट बहु-भाषा, बहु-टारगेट संकलक के संचालन का आरेख]]वैज्ञानिकों, गणितज्ञों और इंजीनियरों द्वारा विकसित सैद्धांतिक कंप्यूटिंग अवधारणाओं ने द्वितीय विश्व युद्ध के समय डिजिटल आधुनिक कंप्यूटिंग विकास का आधार बनाया। प्राथमिक बाइनरी भाषाएं विकसित हुईं क्योंकि डिजिटल डिवाइस केवल एक और शून्य और अंतर्निहित मशीन संरचना में परिपथ स्वरूप को स्वीकार करना हैं। 1940 के दशक के अंत में, कंप्यूटर संरचना के अधिक व्यवहार्य अपाकर्षण के प्रस्ताव के लिए असेंबली भाषा बनाई गई थीं। प्रारम्भिक कंप्यूटरों की सीमित मुख्य मेमोरी क्षमता के कारण जब पहला संकलक डिजाइन किया गया था तो अधिकतम तकनीकी चुनौतियों का सामना करना पड़ा था। इसलिए, संकलन प्रक्रिया को कई छोटे प्रोग्रामों में विभाजित करने की आवश्यकता थी। फ्रंट एंड प्रोग्राम टारगेट कोड उत्पन्न करने के लिए बैक एंड प्रोग्राम द्वारा उपयोग किए जाने वाले विश्लेषण उत्पादों का उत्पादन करते हैं। जैसा कि कंप्यूटर प्रौद्योगिकी ने अधिक संसाधन प्रदान किए, संकलक डिजाइन संकलन प्रक्रिया के साथ अपेक्षाकृत अधिक संरेखित हो सकते हैं। | [[File:Compiler.svg |upright=1.5|thumb |एक विशिष्ट बहु-भाषा, बहु-टारगेट संकलक के संचालन का आरेख]]वैज्ञानिकों, गणितज्ञों और इंजीनियरों द्वारा विकसित सैद्धांतिक कंप्यूटिंग (अभिकलन) अवधारणाओं ने द्वितीय विश्व युद्ध के समय डिजिटल आधुनिक कंप्यूटिंग विकास का आधार बनाया। प्राथमिक बाइनरी भाषाएं विकसित हुईं क्योंकि डिजिटल डिवाइस केवल एक और शून्य और अंतर्निहित मशीन संरचना में परिपथ स्वरूप को स्वीकार करना हैं। 1940 के दशक के अंत में, कंप्यूटर संरचना के अधिक व्यवहार्य अपाकर्षण के प्रस्ताव के लिए असेंबली भाषा बनाई गई थीं। प्रारम्भिक कंप्यूटरों की सीमित मुख्य मेमोरी क्षमता के कारण जब पहला संकलक डिजाइन किया गया था तो अधिकतम तकनीकी चुनौतियों का सामना करना पड़ा था। इसलिए, संकलन प्रक्रिया को कई छोटे प्रोग्रामों में विभाजित करने की आवश्यकता थी। फ्रंट एंड प्रोग्राम टारगेट कोड उत्पन्न करने के लिए बैक एंड प्रोग्राम द्वारा उपयोग किए जाने वाले विश्लेषण उत्पादों का उत्पादन करते हैं। जैसा कि कंप्यूटर प्रौद्योगिकी ने अधिक संसाधन प्रदान किए, संकलक डिजाइन संकलन प्रक्रिया के साथ अपेक्षाकृत अधिक संरेखित हो सकते हैं। | ||
सामान्यतः एक प्रोग्रामर के लिए उच्च-स्तरीय भाषा का उपयोग करना अधिक उत्पादक होता है, इसलिए उच्च-स्तरीय भाषाओं का विकास स्वाभाविक रूप से डिजिटल कंप्यूटर द्वारा प्रदान की जाने वाली क्षमताओं से होता है। उच्च-स्तरीय भाषाएँ [[औपचारिक भाषा]]एँ हैं जिन्हें उनके सिंटैक्स (वाक्य-विन्यास) और सिमेंटिक [[शब्दार्थ (कंप्यूटर विज्ञान)|(शब्दार्थ (कंप्यूटर विज्ञान))]] द्वारा पूरी तरह से परिभाषित किया जाता है जो उच्च-स्तरीय भाषा संरचना का निर्माण करते हैं। इन औपचारिक भाषाओं के तत्वों में सम्मिलित हैं: | सामान्यतः एक प्रोग्रामर के लिए उच्च-स्तरीय भाषा का उपयोग करना अधिक उत्पादक होता है, इसलिए उच्च-स्तरीय भाषाओं का विकास स्वाभाविक रूप से डिजिटल कंप्यूटर द्वारा प्रदान की जाने वाली क्षमताओं से होता है। उच्च-स्तरीय भाषाएँ [[औपचारिक भाषा]]एँ हैं जिन्हें उनके सिंटैक्स (वाक्य-विन्यास) और सिमेंटिक [[शब्दार्थ (कंप्यूटर विज्ञान)|(शब्दार्थ (कंप्यूटर विज्ञान))]] द्वारा पूरी तरह से परिभाषित किया जाता है जो उच्च-स्तरीय भाषा संरचना का निर्माण करते हैं। इन औपचारिक भाषाओं के तत्वों में सम्मिलित हैं: | ||
| Line 45: | Line 45: | ||
</ref> हालांकि A-0 संकलक एक पूर्ण संकलक की आधुनिक धारणा की तुलना में एक लोडर या लिंकर के रूप में अधिक कार्य करता है। | </ref> हालांकि A-0 संकलक एक पूर्ण संकलक की आधुनिक धारणा की तुलना में एक लोडर या लिंकर के रूप में अधिक कार्य करता है। | ||
* 1954-1957: [[आईबीएम]] में जॉन बैकस के नेतृत्व में एक टीम ने फोरट्रान विकसित किया जिसे सामान्यतः पहली उच्च-स्तरीय भाषा माना जाता है। 1957 में, उन्होंने एक फोरट्रान संकलक पूरा किया जिसे सामान्यतः पहले स्पष्ट रूप से पूर्ण संकलक के रूप में प्रस्तुत करने का श्रेय दिया जाता है। | * 1954-1957: [[आईबीएम]] में जॉन बैकस के नेतृत्व में एक टीम ने फोरट्रान विकसित किया जिसे सामान्यतः पहली उच्च-स्तरीय भाषा माना जाता है। 1957 में, उन्होंने एक फोरट्रान संकलक पूरा किया जिसे सामान्यतः पहले स्पष्ट रूप से पूर्ण संकलक के रूप में प्रस्तुत करने का श्रेय दिया जाता है। | ||
* 1959: | * 1959: डेटाप्रणाली भाषा (कोडासिल) पर सम्मेलन ने के विकास की प्रारंभ की। कोबोल डिज़ाइन A-0 और फ्लो-मैटिक पर प्राप्त हुआ। 1960 के दशक के प्रारंभ तक कोबोल को कई संरचना पर संकलित किया गया था। | ||
* 1958-1960: [[Algol 58|एल्गोल 58]], [[ALGOL 60|एल्गोल 60]] का अग्रगामी था। एल्गोल 58 ने [[ब्लॉक (प्रोग्रामिंग)]] को प्रारंभ किया, जो [[संरचित प्रोग्रामिंग]] के उदय में एक महत्वपूर्ण प्रगति थी। एल्गोल 60 [[नेस्टेड समारोह|नेस्टेड फ़ंक्शन]] परिभाषाओं को [[शाब्दिक गुंजाइश|लेक्सिकल स्कोप]] के साथ क्रियान्वित करने वाली पहली भाषा थी। इसमें [[प्रत्यावर्तन|पुनरावर्तन]] सम्मिलित था। इसका सिंटैक्स बैकस-नौर फॉर्म का उपयोग करके परिभाषित किया गया था। एल्गोल 60 ने इसके बाद आने वाली कई भाषाओं को प्रेरित किया। [[टोनी होरे]] ने टिप्पणी की: ... यह न केवल अपने पूर्ववर्तियों पर बल्कि इसके लगभग सभी पूर्ववर्ती में भी सुधार था।<ref>{{cite web |first=C.A.R. |last=Hoare |title=प्रोग्रामिंग लैंग्वेज डिजाइन पर संकेत|date=December 1973 |url=http://www.eecs.umich.edu/~bchandra/courses/papers/Hoare_Hints.pdf |archive-url=https://ghostarchive.org/archive/20221010/http://www.eecs.umich.edu/~bchandra/courses/papers/Hoare_Hints.pdf |archive-date=2022-10-10 |url-status=live |page=27}} (This statement is sometimes erroneously attributed to [[Edsger W. Dijkstra]], also involved in implementing the first ALGOL 60 compiler.)</ref><ref name="r3rs">{{cite web |editor1-first=Jonathan |editor1-last=Rees |editor2-first=William |editor2-last=Clinger |author-first1=Hal |author-last1=Abelson |author-first2=R. K. |author-last2=Dybvig |title=एल्गोरिदमिक भाषा योजना पर संशोधित (3) रिपोर्ट, (ALGOL 60 की स्मृति को समर्पित)| url=http://groups.csail.mit.edu/mac/ftpdir/scheme-reports/r3rs-html/r3rs_toc.html | * 1958-1960: [[Algol 58|एल्गोल 58]], [[ALGOL 60|एल्गोल 60]] का अग्रगामी था। एल्गोल 58 ने [[ब्लॉक (प्रोग्रामिंग)]] को प्रारंभ किया, जो [[संरचित प्रोग्रामिंग]] के उदय में एक महत्वपूर्ण प्रगति थी। एल्गोल 60 [[नेस्टेड समारोह|नेस्टेड फ़ंक्शन]] परिभाषाओं को [[शाब्दिक गुंजाइश|लेक्सिकल स्कोप]] के साथ क्रियान्वित करने वाली पहली भाषा थी। इसमें [[प्रत्यावर्तन|पुनरावर्तन]] सम्मिलित था। इसका सिंटैक्स बैकस-नौर फॉर्म का उपयोग करके परिभाषित किया गया था। एल्गोल 60 ने इसके बाद आने वाली कई भाषाओं को प्रेरित किया। [[टोनी होरे]] ने टिप्पणी की: ... यह न केवल अपने पूर्ववर्तियों पर बल्कि इसके लगभग सभी पूर्ववर्ती में भी सुधार था।<ref>{{cite web |first=C.A.R. |last=Hoare |title=प्रोग्रामिंग लैंग्वेज डिजाइन पर संकेत|date=December 1973 |url=http://www.eecs.umich.edu/~bchandra/courses/papers/Hoare_Hints.pdf |archive-url=https://ghostarchive.org/archive/20221010/http://www.eecs.umich.edu/~bchandra/courses/papers/Hoare_Hints.pdf |archive-date=2022-10-10 |url-status=live |page=27}} (This statement is sometimes erroneously attributed to [[Edsger W. Dijkstra]], also involved in implementing the first ALGOL 60 compiler.)</ref><ref name="r3rs">{{cite web |editor1-first=Jonathan |editor1-last=Rees |editor2-first=William |editor2-last=Clinger |author-first1=Hal |author-last1=Abelson |author-first2=R. K. |author-last2=Dybvig |title=एल्गोरिदमिक भाषा योजना पर संशोधित (3) रिपोर्ट, (ALGOL 60 की स्मृति को समर्पित)| url=http://groups.csail.mit.edu/mac/ftpdir/scheme-reports/r3rs-html/r3rs_toc.html | ||
|access-date=2009-10-20 | |access-date=2009-10-20 | ||
|display-authors=etal}}</ref> | |display-authors=etal}}</ref> | ||
* 1958-1962: एमआईटी में जॉन मैक्कार्थी (कंप्यूटर वैज्ञानिक) ने एलआईएसपी (प्रोग्रामिंग भाषा) डिजाइन किया।<ref>"[https://dspace.mit.edu/bitstream/handle/1721.1/6096/AIM-008.pdf?sequence=2 Recursive Functions of Symbolic Expressions and Their Computation by Machine]", Communications of the ACM, April 1960</ref> प्रतीक प्रसंस्करण क्षमताओं ने कृत्रिम बुद्धिमत्ता अनुसंधान के लिए उपयोगी सुविधाएँ प्रदान कीं। 1962 में, एलआईएसपी 1.5 प्रकाशन ने कुछ उपकरणों का उल्लेख किया: स्टीफन रसेल और डैनियल जे. एडवर्ड्स द्वारा लिखित एक अनुवादक, टिम हार्ट और माइक लेविन द्वारा लिखित एक संकलक और असेंबलर।<ref>{{cite book |title=लिस्प 1.5 प्रोग्रामर मैनुअल|publisher=The MIT Press |last1=McCarthy |first1=John |last2=Abrahams |first2=Paul W. |last3=Edwards |first3=Daniel J. |last4=Hart |first4=Timothy P. |last5=Levin |first5=Michael I. |url=https://books.google.com/books?id=68j6lEJjMQwC&pg=PR1 |isbn=9780262130110 |year=1965}}</ref> | * 1958-1962: एमआईटी में जॉन मैक्कार्थी (कंप्यूटर वैज्ञानिक) ने एलआईएसपी (प्रोग्रामिंग भाषा) डिजाइन किया।<ref>"[https://dspace.mit.edu/bitstream/handle/1721.1/6096/AIM-008.pdf?sequence=2 Recursive Functions of Symbolic Expressions and Their Computation by Machine]", Communications of the ACM, April 1960</ref> प्रतीक प्रसंस्करण क्षमताओं ने कृत्रिम बुद्धिमत्ता अनुसंधान के लिए उपयोगी सुविधाएँ प्रदान कीं। 1962 में, एलआईएसपी 1.5 प्रकाशन ने कुछ उपकरणों का उल्लेख किया: स्टीफन रसेल और डैनियल जे. एडवर्ड्स द्वारा लिखित एक अनुवादक, टिम हार्ट और माइक लेविन द्वारा लिखित एक संकलक और असेंबलर।<ref>{{cite book |title=लिस्प 1.5 प्रोग्रामर मैनुअल|publisher=The MIT Press |last1=McCarthy |first1=John |last2=Abrahams |first2=Paul W. |last3=Edwards |first3=Daniel J. |last4=Hart |first4=Timothy P. |last5=Levin |first5=Michael I. |url=https://books.google.com/books?id=68j6lEJjMQwC&pg=PR1 |isbn=9780262130110 |year=1965}}</ref> | ||
प्रारम्भिक ऑपरेटिंग सिस्टम और सॉफ्टवेयर असेंबली भाषा में लिखे गए थे। 1960 और 1970 के दशक के प्रारंभ में, | प्रारम्भिक ऑपरेटिंग सिस्टम और सॉफ्टवेयर असेंबली भाषा में लिखे गए थे। 1960 और 1970 के दशक के प्रारंभ में,प्रणाली प्रोग्रामिंग के लिए उच्च-स्तरीय भाषाओं का उपयोग संसाधन सीमाओं के कारण अभी भी विवादास्पद था। हालांकि, कई शोध और उद्योग प्रयासों ने उच्च-स्तरीयप्रणाली [[बी (प्रोग्रामिंग भाषा)|प्रोग्रामिंग भाषाओ]] की ओर परिवर्तन प्रारंभ किया, उदाहरण के लिए, [[BCPL|बीसीपीएल]], [[BLISS|ब्लिस]], बी (प्रोग्रामिंग भाषा), और सी (प्रोग्रामिंग भाषा)। | ||
कैम्ब्रिज विश्वविद्यालय में [[मार्टिन रिचर्ड्स (कंप्यूटर वैज्ञानिक)]] द्वारा 1966 में डिज़ाइन किया गया बीसीपीएल (बेसिक संयुक्त प्रोग्रामिंग भाषा) मूल रूप से एक संकलक लेखन उपकरण के रूप में विकसित किया गया था।<ref>"[http://prog.vub.ac.be/~tjdhondt/ESL/BCPL_to_Cfront_files/p557-richards.pdf BCPL: A tool for compiler writing and system programming]" M. Richards, University Mathematical Laboratory Cambridge, England 1969</ref> कई संकलक क्रियान्वित किए गए हैं, रिचर्ड्स की पुस्तक भाषा और उसके संकलक को अंतर्दृष्टि प्रदान करती है।<ref>BCPL: The Language and Its Compiler, M Richards, Cambridge University Press (first published 31 December 1981)</ref> बीसीपीएल न केवल एक | कैम्ब्रिज विश्वविद्यालय में [[मार्टिन रिचर्ड्स (कंप्यूटर वैज्ञानिक)]] द्वारा 1966 में डिज़ाइन किया गया बीसीपीएल (बेसिक संयुक्त प्रोग्रामिंग भाषा) मूल रूप से एक संकलक लेखन उपकरण के रूप में विकसित किया गया था।<ref>"[http://prog.vub.ac.be/~tjdhondt/ESL/BCPL_to_Cfront_files/p557-richards.pdf BCPL: A tool for compiler writing and system programming]" M. Richards, University Mathematical Laboratory Cambridge, England 1969</ref> कई संकलक क्रियान्वित किए गए हैं, रिचर्ड्स की पुस्तक भाषा और उसके संकलक को अंतर्दृष्टि प्रदान करती है।<ref>BCPL: The Language and Its Compiler, M Richards, Cambridge University Press (first published 31 December 1981)</ref> बीसीपीएल न केवल एक प्रभावशालीप्रणाली प्रोग्रामिंग भाषा थी जो अभी भी शोध में प्रयोग की जाती है<ref>The BCPL Cintsys and Cintpos User Guide, M. Richards, 2017</ref> बल्कि बी और सी भाषाओं के डिजाइन के लिए एक आधार भी प्रदान किया। | ||
ब्लिस (सिस्टम सॉफ्टवेयर के कार्यान्वयन के लिए मूल भाषा) को डिजिटल उपकरण संस्था (डीईसी) पीडीपी-10 कंप्यूटर के लिए डब्ल्यूए वुल्फ कार्नेगी मेलन विश्वविद्यालय (सीएमयू) शोध समूह द्वारा विकसित किया गया था। सीएमयू समूह ने एक साल बाद 1970 में ब्लिस-11 संकलक विकसित किया। | ब्लिस (सिस्टम सॉफ्टवेयर के कार्यान्वयन के लिए मूल भाषा) को डिजिटल उपकरण संस्था (डीईसी) पीडीपी-10 कंप्यूटर के लिए डब्ल्यूए वुल्फ कार्नेगी मेलन विश्वविद्यालय (सीएमयू) शोध समूह द्वारा विकसित किया गया था। सीएमयू समूह ने एक साल बाद 1970 में ब्लिस-11 संकलक विकसित किया। | ||
[[मॉलटिक्स]] (मल्टीप्लेक्स सूचना और कंप्यूटिंग सेवा), एक टाइम-शेयरिंग ऑपरेटिंग सिस्टम परियोजना, जिसमें एमआईटी, [[बेल लैब्स]], [[जनरल इलेक्ट्रिक]] (बाद में [[हनीवेल]]) सम्मिलित थे और इसका नेतृत्व एमआईटी के फर्नांडो कॉर्बेटो ने किया था।।<ref>{{cite web |first1=F. J. |last1=Corbató |last2=Vyssotsky |first2=V. A. |title=मल्टिक्स सिस्टम का परिचय और अवलोकन|work=1965 Fall Joint Computer Conference |publisher=Multicians.org |url=https://multicians.org/fjcc1.html}}</ref> मल्टिक्स आईबीएम और आईबीएम उपयोगकर्ता समूह द्वारा विकसित पीएल/आई भाषा में लिखा गया था।<ref>Report II of the SHARE Advanced Language Development Committee, 25 June 1964</ref> बीएम का लक्ष्य व्यवसाय, वैज्ञानिक | [[मॉलटिक्स]] (मल्टीप्लेक्स सूचना और कंप्यूटिंग सेवा), एक टाइम-शेयरिंग ऑपरेटिंग सिस्टम परियोजना, जिसमें एमआईटी, [[बेल लैब्स]], [[जनरल इलेक्ट्रिक]] (बाद में [[हनीवेल]]) सम्मिलित थे और इसका नेतृत्व एमआईटी के फर्नांडो कॉर्बेटो ने किया था।।<ref>{{cite web |first1=F. J. |last1=Corbató |last2=Vyssotsky |first2=V. A. |title=मल्टिक्स सिस्टम का परिचय और अवलोकन|work=1965 Fall Joint Computer Conference |publisher=Multicians.org |url=https://multicians.org/fjcc1.html}}</ref> मल्टिक्स आईबीएम और आईबीएम उपयोगकर्ता समूह द्वारा विकसित पीएल/आई भाषा में लिखा गया था।<ref>Report II of the SHARE Advanced Language Development Committee, 25 June 1964</ref> बीएम का लक्ष्य व्यवसाय, वैज्ञानिक औरप्रणाली प्रोग्रामिंग आवश्यकताओं को पूरा करना था ऐसी अन्य भाषाएँ थीं जिन पर विचार किया जा सकता था लेकिन पीएल/आई ने सबसे पूर्ण समाधान की प्रस्तुत की, तथापि इसे क्रियान्वित नहीं किया गया था।<ref>Multicians.org "The Choice of PL/I" article, Editor /tom Van Vleck</ref> मल्टिक्स परियोजना के पहले कुछ वर्षों के लिए, बेल लैब्स से डॉग मैक्लोरी और बॉब मॉरिस द्वारा अर्ली पीएल/आई (ईपीएल) संकलक के साथ भाषा के एक उपसमुच्चय को असेंबली भाषा में संकलित किया जा सकता है।<ref>"PL/I As a Tool for System Programming", F.J. Corbato, Datamation 6 May 1969 issue</ref> ईपीएल ने परियोजना का तब तक समर्थन किया जब तक कि पूर्ण पीएल/आई के लिए बूट-स्ट्रैपिंग संकलक विकसित नहीं किया जा सका।<ref>"[https://www.computer.org/csdl/proceedings/afips/1969/5074/00/50740187.pdf The Multics PL/1 Compiler]", R. A. Freiburghouse, GE, Fall Joint Computer Conference 1969</ref> | ||
बेल लैब्स ने 1969 में मल्टिक्स परियोजना को छोड़ दिया, और [[डेनिस रिची]] और [[केन थॉम्पसन]] द्वारा लिखित बीसीपीएल अवधारणाओं पर आधारित | बेल लैब्स ने 1969 में मल्टिक्स परियोजना को छोड़ दिया, और [[डेनिस रिची]] और [[केन थॉम्पसन]] द्वारा लिखित बीसीपीएल अवधारणाओं पर आधारित एकप्रणाली प्रोग्रामिंग भाषा बी (प्रोग्रामिंग भाषा) विकसित की। रिची ने बी के लिए बूट-स्ट्रैपिंग संकलक बनाया और बी में पीडीपी-7 के लिए [[यूनिक्स]] (यूनिप्लेक्स सूचना और कंप्यूटिंग सेवा) ऑपरेटिंगप्रणाली लिखा। अंततः यूनिक्स वर्तनी यूनिक्स बन गया। | ||
बेल लैब्स ने बी और बीसीपीएल के आधार पर सी (प्रोग्रामिंग भाषा) का विकास और विस्तार प्रारंभ किया। बीसीपीएल संकलक को बेल लैब्स द्वारा मल्टिक्स में ले जाया गया था और बेल लैब्स में बीसीपीएल एक मुख्य भाषा थी।<ref>Dennis M. Ritchie, "[https://www.bell-labs.com/usr/dmr/www/chist.pdf The Development of the C Language]", ACM Second History of Programming Languages Conference, April 1993</ref> प्रारंभ में, बेल लैब्स के बी संकलक के लिए एक फ्रंट-एंड प्रोग्राम का उपयोग किया गया था, जब सी संकलक विकसित किया गया था। 1971 में, एक नए पीडीपी-11 ने बी को विस्तार परिभाषित करने और संकलक को पुनः लिखने के लिए संसाधन प्रदान किया। 1973 तक सी भाषा का डिजाइन अनिवार्य रूप से पूरा हो गया था और पीडीपी-11 के लिए यूनिक्स कर्नेल को सी में पुनः लिखा गया था। स्टीव जॉनसन ने पोर्टेबल सी संकलक (पीसीसी) का विकास प्रारंभ किया ताकि नई मशीनों के लिए सी संकलक के पुनः प्राप्ति का समर्थन किया जा सके।<ref>S.C. Johnson, "a Portable C Compiler: Theory and Practice", 5th ACM POPL Symposium, January 1978</ref><ref>A. Snyder, [https://apps.dtic.mil/sti/pdfs/ADA010218.pdf A Portable Compiler for the Language C], MIT, 1974.</ref> | |||
[[वस्तु उन्मुख कार्यकर्म|वस्तु उन्मुख प्रोग्रामिंग]] (ओओपी) ने अनुप्रयोग विकास और संरक्षण के लिए कुछ दिलचस्प संभावनाएं प्रस्तुत कीं। [[वस्तु उन्मुख कार्यकर्म|वस्तु उन्मुख प्रोग्रामिंग]] अवधारणाएँ और पीछे जाती हैं लेकिन [[LISP|एलआईएसपी]] और [[सिमुला]] भाषा विज्ञान का भाग थीं।<ref>K. Nygaard, University of Oslo, Norway, "[http://www.cs.kent.edu/~durand/CS43101Fall2004/resources/BasicConceptsOOP-Nygaard1986.pdf Basic Concepts in Object Oriented Programming]", SIGPLAN Notices V21, 1986</ref> बेल लैब्स में, [[C++|सी++]] का विकास ओओपी में रुचि लेने लगा।<ref>B. Stroustrup: "What is Object-Oriented Programming?" Proceedings 14th ASU Conference, 1986.</ref> सी++ का पहली बार उपयोग 1980 मेंप्रणाली प्रोग्रामिंग के लिए किया गया था। प्रारंभिक डिजाइन ने सिमुला अवधारणाओं के साथ सी भाषा प्रणाली प्रोग्रामिंग क्षमताओं का लाभ उठाया। ऑब्जेक्ट-ओरिएंटेड सुविधाओं को 1983 में जोड़ा गया था।<ref>Bjarne Stroustrup, "An Overview of the C++ Programming Language", Handbook of Object Technology (Editor: Saba Zamir, {{ISBN |0-8493-3135-8}})</ref> सीफ्रंट प्रोग्राम ने सी84 भाषा संकलक के लिए सी++ फ्रंट-एंड क्रियान्वित किया और बाद के वर्षों में सी++ की लोकप्रियता बढ़ने के साथ कई सी++ संकलक विकसित किए गए। | |||
कई एप्लिकेशन डोमेन में, उच्च-स्तरीय भाषा का उपयोग करने का विचार शीघ्र से रुचि में आ गया। नई प्रोग्रामिंग भाषाओं द्वारा समर्थित विस्तारित कार्यक्षमता और कंप्यूटर संरचना की बढ़ती जटिलता के कारण, संकलक अधिक जटिल हो गए। | |||
[[DARPA|डीएआरपीए]] (रक्षा अग्रिम अनुसंधान परियोजना संस्था) ने 1970 में वुल्फ की सीएमयू अनुसंधान समूह के साथ एक संकलक परियोजना प्रायोजित किया। उत्पादन गुणवत्ता संकलक-संकलक [[PQCC|पीक्यूसीसी]] डिज़ाइन स्रोत भाषा और लक्ष्य की औपचारिक परिभाषाओं से उत्पादन गुणवत्ता संकलक (पीक्यूसी) तैयार करेगा।<ref>Leverett, Cattell, Hobbs, Newcomer, Reiner, Schatz, Wulf: "An Overview of the Production Quality Compiler-Compiler Project", CMU-CS-89-105, 1979</ref> पीक्यूसीसी ने अधिक सफलता के बिना पार्सर उत्पादक (जैसे, [[Yacc|वाईएसीसी]] ) के रूप में पारंपरिक अर्थ से अधिक संकलक-संकलक शब्द का विस्तार करने की कोशिश की। पीक्यूसीसी को अधिक उपयुक्त रूप से एक संकलक उत्पादक के रूप में संदर्भित किया जा सकता है। | |||
</ref> | |||
कोड जनरेशन प्रक्रिया में पीक्यूसीसी अनुसंधान वास्तव में स्वचालित संकलक-लेखन प्रणाली बनाने का प्रयास करता है। पीक्यूसी के प्रयास ने चरण संरचना की खोज की और परिकल्पित किया। ब्लिस-11 संकलक ने प्रारंभिक संरचना प्रदान की।<ref>W. Wulf, K. Nori, "[https://apps.dtic.mil/sti/pdfs/ADA125935.pdf Delayed binding in PQCC generated compilers]", CMU Research Showcase Report, CMU-CS-82-138, 1982 | |||
</ref> चरणों में विश्लेषण (फ्रंट एंड), आभासी मशीन (मध्य अंत) में मध्यवर्ती अनुवाद और लक्ष्य (बैक एंड) में अनुवाद सम्मिलित हैं। मध्यवर्ती प्रतिनिधित्व में भाषा विशिष्ट निर्माणों को संचलन के लिए पीक्यूसीसी अनुसंधान के लिए टीसीओएल विकसित किया गया था।<ref>Joseph M. Newcomer, David Alex Lamb, Bruce W. Leverett, Michael Tighe, William A. Wulf - Carnegie-Mellon University and David Levine, Andrew H. Reinerit - Intermetrics: "TCOL Ada: Revised Report on An Intermediate Representation for the DOD Standard Programming Language", 1979 | |||
</ref> टीसीओएल के विभिन्न रूपों ने विभिन्न भाषाओं का समर्थन किया। पीक्यूसीसी परियोजना ने स्वचालित संकलक निर्माण की तकनीकों की जांच की। डिजाइन अवधारणाएं (1995 से, वस्तु-उन्मुख [[एडा (प्रोग्रामिंग भाषा)|(प्रोग्रामिंग भाषा)]] एडीए (प्रोग्रामिंग भाषा) के लिए संकलक और संकलक के अनुकूलन में उपयोगी प्रमाणित हुईं। | |||
उच्च-स्तरीय भाषाओं ने संकलक अनुसंधान और विकास को चलाना | एडीए स्टोनमैन दस्तावेज़{{citation needed|date=December 2021}} कर्नेल (केएपीएसई) और न्यूनतम (एमएपीएसई) के साथ प्रोग्राम समर्थन पर्यावरण (एपीएसई) को औपचारिक रूप दिया। एक एडीए अनुवादक एनवाईयू/ईडी ने अमेरिकी राष्ट्रीय मानक संस्थान (एएनएसआई) और अंतर्राष्ट्रीय मानक संगठन (आईएसओ) के साथ विकास और मानकीकरण प्रयासों का समर्थन किया। अमेरिकी सैन्य सेवाओं द्वारा आरंभिक एडीए संकलक विकास में स्टोनमैन दस्तावेज़ की तर्ज पर एक पूर्ण एकीकृत डिजाइन वातावरण में संकलक सम्मिलित थे। सेना और नौसेना ने एडीए भाषा प्रणाली (एएलएस) परियोजना पर कार्य किया, जो डीईसी/वैक्स संरचना को योजनाबद्ध था, जबकि वायु सेना ने एडीए एकीकृत वातावरण (एआईई) पर आईबीएम 370 श्रृंखला को योजनाबद्ध किया। जबकि परियोजनाओं ने वांछित परिणाम प्रदान नहीं किए, उन्होंने एडीए विकास पर समग्र प्रयास में योगदान दिया।<ref>William A. Whitaker, "Ada - the project: the DoD High Order Working Group", ACM SIGPLAN Notices (Volume 28, No. 3, March 1991)</ref> | ||
जब 50 के दशक के उत्तरार्ध में संकलन का क्षेत्र प्रारंभ हुआ, तो इसका ध्यान उच्च-स्तरीय भाषा प्रोग्रामों के मशीन कोड में अनुवाद तक सीमित था ... संकलक क्षेत्र कंप्यूटर संरचना, प्रोग्रामिंग भाषाओं, औपचारिक तरीकों, सॉफ्टवेयर सहित अन्य विषयों के साथ | |||
अन्य एडीए संकलक प्रयास ब्रिटेन में यॉर्क विश्वविद्यालय में और जर्मनी में कार्लज़ूए विश्वविद्यालय में प्राप्त थे। अमेरिका में, वर्डिक्स (बाद में तर्कसंगत द्वारा अधिग्रहित) ने वर्डिक्स एडीए विकास प्रणाली (वीएडीएस) को सेना को दिया। वीएडीएस ने एक संकलक सहित विकास उपकरण का एक समूह प्रदान किया। यूनिक्स/वीएडीएस को विभिन्न प्रकार के यूनिक्स प्लेटफार्मों पर आयोजित किया जा सकता है जैसे डीईसी अल्ट्रिक्स और सन 3/60 सोलारिस को सेना सीईसीओएम मूल्यांकन में मोटोरोला 68020 पर योजनाबद्ध किया गया है।<ref>CECOM Center for Software Engineering Advanced Software Technology, "Final Report - Evaluation of the ACEC Benchmark Suite for Real-Time Applications", AD-A231 968, 1990</ref> शीघ्र ही कई एडीए संकलक उपलब्ध थे जो एडीए सत्यापन परीक्षण पास कर चुके थे। मुफ़्त सॉफ्टवेयर संस्थान जीएनयू परियोजना ने [[जीएनयू संकलक संग्रह]] (जीसीसी) विकसित किया है जो कई भाषाओं और लक्ष्यों का समर्थन | |||