संकलक: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 8: Line 8:
कई अलग-अलग प्रकार के संकलक हैं जो विभिन्न उपयोगी रूपों में आउटपुट उत्पन्न करते हैं। एक [[पार संकलक]] एक अलग [[सेंट्रल प्रोसेसिंग यूनिट|सेंट्रल प्रोसेसिंग यूनिट (सीपीयू)]] या [[ऑपरेटिंग सिस्टम]] के लिए कोड तैयार करता है, जिस पर क्रॉस-कंपाइलर स्वयं चलता है। एक [[बूटस्ट्रैप संकलक]] प्रायः एक अस्थायी संकलक होता है, जिसका उपयोग किसी भाषा के लिए अधिक स्थायी या अपेक्षाकृत अधिक अनुकूलित संकलक के संकलन के लिए किया जाता है।
कई अलग-अलग प्रकार के संकलक हैं जो विभिन्न उपयोगी रूपों में आउटपुट उत्पन्न करते हैं। एक [[पार संकलक]] एक अलग [[सेंट्रल प्रोसेसिंग यूनिट|सेंट्रल प्रोसेसिंग यूनिट (सीपीयू)]] या [[ऑपरेटिंग सिस्टम]] के लिए कोड तैयार करता है, जिस पर क्रॉस-कंपाइलर स्वयं चलता है। एक [[बूटस्ट्रैप संकलक]] प्रायः एक अस्थायी संकलक होता है, जिसका उपयोग किसी भाषा के लिए अधिक स्थायी या अपेक्षाकृत अधिक अनुकूलित संकलक के संकलन के लिए किया जाता है।


संबंधित सॉफ़्टवेयर में सम्मिलित हैं, एक प्रोग्राम जो निम्न-स्तरीय भाषा से उच्च स्तर की भाषा में अनुवाद करता है, वह एक [[decompiler]] है; एक प्रोग्राम जो उच्च-स्तरीय भाषाओं के बीच अनुवाद करता है, जिसे सामान्यतः [[स्रोत से स्रोत संकलक]] या ट्रांसपिलर कहा जाता है। एक भाषा [[पुनर्लेखन]] सामान्यतः एक ऐसा प्रोग्राम है जो भाषा में बदलाव के बिना [[अभिव्यक्ति (कंप्यूटर विज्ञान)]] के रूप का अनुवाद करता है। एक [[संकलक-संकलक]] एक संकलक है जो एक संकलक (या एक का भाग) बनाता है, प्रायः एक सामान्य और पुन: प्रयोज्य तरीके से ताकि कई अलग-अलग कंपाइलरों का उत्पादन करने में सक्षम हो सके।
एक प्रोग्राम जो निम्न-स्तरीय भाषा से उच्च स्तर की भाषा में अनुवाद करता है, वह एक [[decompiler|''डिकंपाइलर'']] है जो संबंधित सॉफ़्टवेयर में सम्मिलित हैं, एक प्रोग्राम जो उच्च-स्तरीय भाषाओं के बीच अनुवाद करता है, जिसे सामान्यतः [[स्रोत से स्रोत संकलक]] या ''ट्रांसपिलर''  कहा जाता है। एक भाषा [[पुनर्लेखन]] सामान्यतः एक ऐसा प्रोग्राम है जो भाषा में परिवर्तन के बिना [[अभिव्यक्ति (कंप्यूटर विज्ञान)]] के रूप का अनुवाद करता है। एक [[संकलक-संकलक]] एक संकलक है जो एक संकलक (या एक का भाग) बनाता है, प्रायः एक सामान्य और पुन: प्रयोज्य तरीके से ताकि कई अलग-अलग कंपाइलरों का उत्पादन करने में सक्षम हो सके।


एक संकलक निम्न में से कुछ या सभी ऑपरेशन करने की संभावना रखता है, जिन्हें प्रायः चरण कहा जाता है: [[पूर्वप्रक्रमक]], [[शाब्दिक विश्लेषण]], [[पदच्छेद]], सिमेंटिक एनालिसिस (कंपाइलर्स) ([[सिंटैक्स-निर्देशित अनुवाद]]), इनपुट प्रोग्राम्स को [[मध्यवर्ती प्रतिनिधित्व]], [[कोड अनुकूलन]] और कोड में बदलना। पीढ़ी (संकलक)। संकलक सामान्यतः इन चरणों को मॉड्यूलर घटकों के रूप में लागू करते हैं, कुशल डिजाइन को बढ़ावा देते हैं और लक्ष्य आउटपुट के लिए स्रोत इनपुट के [[कार्यक्रम परिवर्तन]]ों की शुद्धता को बढ़ावा देते हैं। गलत संकलक व्यवहार के कारण होने वाले प्रोग्राम दोषों को ट्रैक करना और उनके आसपास काम करना अधिक कठिन हो सकता है; इसलिए, [[संकलक शुद्धता]] सुनिश्चित करने के लिए संकलक कार्यान्वयनकर्ता महत्वपूर्ण प्रयास करते हैं।
एक संकलक निम्न में से कुछ या सभी ऑपरेशन करने की संभावना रखता है, जिन्हें प्रायः चरण कहा जाता है: [[पूर्वप्रक्रमक]], [[शाब्दिक विश्लेषण]], [[पदच्छेद]], सिमेंटिक एनालिसिस (कंपाइलर्स) ([[सिंटैक्स-निर्देशित अनुवाद]]), इनपुट प्रोग्राम्स को [[मध्यवर्ती प्रतिनिधित्व]], [[कोड अनुकूलन]] और कोड में बदलना। पीढ़ी (संकलक)। संकलक सामान्यतः इन चरणों को मॉड्यूलर घटकों के रूप में लागू करते हैं, कुशल डिजाइन को बढ़ावा देते हैं और लक्ष्य आउटपुट के लिए स्रोत इनपुट के [[कार्यक्रम परिवर्तन|प्रोग्राम परिवर्तन]]ों की शुद्धता को बढ़ावा देते हैं। गलत संकलक व्यवहार के कारण होने वाले प्रोग्राम दोषों को ट्रैक करना और उनके आसपास काम करना अधिक कठिन हो सकता है; इसलिए, [[संकलक शुद्धता]] सुनिश्चित करने के लिए संकलक कार्यान्वयनकर्ता महत्वपूर्ण प्रयास करते हैं।
रेफ नाम = सूर्य2016>{{cite journal |last1=Sun|first1=Chengnian|last2=Le|first2=Vu|last3=Zhang|first3=Qirun|last4=Su|first4=Zhendong|date=2016|title=GCC और LLVM में कंपाइलर बग्स को समझने की ओर|url=http://dl.acm.org/citation.cfm?doid=2931037.2931074|journal=ACM|series=Issta 2016|pages=294–305|doi=10.1145/2931037.2931074|isbn=9781450343909|s2cid=8339241}}</रेफरी>
रेफ नाम = सूर्य2016>{{cite journal |last1=Sun|first1=Chengnian|last2=Le|first2=Vu|last3=Zhang|first3=Qirun|last4=Su|first4=Zhendong|date=2016|title=GCC और LLVM में कंपाइलर बग्स को समझने की ओर|url=http://dl.acm.org/citation.cfm?doid=2931037.2931074|journal=ACM|series=Issta 2016|pages=294–305|doi=10.1145/2931037.2931074|isbn=9781450343909|s2cid=8339241}}</रेफरी>


स्रोत प्रोग्राम को बदलने के लिए उपयोग किए जाने वाले संकलक एकमात्र भाषा प्रोसेसर नहीं हैं। एक [[दुभाषिया (कंप्यूटिंग)]] कंप्यूटर सॉफ्टवेयर है जो संकेतित कार्यों को रूपांतरित करता है और फिर निष्पादित करता है।<ref name=dragon/>{{rp|p2}} अनुवाद प्रक्रिया कंप्यूटर भाषाओं के डिजाइन को प्रभावित करती है, जिससे संकलन या व्याख्या की प्राथमिकता होती है। सिद्धांत रूप में, एक प्रोग्रामिंग भाषा में एक संकलक और दुभाषिया दोनों हो सकते हैं। व्यवहार में, प्रोग्रामिंग भाषाएँ केवल एक (एक संकलक या एक दुभाषिया) से जुड़ी होती हैं।
स्रोत प्रोग्राम को बदलने के लिए उपयोग किए जाने वाले संकलक एकमात्र भाषा प्रोसेसर नहीं हैं। एक [[दुभाषिया (कंप्यूटिंग)|अनुवादक (कंप्यूटिंग)]] कंप्यूटर सॉफ्टवेयर है जो संकेतित कार्यों को रूपांतरित करता है और फिर निष्पादित करता है।<ref name=dragon/>{{rp|p2}} अनुवाद प्रक्रिया कंप्यूटर भाषाओं के डिजाइन को प्रभावित करती है, जिससे संकलन या व्याख्या की प्राथमिकता होती है। सिद्धांत रूप में, एक प्रोग्रामिंग भाषा में एक संकलक और अनुवादक दोनों हो सकते हैं। व्यवहार में, प्रोग्रामिंग भाषाएँ केवल एक (एक संकलक या एक अनुवादक) से जुड़ी होती हैं।


== इतिहास ==
== इतिहास ==
{{Main|History of compiler construction}}
{{Main|History of compiler construction}}
[[File:Compiler.svg |upright=1.5|thumb |एक विशिष्ट बहु-भाषा, बहु-लक्ष्य संकलक के संचालन का आरेख]]वैज्ञानिकों, गणितज्ञों और इंजीनियरों द्वारा विकसित सैद्धांतिक कंप्यूटिंग अवधारणाओं ने द्वितीय विश्व युद्ध के समय डिजिटल आधुनिक कंप्यूटिंग विकास का आधार बनाया। आदिम बाइनरी भाषाएं विकसित हुईं क्योंकि डिजिटल डिवाइस केवल एक और शून्य और अंतर्निहित मशीन संरचना में सर्किट पैटर्न को समझते हैं। 1940 के दशक के अंत में, कंप्यूटर संरचना के अधिक व्यावहारिक सार की पेशकश करने के लिए असेंबली लैंग्वेज बनाई गई थीं। प्रारम्भिक कंप्यूटरों की सीमित मुख्य मेमोरी क्षमता के कारण जब पहला संकलक डिजाइन किया गया था तो काफी तकनीकी चुनौतियों का सामना करना पड़ा था। इसलिए, संकलन प्रक्रिया को कई छोटे कार्यक्रमों में विभाजित करने की आवश्यकता थी। फ्रंट एंड प्रोग्राम लक्ष्य कोड उत्पन्न करने के लिए बैक एंड प्रोग्राम द्वारा उपयोग किए जाने वाले विश्लेषण उत्पादों का उत्पादन करते हैं। जैसा कि कंप्यूटर प्रौद्योगिकी ने अधिक संसाधन प्रदान किए, संकलक डिजाइन संकलन प्रक्रिया के साथ अपेक्षाकृत अधिक ढंग से संरेखित हो सकते हैं।
[[File:Compiler.svg |upright=1.5|thumb |एक विशिष्ट बहु-भाषा, बहु-लक्ष्य संकलक के संचालन का आरेख]]वैज्ञानिकों, गणितज्ञों और इंजीनियरों द्वारा विकसित सैद्धांतिक कंप्यूटिंग अवधारणाओं ने द्वितीय विश्व युद्ध के समय डिजिटल आधुनिक कंप्यूटिंग विकास का आधार बनाया। आदिम बाइनरी भाषाएं विकसित हुईं क्योंकि डिजिटल डिवाइस केवल एक और शून्य और अंतर्निहित मशीन संरचना में सर्किट पैटर्न को समझते हैं। 1940 के दशक के अंत में, कंप्यूटर संरचना के अधिक व्यावहारिक सार की पेशकश करने के लिए असेंबली भाषा बनाई गई थीं। प्रारम्भिक कंप्यूटरों की सीमित मुख्य मेमोरी क्षमता के कारण जब पहला संकलक डिजाइन किया गया था तो काफी तकनीकी चुनौतियों का सामना करना पड़ा था। इसलिए, संकलन प्रक्रिया को कई छोटे कार्यक्रमों में विभाजित करने की आवश्यकता थी। फ्रंट एंड प्रोग्राम लक्ष्य कोड उत्पन्न करने के लिए बैक एंड प्रोग्राम द्वारा उपयोग किए जाने वाले विश्लेषण उत्पादों का उत्पादन करते हैं। जैसा कि कंप्यूटर प्रौद्योगिकी ने अधिक संसाधन प्रदान किए, संकलक डिजाइन संकलन प्रक्रिया के साथ अपेक्षाकृत अधिक संरेखित हो सकते हैं।


सामान्यतः एक प्रोग्रामर के लिए उच्च-स्तरीय भाषा का उपयोग करना अधिक उत्पादक होता है, इसलिए उच्च-स्तरीय भाषाओं का विकास स्वाभाविक रूप से डिजिटल कंप्यूटर द्वारा प्रदान की जाने वाली क्षमताओं से होता है। उच्च-स्तरीय भाषाएँ [[औपचारिक भाषा]]एँ हैं जिन्हें उनके वाक्य-विन्यास और [[शब्दार्थ (कंप्यूटर विज्ञान)]] द्वारा सख्ती से परिभाषित किया जाता है जो उच्च-स्तरीय भाषा वास्तुकला का निर्माण करते हैं। इन औपचारिक भाषाओं के तत्वों में सम्मिलित हैं:
सामान्यतः एक प्रोग्रामर के लिए उच्च-स्तरीय भाषा का उपयोग करना अधिक उत्पादक होता है, इसलिए उच्च-स्तरीय भाषाओं का विकास स्वाभाविक रूप से डिजिटल कंप्यूटर द्वारा प्रदान की जाने वाली क्षमताओं से होता है। उच्च-स्तरीय भाषाएँ [[औपचारिक भाषा]]एँ हैं जिन्हें उनके वाक्य-विन्यास और [[शब्दार्थ (कंप्यूटर विज्ञान)]] द्वारा सख्ती से परिभाषित किया जाता है जो उच्च-स्तरीय भाषा वास्तुकला का निर्माण करते हैं। इन औपचारिक भाषाओं के तत्वों में सम्मिलित हैं:
Line 29: Line 29:
Department of Computer Science & Information Engineering
Department of Computer Science & Information Engineering
National Chi-Nan University</ref>
National Chi-Nan University</ref>
बैकस-नौर फॉर्म (बीएनएफ) एक भाषा के वाक्यों के सिंटैक्स का वर्णन करता है और [[जॉन बैकस]] द्वारा एल्गोल 60 के सिंटैक्स के लिए इस्तेमाल किया गया था।<ref>Naur, P. et al. "Report on ALGOL 60". ''Communications of the ACM'' 3 (May 1960), 299–314.</ref> ये विचार एक भाषाविद् [[नोम चौमस्की]] द्वारा संदर्भ-मुक्त व्याकरण अवधारणाओं से प्राप्त हुए हैं।<ref>{{cite book |title=सिंटैक्टिक संरचनाएं|isbn=978-3-11-017279-9 |first1=Noam |last1=Chomsky |first2=David W. |last2=Lightfoot |publisher=Walter de Gruyter |date=2002}}</ref> प्रोग्रामिंग नोटेशन के सिंटैक्स का वर्णन करने के लिए बीएनएफ और इसके एक्सटेंशन मानक उपकरण बन गए हैं, और कई मामलों में बीएनएफ विवरण से कंपाइलर्स के हिस्से स्वचालित रूप से उत्पन्न होते हैं।<ref>{{cite book |title=प्रोग्रामिंग का विज्ञान|chapter=Appendix 1: Backus-Naur Form |isbn=978-1461259831 |last=Gries |first=David |chapter-url=https://books.google.com/books?id=QFrlBwAAQBAJ&q=1461259835&pg=PA304 |page=304 |publisher=Springer Science & Business Media |date=2012}}</ref>
बैकस-नौर फॉर्म (बीएनएफ) एक भाषा के वाक्यों के सिंटैक्स का वर्णन करता है और [[जॉन बैकस]] द्वारा एल्गोल 60 के सिंटैक्स के लिए उपयोग किया गया था।<ref>Naur, P. et al. "Report on ALGOL 60". ''Communications of the ACM'' 3 (May 1960), 299–314.</ref> ये विचार एक भाषाविद् [[नोम चौमस्की]] द्वारा संदर्भ-मुक्त व्याकरण अवधारणाओं से प्राप्त हुए हैं।<ref>{{cite book |title=सिंटैक्टिक संरचनाएं|isbn=978-3-11-017279-9 |first1=Noam |last1=Chomsky |first2=David W. |last2=Lightfoot |publisher=Walter de Gruyter |date=2002}}</ref> प्रोग्रामिंग नोटेशन के सिंटैक्स का वर्णन करने के लिए बीएनएफ और इसके एक्सटेंशन मानक उपकरण बन गए हैं, और कई स्थितियों में बीएनएफ विवरण से कंपाइलर्स के हिस्से स्वचालित रूप से उत्पन्न होते हैं।<ref>{{cite book |title=प्रोग्रामिंग का विज्ञान|chapter=Appendix 1: Backus-Naur Form |isbn=978-1461259831 |last=Gries |first=David |chapter-url=https://books.google.com/books?id=QFrlBwAAQBAJ&q=1461259835&pg=PA304 |page=304 |publisher=Springer Science & Business Media |date=2012}}</ref>
 
1940 के दशक में, [[कोनराड ज़्यूस]] ने प्लैंकलकुल (प्लान कैलकुलस) नामक एक एल्गोरिथम प्रोग्रामिंग भाषा तैयार की। जबकि 1970 के दशक तक कोई वास्तविक कार्यान्वयन नहीं हुआ था, इसने बाद में 1950 के दशक के अंत में केन इवरसन द्वारा डिज़ाइन की गई APL (प्रोग्रामिंग भाषा) में देखी गई अवधारणाओं को प्रस्तुत किया।<ref>{{cite book |title=एक प्रोग्रामिंग भाषा|url=https://archive.org/details/programminglangu00iver_0 |url-access=registration |first=Kenneth E. |last=Iverson |isbn=978-0-471430-14-8 |publisher=John Wiley & Sons |date=1962}}</ref> एपीएल गणितीय संगणनाओं के लिए एक भाषा है।
1940 के दशक में, [[कोनराड ज़्यूस]] ने प्लैंकलकुल (प्लान कैलकुलस) नामक एक एल्गोरिथम प्रोग्रामिंग भाषा तैयार की। जबकि 1970 के दशक तक कोई वास्तविक कार्यान्वयन नहीं हुआ था, इसने बाद में 1950 के दशक के अंत में केन इवरसन द्वारा डिज़ाइन की गई APL (प्रोग्रामिंग भाषा) में देखी गई अवधारणाओं को प्रस्तुत किया।<ref>{{cite book |title=एक प्रोग्रामिंग भाषा|url=https://archive.org/details/programminglangu00iver_0 |url-access=registration |first=Kenneth E. |last=Iverson |isbn=978-0-471430-14-8 |publisher=John Wiley & Sons |date=1962}}</ref> एपीएल गणितीय संगणनाओं के लिए एक भाषा है।


डिजिटल कंप्यूटिंग के प्रारंभिक वर्षों के समय उच्च स्तरीय भाषा डिजाइन ने विभिन्न प्रकार के अनुप्रयोगों के लिए उपयोगी प्रोग्रामिंग उपकरण प्रदान किए:
डिजिटल कंप्यूटिंग के प्रारंभिक वर्षों के समय उच्च स्तरीय भाषा डिजाइन ने विभिन्न प्रकार के अनुप्रयोगों के लिए उपयोगी प्रोग्रामिंग उपकरण प्रदान किए:
* इंजीनियरिंग और विज्ञान अनुप्रयोगों के लिए [[फोरट्रान]] (फॉर्मूला ट्रांसलेशन) को पहली उच्च स्तरीय भाषा माना जाता है।<ref>{{cite book |first=John |last=Backus |chapter=The history of FORTRAN I, II and III |website=Softwarepreservation.org |title=प्रोग्रामिंग भाषाओं का इतिहास|chapter-url=http://www.softwarepreservation.org/projects/FORTRAN/paper/p25-backus.pdf |archive-url=https://ghostarchive.org/archive/20221010/http://www.softwarepreservation.org/projects/FORTRAN/paper/p25-backus.pdf |archive-date=2022-10-10 |url-status=live}}</ref>
* इंजीनियरिंग और विज्ञान अनुप्रयोगों के लिए [[फोरट्रान]] (फॉर्मूला ट्रांसलेशन) को पहली उच्च स्तरीय भाषा माना जाता है।<ref>{{cite book |first=John |last=Backus |chapter=The history of FORTRAN I, II and III |website=Softwarepreservation.org |title=प्रोग्रामिंग भाषाओं का इतिहास|chapter-url=http://www.softwarepreservation.org/projects/FORTRAN/paper/p25-backus.pdf |archive-url=https://ghostarchive.org/archive/20221010/http://www.softwarepreservation.org/projects/FORTRAN/paper/p25-backus.pdf |archive-date=2022-10-10 |url-status=live}}</ref>
* [[COBOL]] (कॉमन बिजनेस-ओरिएंटेड लैंग्वेज) [[ए-0 प्रणाली]] | A-0 और [[फ्लो-Matic]] से विकसित होकर व्यावसायिक अनुप्रयोगों के लिए प्रमुख उच्च-स्तरीय भाषा बन गई।<ref>Porter Adams, Vicki (5 October 1981). "Captain Grace M. Hopper: the Mother of COBOL". InfoWorld. 3 (20): 33. ISSN 0199-6649.</ref>
* [[COBOL|कोबोल]] (सामान्य व्यवसाय उन्मुखी भाषा) [[ए-0 प्रणाली]] | A-0 और [[फ्लो-Matic]] से विकसित होकर व्यावसायिक अनुप्रयोगों के लिए प्रमुख उच्च-स्तरीय भाषा बन गई।<ref>Porter Adams, Vicki (5 October 1981). "Captain Grace M. Hopper: the Mother of COBOL". InfoWorld. 3 (20): 33. ISSN 0199-6649.</ref>
* [[लिस्प (प्रोग्रामिंग भाषा)]] (सूची प्रोसेसर) प्रतीकात्मक संगणना के लिए।<ref>McCarthy, J.; Brayton, R.; Edwards, D.; Fox, P.; Hodes, L.; Luckham, D.; Maling, K.; Park, D.; Russell, S. (March 1960). "LISP I Programmers Manual" (PDF). Boston, Massachusetts: Artificial Intelligence Group, M.I.T. Computation Center and Research Laboratory.</ref>
* [[लिस्प (प्रोग्रामिंग भाषा)|एलआईएसपी (प्रोग्रामिंग भाषा)]] (सूची प्रोसेसर) प्रतीकात्मक संगणना के लिए।<ref>McCarthy, J.; Brayton, R.; Edwards, D.; Fox, P.; Hodes, L.; Luckham, D.; Maling, K.; Park, D.; Russell, S. (March 1960). "LISP I Programmers Manual" (PDF). Boston, Massachusetts: Artificial Intelligence Group, M.I.T. Computation Center and Research Laboratory.</ref>
डिजिटल कंप्यूटर के लिए निम्न-स्तरीय लक्ष्य कार्यक्रम में उच्च-स्तरीय स्रोत कार्यक्रम के कड़ाई से परिभाषित परिवर्तन की आवश्यकता से संकलक तकनीक विकसित हुई। स्रोत कोड के विश्लेषण से निपटने के लिए संकलक को फ्रंट एंड के रूप में देखा जा सकता है और लक्ष्य कोड में विश्लेषण को संश्लेषित करने के लिए बैक एंड। फ्रंट एंड और बैक एंड के बीच अनुकूलन अधिक कुशल लक्ष्य कोड उत्पन्न कर सकता है।<ref>Compilers Principles, Techniques, & Tools 2nd edition by Aho, Lam, Sethi, Ullman {{ISBN |0-321-48681-1}}</ref>
डिजिटल कंप्यूटर के लिए निम्न-स्तरीय लक्ष्य प्रोग्राम में उच्च-स्तरीय स्रोत प्रोग्राम के कड़ाई से परिभाषित परिवर्तन की आवश्यकता से संकलक तकनीक विकसित हुई। स्रोत कोड के विश्लेषण से निपटने के लिए संकलक को फ्रंट एंड के रूप में देखा जा सकता है और लक्ष्य कोड में विश्लेषण को संश्लेषित करने के लिए बैक एंड। फ्रंट एंड और बैक एंड के बीच अनुकूलन अधिक कुशल लक्ष्य कोड उत्पन्न कर सकता है।<ref>Compilers Principles, Techniques, & Tools 2nd edition by Aho, Lam, Sethi, Ullman {{ISBN |0-321-48681-1}}</ref>
संकलक प्रौद्योगिकी के विकास में कुछ प्रारंभिक मील के पत्थर:
संकलक प्रौद्योगिकी के विकास में कुछ प्रारंभिक मील के पत्थर:
* 1952: मैनचेस्टर विश्वविद्यालय में [[मैनचेस्टर मार्क I]] कंप्यूटर के लिए [[एलिक ग्लेनी]] द्वारा विकसित एक [[ऑटोकोड]] संकलक को कुछ लोगों द्वारा पहली संकलित प्रोग्रामिंग भाषा माना जाता है।
* 1952: मैनचेस्टर विश्वविद्यालय में [[मैनचेस्टर मार्क I]] कंप्यूटर के लिए [[एलिक ग्लेनी]] द्वारा विकसित एक [[ऑटोकोड]] संकलक को कुछ लोगों द्वारा पहली संकलित प्रोग्रामिंग भाषा माना जाता है।
* 1952: [[रेमिंगटन रैंड]] में [[ग्रेस हूपर]] की टीम ने A-0 सिस्टम|A-0 प्रोग्रामिंग लैंग्वेज के लिए संकलक लिखा (और इसका वर्णन करने के लिए ''संकलक'' शब्द गढ़ा),<ref>{{cite journal |last1=Hopper |first1=Grace Murray |date=1952 |title=कंप्यूटर की शिक्षा|journal=Proceedings of the 1952 ACM National Meeting (Pittsburgh) |pages=243–249 |doi=10.1145/609784.609818 |s2cid=10081016}}</ref><ref>{{cite journal |last1=Ridgway |first1=Richard K. |date=1952 |title=संकलन दिनचर्या|journal=Proceedings of the 1952 ACM National Meeting (Toronto) |pages=1–5 |doi=10.1145/800259.808980 |s2cid=14878552}}
* 1952: [[रेमिंगटन रैंड]] में [[ग्रेस हूपर]] की टीम ने A-0 सिस्टम|A-0 प्रोग्रामिंग भाषा के लिए संकलक लिखा (और इसका वर्णन करने के लिए ''संकलक'' शब्द गढ़ा),<ref>{{cite journal |last1=Hopper |first1=Grace Murray |date=1952 |title=कंप्यूटर की शिक्षा|journal=Proceedings of the 1952 ACM National Meeting (Pittsburgh) |pages=243–249 |doi=10.1145/609784.609818 |s2cid=10081016}}</ref><ref>{{cite journal |last1=Ridgway |first1=Richard K. |date=1952 |title=संकलन दिनचर्या|journal=Proceedings of the 1952 ACM National Meeting (Toronto) |pages=1–5 |doi=10.1145/800259.808980 |s2cid=14878552}}
</ref> हालांकि A-0 संकलक एक पूर्ण संकलक की आधुनिक धारणा की तुलना में एक लोडर या लिंकर के रूप में अधिक कार्य करता है।
</ref> हालांकि A-0 संकलक एक पूर्ण संकलक की आधुनिक धारणा की तुलना में एक लोडर या लिंकर के रूप में अधिक कार्य करता है।
* 1954-1957: [[आईबीएम]] में जॉन बैकस के नेतृत्व में एक टीम ने फोरट्रान विकसित किया जिसे सामान्यतः पहली उच्च-स्तरीय भाषा माना जाता है। 1957 में, उन्होंने एक फोरट्रान संकलक पूरा किया जिसे सामान्यतः पहले स्पष्ट रूप से पूर्ण संकलक के रूप में पेश करने का श्रेय दिया जाता है।
* 1954-1957: [[आईबीएम]] में जॉन बैकस के नेतृत्व में एक टीम ने फोरट्रान विकसित किया जिसे सामान्यतः पहली उच्च-स्तरीय भाषा माना जाता है। 1957 में, उन्होंने एक फोरट्रान संकलक पूरा किया जिसे सामान्यतः पहले स्पष्ट रूप से पूर्ण संकलक के रूप में पेश करने का श्रेय दिया जाता है।
* 1959: डेटा सिस्टम लैंग्वेज (CODASYL) पर सम्मेलन ने COBOL के विकास की प्रारंभ की। COBOL डिज़ाइन A-0 और FLOW-MATIC पर आकर्षित हुआ। 1960 के दशक के प्रारंभ तक COBOL को कई संरचना पर संकलित किया गया था।
* 1959: डेटा सिस्टम भाषा (CODASYL) पर सम्मेलन ने के विकास की प्रारंभ की। कोबोल डिज़ाइन A-0 और FLOW-MATIC पर आकर्षित हुआ। 1960 के दशक के प्रारंभ तक कोबोल को कई संरचना पर संकलित किया गया था।
* 1958-1960: [[Algol 58]], [[ALGOL 60]] का अग्रदूत था। Algol 58 ने [[ब्लॉक (प्रोग्रामिंग)]] की प्रारंभ की, जो [[संरचित प्रोग्रामिंग]] के उदय में एक महत्वपूर्ण प्रगति थी। ALGOL 60 [[नेस्टेड समारोह]] परिभाषाओं को [[शाब्दिक गुंजाइश]] के साथ लागू करने वाली पहली भाषा थी। इसमें [[प्रत्यावर्तन]] सम्मिलित था। इसका सिंटैक्स बैकस-नौर फॉर्म का उपयोग करके परिभाषित किया गया था। ALGOL 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]], [[ALGOL 60]] का अग्रदूत था। Algol 58 ने [[ब्लॉक (प्रोग्रामिंग)]] की प्रारंभ की, जो [[संरचित प्रोग्रामिंग]] के उदय में एक महत्वपूर्ण प्रगति थी। ALGOL 60 [[नेस्टेड समारोह]] परिभाषाओं को [[शाब्दिक गुंजाइश]] के साथ लागू करने वाली पहली भाषा थी। इसमें [[प्रत्यावर्तन]] सम्मिलित था। इसका सिंटैक्स बैकस-नौर फॉर्म का उपयोग करके परिभाषित किया गया था। ALGOL 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 में, LISP 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 के दशक के प्रारंभ में, सिस्टम प्रोग्रामिंग के लिए उच्च-स्तरीय भाषाओं का उपयोग संसाधन सीमाओं के कारण अभी भी विवादास्पद था। हालांकि, कई शोध और उद्योग प्रयासों ने उच्च-स्तरीय सिस्टम [[बी (प्रोग्रामिंग भाषा)]] ओर बदलाव प्रारंभ किया, उदाहरण के लिए, [[BCPL|बीसीपीएल]], [[BLISS]], B (प्रोग्रामिंग लैंग्वेज), और C (प्रोग्रामिंग लैंग्वेज)।
प्रारम्भिक ऑपरेटिंग सिस्टम और सॉफ्टवेयर असेंबली भाषा में लिखे गए थे। 1960 और 1970 के दशक के प्रारंभ में, सिस्टम प्रोग्रामिंग के लिए उच्च-स्तरीय भाषाओं का उपयोग संसाधन सीमाओं के कारण अभी भी विवादास्पद था। हालांकि, कई शोध और उद्योग प्रयासों ने उच्च-स्तरीय सिस्टम [[बी (प्रोग्रामिंग भाषा)]] ओर परिवर्तन प्रारंभ किया, उदाहरण के लिए, [[BCPL|बीसीपीएल]], [[BLISS]], B (प्रोग्रामिंग भाषा), और सी (प्रोग्रामिंग भाषा)।


कैम्ब्रिज विश्वविद्यालय में [[मार्टिन रिचर्ड्स (कंप्यूटर वैज्ञानिक)]] द्वारा 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> बल्कि बी और सी भाषाओं के डिजाइन के लिए एक आधार भी प्रदान किया।
कैम्ब्रिज विश्वविद्यालय में [[मार्टिन रिचर्ड्स (कंप्यूटर वैज्ञानिक)]] द्वारा 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> बल्कि बी और सी भाषाओं के डिजाइन के लिए एक आधार भी प्रदान किया।


BLISS (बेसिक लैंग्वेज फॉर इंप्लीमेंटेशन ऑफ सिस्टम सॉफ्टवेयर) को डिजिटल इक्विपमेंट कॉरपोरेशन (DEC) PDP-10 कंप्यूटर के लिए WA Wulf's Carnegie Mellon University (सीएमयू) रिसर्च टीम द्वारा विकसित किया गया था। सीएमयू टीम ने एक साल बाद 1970 में BLISS-11 संकलक विकसित किया।
BLISS (बेसिक भाषा फॉर इंप्लीमेंटेशन ऑफ सिस्टम सॉफ्टवेयर) को डिजिटल इक्विपमेंट कॉरपोरेशन (डीईसी) PDP-10 कंप्यूटर के लिए WA Wulf's Carnegie Mellon University (सीएमयू) रिसर्च टीम द्वारा विकसित किया गया था। सीएमयू टीम ने एक साल बाद 1970 में BLISS-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> आईबीएम का लक्ष्य व्यापार, वैज्ञानिक और सिस्टम प्रोग्रामिंग आवश्यकताओं को पूरा करना था। ऐसी अन्य भाषाएँ थीं जिन पर विचार किया जा सकता था लेकिन PL/I ने सबसे पूर्ण समाधान की पेशकश की, भले ही इसे लागू नहीं किया गया था।<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>
[[मॉलटिक्स]] (मल्टीप्लेक्स सूचना और कंप्यूटिंग सेवा), एक टाइम-शेयरिंग ऑपरेटिंग सिस्टम प्रोजेक्ट, जिसमें एमआईटी, [[बेल लैब्स]], [[जनरल इलेक्ट्रिक]] (बाद में [[हनीवेल]]) सम्मिलित थे और इसका नेतृत्व एमआईटी के फर्नांडो जे कॉर्बेटो | फर्नांडो कॉर्बेटो ने किया था।<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> आईबीएम का लक्ष्य व्यापार, वैज्ञानिक और सिस्टम प्रोग्रामिंग आवश्यकताओं को पूरा करना था। ऐसी अन्य भाषाएँ थीं जिन पर विचार किया जा सकता था लेकिन PL/I ने सबसे पूर्ण समाधान की पेशकश की, तथापि इसे लागू नहीं किया गया था।<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 में मल्टिक्स प्रोजेक्ट को छोड़ दिया, और [[डेनिस रिची]] और [[केन थॉम्पसन]] द्वारा लिखित बीसीपीएल अवधारणाओं पर आधारित एक सिस्टम प्रोग्रामिंग लैंग्वेज B (प्रोग्रामिंग लैंग्वेज) विकसित की। रिची ने बी के लिए बूट-स्ट्रैपिंग संकलक बनाया और बी में पीडीपी-7 के लिए [[यूनिक्स]] (यूनिप्लेक्स्ड इंफॉर्मेशन एंड कंप्यूटिंग सर्विस) ऑपरेटिंग सिस्टम लिखा। यूनिक्स अंततः वर्तनी यूनिक्स बन गया।
बेल लैब्स ने 1969 में मल्टिक्स प्रोजेक्ट को छोड़ दिया, और [[डेनिस रिची]] और [[केन थॉम्पसन]] द्वारा लिखित बीसीपीएल अवधारणाओं पर आधारित एक सिस्टम प्रोग्रामिंग भाषा B (प्रोग्रामिंग भाषा) विकसित की। रिची ने बी के लिए बूट-स्ट्रैपिंग संकलक बनाया और बी में पीडीपी-7 के लिए [[यूनिक्स]] (यूनिप्लेक्स्ड इंफॉर्मेशन एंड कंप्यूटिंग सर्विस) ऑपरेटिंग सिस्टम लिखा। यूनिक्स अंततः वर्तनी यूनिक्स बन गया।


बेल लैब्स ने B और बीसीपीएल के आधार पर C (प्रोग्रामिंग लैंग्वेज) का विकास और विस्तार प्रारंभ किया। बीसीपीएल संकलक को बेल लैब्स द्वारा मल्टिक्स में ले जाया गया था और बेल लैब्स में बीसीपीएल एक पसंदीदा भाषा थी।<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 में, एक नए PDP-11 ने B को एक्सटेंशन परिभाषित करने और संकलक को फिर से लिखने के लिए संसाधन प्रदान किया। 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>
बेल लैब्स ने B और बीसीपीएल के आधार पर सी (प्रोग्रामिंग भाषा) का विकास और विस्तार प्रारंभ किया। बीसीपीएल संकलक को बेल लैब्स द्वारा मल्टिक्स में ले जाया गया था और बेल लैब्स में बीसीपीएल एक पसंदीदा भाषा थी।<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 में, एक नए PDP-11 ने B को एक्सटेंशन परिभाषित करने और संकलक को फिर से लिखने के लिए संसाधन प्रदान किया। 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>
[[वस्तु उन्मुख कार्यकर्म]] (ओओपी) ने अनुप्रयोग विकास और रखरखाव के लिए कुछ दिलचस्प संभावनाएं पेश कीं। OOP अवधारणाएँ और पीछे जाती हैं लेकिन [[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++]] का विकास OOP में रुचि लेने लगा।<ref>B. Stroustrup: "What is Object-Oriented Programming?" Proceedings 14th ASU Conference, 1986.</ref> C++ का पहली बार उपयोग 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> Cfront प्रोग्राम ने C84 लैंग्वेज संकलक के लिए C++ फ्रंट-एंड लागू किया। बाद के वर्षों में C++ की लोकप्रियता बढ़ने के साथ कई C++ संकलक विकसित किए गए।
[[वस्तु उन्मुख कार्यकर्म]] (ओओपी) ने अनुप्रयोग विकास और रखरखाव के लिए कुछ दिलचस्प संभावनाएं पेश कीं। ओओपी अवधारणाएँ और पीछे जाती हैं लेकिन [[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> Cfront प्रोग्राम ने C84 भाषा संकलक के लिए सी++ फ्रंट-एंड लागू किया। बाद के वर्षों में सी++ की लोकप्रियता बढ़ने के साथ कई सी++ संकलक विकसित किए गए।


कई एप्लिकेशन डोमेन में, उच्च-स्तरीय भाषा का उपयोग करने का विचार जल्दी से पकड़ में आ गया। नई प्रोग्रामिंग भाषाओं द्वारा समर्थित विस्तारित कार्यक्षमता और कंप्यूटर संरचना की बढ़ती जटिलता के कारण, संकलक अधिक जटिल हो गए।
कई एप्लिकेशन डोमेन में, उच्च-स्तरीय भाषा का उपयोग करने का विचार शीघ्र से पकड़ में आ गया। नई प्रोग्रामिंग भाषाओं द्वारा समर्थित विस्तारित कार्यक्षमता और कंप्यूटर संरचना की बढ़ती जटिलता के कारण, संकलक अधिक जटिल हो गए।


[[DARPA]] (डिफेंस एडवांस्ड रिसर्च प्रोजेक्ट्स एजेंसी) ने 1970 में Wulf की सीएमयू रिसर्च टीम के साथ एक संकलक प्रोजेक्ट प्रायोजित किया। प्रोडक्शन क्वालिटी संकलक-संकलक [[PQCC]] डिज़ाइन स्रोत भाषा और लक्ष्य की औपचारिक परिभाषाओं से प्रोडक्शन क्वालिटी संकलक (PQC) तैयार करेगा।<ref>Leverett, Cattell, Hobbs, Newcomer, Reiner, Schatz, Wulf: "An Overview of the Production Quality Compiler-Compiler Project", CMU-CS-89-105, 1979</ref> PQCC ने अधिक सफलता के बिना पार्सर जनरेटर (जैसे, [[Yacc]]) के रूप में पारंपरिक अर्थ से परे संकलक-संकलक शब्द का विस्तार करने की कोशिश की। PQCC को अधिक उचित रूप से एक संकलक जनरेटर के रूप में संदर्भित किया जा सकता है।
[[DARPA|डीएआरपीए]] (रक्षा अग्रिम अनुसंधान परियोजना एजेंसी) ने 1970 में Wulf की सीएमयू रिसर्च टीम के साथ एक संकलक प्रोजेक्ट प्रायोजित किया। प्रोडक्शन क्वालिटी संकलक-संकलक [[PQCC|पीक्यूसीसी]] डिज़ाइन स्रोत भाषा और लक्ष्य की औपचारिक परिभाषाओं से प्रोडक्शन क्वालिटी संकलक (PQC) तैयार करेगा।<ref>Leverett, Cattell, Hobbs, Newcomer, Reiner, Schatz, Wulf: "An Overview of the Production Quality Compiler-Compiler Project", CMU-CS-89-105, 1979</ref> पीक्यूसीसी ने अधिक सफलता के बिना पार्सर जनरेटर (जैसे, [[Yacc]]) के रूप में पारंपरिक अर्थ से परे संकलक-संकलक शब्द का विस्तार करने की कोशिश की। पीक्यूसीसी को अधिक उचित रूप से एक संकलक जनरेटर के रूप में संदर्भित किया जा सकता है।


कोड जनरेशन प्रक्रिया में PQCC अनुसंधान वास्तव में स्वचालित संकलक-लेखन प्रणाली बनाने की मांग करता है। प्रयास ने PQC की चरण संरचना की खोज की और डिजाइन किया। ब्लिस-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
कोड जनरेशन प्रक्रिया में पीक्यूसीसी अनुसंधान वास्तव में स्वचालित संकलक-लेखन प्रणाली बनाने की मांग करता है। प्रयास ने PQC की चरण संरचना की खोज की और डिजाइन किया। ब्लिस-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> चरणों में विश्लेषण (फ्रंट एंड), वर्चुअल मशीन (मध्य अंत) में मध्यवर्ती अनुवाद और लक्ष्य (बैक एंड) में अनुवाद सम्मिलित हैं। मध्यवर्ती प्रतिनिधित्व में भाषा विशिष्ट निर्माणों को संभालने के लिए पीक्यूसीसी अनुसंधान के लिए टीसीओएल विकसित किया गया था।<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> TCOL के विभिन्न रूपों ने विभिन्न भाषाओं का समर्थन किया। PQCC परियोजना ने स्वचालित संकलक निर्माण की तकनीकों की जांच की। डिजाइन अवधारणाएं (1995 से, ऑब्जेक्ट-ओरिएंटेड[[एडा (प्रोग्रामिंग भाषा)]] एडा (प्रोग्रामिंग लैंग्वेज) के लिए कंपाइलर्स और कंपाइलर्स के अनुकूलन में उपयोगी साबित हुईं।
</ref> TCOL के विभिन्न रूपों ने विभिन्न भाषाओं का समर्थन किया। पीक्यूसीसी परियोजना ने स्वचालित संकलक निर्माण की तकनीकों की जांच की। डिजाइन अवधारणाएं (1995 से, ऑब्जेक्ट-ओरिएंटेड[[एडा (प्रोग्रामिंग भाषा)]] एडा (प्रोग्रामिंग भाषा) के लिए कंपाइलर्स और कंपाइलर्स के अनुकूलन में उपयोगी प्रमाणित हुईं।


एडा स्टोनमैन दस्तावेज़{{citation needed|date=December 2021}} कर्नेल (केएपीएसई) और न्यूनतम (एमएपीएसई) के साथ कार्यक्रम समर्थन पर्यावरण (एपीएसई) को औपचारिक रूप दिया। एक एडीए दुभाषिया एनवाईयू/ईडी ने अमेरिकी राष्ट्रीय मानक संस्थान (एएनएसआई) और अंतर्राष्ट्रीय मानक संगठन (आईएसओ) के साथ विकास और मानकीकरण प्रयासों का समर्थन किया। अमेरिकी सैन्य सेवाओं द्वारा आरंभिक एडीए संकलक विकास में स्टोनमैन दस्तावेज़ की तर्ज पर एक पूर्ण एकीकृत डिजाइन वातावरण में संकलक सम्मिलित थे। सेना और नौसेना ने एडीए लैंग्वेज सिस्टम (एएलएस) परियोजना पर काम किया, जो डीईसी/वैक्स संरचना को लक्षित था, जबकि वायु सेना ने एडीए इंटीग्रेटेड एनवायरनमेंट (एआईई) पर आईबीएम 370 श्