Compiler in Hindi: कम्पाइलर एक प्रकार का ट्रैन्स्लेटर प्रोग्राम होता है जो पूरे प्रोग्राम को स्कैन करता है और पूरे प्रोग्राम को एक ही बार में मशीन कोड में ट्रांसलेट करता है।
यानी की वह भाषा संसाधक (processor) जो उच्च स्तरीय भाषा में लिखे गए संपूर्ण स्रोत (source) प्रोग्राम को एक बार में पढ़ता है और मशीनी भाषा में समकक्ष प्रोग्राम में अनुवाद करता है उसे कम्पाइलर (Compiler) कहा जाता है। उदाहरण: जावा, सी, सी++, सी#, आदि।
इस लेख में, हम जानेंगे कि कम्पाइलर क्या है (What is Compiler in Hindi)?, इसके प्रकार, कम्पाइलर कैसे काम करता है, इसके लाभ और बहुत कुछ जो आपको कम्पाइलर के बारे में सीखने की जरूरत है।
नोट: इस लेख को अच्छी तरह से समझने के लिए पहले आप प्रोग्रामिंग लैंग्वेज क्या है, प्रोग्रामिंग भाषा के प्रकार, उच्च स्तरीय भाषा क्या है, और इंटरप्रेटर क्या है को समझें।
Table of Contents
कंपाइलर की परिभाषा (Introduction to Compiler in Hindi)
Compiler, कंप्यूटर सॉफ़्टवेयर होता है जो हाई लेवल लैंग्वेज (जैसे, सी, सी++) में लिखे गए कोड को मशीन-भाषा निर्देशों के एक सेट में अनुवाद (संकलित) करता है जिसे डिजिटल कंप्यूटर के CPU द्वारा आसानी से समझा जा सकता है।
मूल रूप से, बहुत बड़े प्रोग्राम होते हैं, जिनमें error-checking और अन्य क्षमताएं भी होती हैं। कुछ कंपाइलर उच्च-स्तरीय भाषा का एक मध्यवर्ती assembly language में अनुवाद करते हैं, जिसे बाद में assembly प्रोग्राम या assembler द्वारा मशीन कोड में अनुवादित (इकट्ठा) किया जाता है। अन्य कंपाइलर सीधे मशीनी भाषा उत्पन्न करते हैं।
वास्तव में “Compiler” शब्द अमेरिकी कंप्यूटर वैज्ञानिक ग्रेस हॉपर द्वारा गढ़ा गया था, जिन्होंने 1950 के दशक की शुरुआत में पहले कंपाइलरों में से एक को डिजाइन किया था।
आइए कंपाइलर को बेहतर ढंग से समझते हैं –
कम्पाइलर क्या है (What is Compiler in Hindi)?
कम्पाइलर एक कंप्यूटर प्रोग्राम है जो कंप्यूटर कोड को एक प्रोग्रामिंग भाषा से दूसरी भाषा में अनुवाद करने में मदद करता है। मूल रूप से, यह source भाषा (high-level भाषा) में लिखे गए प्रोग्राम को मशीनी भाषा (low-level भाषा) में अनुवाद करता है। संकलन (compiling) प्रक्रिया में एक आवश्यक अनुवाद संचालन और त्रुटि का पता लगाना शामिल है।
- संक्षेप में, प्रोग्रामिंग में, Compiler एक सॉफ्टवेयर है जो उच्च-स्तरीय भाषा में लिखे गए प्रोग्राम को निम्न-स्तरीय भाषा में परिवर्तित करता है।
कंप्यूटर मानव भाषा नहीं समझते हैं। वास्तव में, निम्नतम स्तर पर, कंप्यूटर केवल संख्याओं के अनुक्रम को समझते हैं जो परिचालन कोड (संक्षेप में opcodes) का प्रतिनिधित्व करते हैं।
दूसरी ओर, मनुष्यों के लिए opcodes के संदर्भ में प्रोग्राम लिखना बहुत कठिन होगा। इसलिए, प्रोग्रामिंग भाषाओं का आविष्कार मनुष्यों के लिए कंप्यूटर प्रोग्राम लिखना आसान बनाने के लिए किया गया था।
प्रोग्रामिंग लैंग्वेज इंसानों को पढ़ने और समझने के लिए हैं। इसलिए प्रोग्राम (सोर्स कोड) को मशीनी भाषा में अनुवाद किया जाना चाहिए ताकि कंप्यूटर प्रोग्राम को निष्पादित (execute) कर सके (क्योंकि कंप्यूटर केवल मशीनी भाषा को समझता है)।
जिस तरह से यह अनुवाद होता है वह इस बात पर निर्भर करता है कि प्रोग्रामिंग भाषा संकलित भाषा है या interpreted भाषा है।
कम्पाइलर के प्रकार (Types of Compiler in Hindi)
मुख्य रूप से तीन प्रकार के कंपाइलर (compiler) होते हैं:
- सिंगल पास कम्पाइलर (Single Pass Compilers)।
- Two पास कम्पाइलर (Two Pass Compilers)।
- मल्टी पास कम्पाइलर (Multi pass Compilers)।
आइए इन तीन प्रकार के कंपाइलरों को समझते हैं –
कंपाइलर के प्रकार | परिचय |
---|---|
सिंगल पास कम्पाइलर | इस प्रकार के कम्पाइलर को bash/sh/tcsh जैसे कमांड दुभाषियों को सिंगल पास कंपाइलर माना जा सकता है, लेकिन जैसे ही वे संसाधित होते हैं, वे प्रविष्टि भी निष्पादित करते हैं। |
Two पास कम्पाइलर | एक भाषा संसाधक जो प्रोग्राम के माध्यम से दो बार अनुवाद किया जाता है; पहले पास पर यह कथनों के सिंटैक्स की जाँच करता है और प्रतीकों की एक तालिका बनाता है, जबकि दूसरे पास पर यह वास्तव में प्रोग्राम स्टेटमेंट का मशीनी भाषा में अनुवाद करता है। |
मल्टी पास कम्पाइलर | एक प्रोग्राम के सोर्स कोड को कई बार प्रोसेस करने के लिए मल्टी पास कंपाइलर का उपयोग किया जाता है। |
कंपाइलर कैसे काम करता है (How compiler works)
निम्नलिखित एक संकलित (compiled) प्रोग्रामिंग भाषा के लिए प्रोग्रामिंग प्रक्रिया को दिखाता है:
एक कम्पाइलर प्रोग्राम कोड (सोर्स कोड) लेता है और सोर्स कोड को मशीन लैंग्वेज मॉड्यूल (ऑब्जेक्ट फाइल कहा जाता है) में बदल देता है। एक अन्य विशेष प्रोग्राम, जिसे लिंकर कहा जाता है, एक निष्पादन योग्य फ़ाइल बनाने के लिए इस ऑब्जेक्ट फ़ाइल को अन्य पहले से संकलित ऑब्जेक्ट फ़ाइलों (विशेष रूप से रन-टाइम मॉड्यूल) के साथ जोड़ता है।
इसलिए, एक संकलित भाषा के लिए प्रोग्राम चलाने से पहले प्रोग्राम कोड से मशीन निष्पादन योग्य कोड में रूपांतरण होता है। यह एक interpreted प्रोग्रामिंग भाषा के लिए होने वाली प्रक्रिया से बहुत अलग प्रक्रिया है।
यह कुछ हद तक सरल है क्योंकि compiled भाषाओं का उपयोग करके बनाए गए कई आधुनिक कार्यक्रम गतिशील linked libraries या shared libraries का उपयोग करते हैं। इसलिए, निष्पादन योग्य फ़ाइल को चलाने के लिए इन गतिशील लिंक्ड लाइब्रेरी (विंडोज) या साझा लाइब्रेरी (लिनक्स, यूनिक्स) की आवश्यकता हो सकती है।
मूल रूप से, जब आप किसी प्रोग्राम को निष्पादित करते हैं जो हाई लेवल प्रोग्रामिंग भाषा में लिखा जाता है तो यह दो भागों में निष्पादित होता है।
- पहले भाग में, सोर्स प्रोग्राम को ऑब्जेक्ट प्रोग्राम (निम्न स्तर की भाषा) में संकलित और अनुवादित किया जाता है।
- दूसरे भाग में, ऑब्जेक्ट प्रोग्राम को असेंबलर के माध्यम से लक्ष्य प्रोग्राम में अनुवादित किया जाता है।
Compiler के फायदे और नुकसान हिंदी में
प्रोग्रामिंग में कंपाइलर का उपयोग करने के कुछ फायदे और नुकसान यहां दिए गए हैं:
Compiler के लाभ | कम्पाइलर के नुकसान |
---|---|
कम्पाइलर एक स्वतंत्रता (Independence) है। | Compiler एक हार्डवेयर स्पेसिफिक है। |
हार्डवेयर ऑप्टिमाइज़ेशन कंपाइलर के अच्छे फायदों में से एक है। | कम्पाइलर बहुत समय लगता है। |
स्रोत कोड और कार्यक्रमों के लिए सुरक्षा | यह अतिरिक्त स्मृति (memory) लेता है। |
कंपाइलर दुभाषिया की तुलना में तेजी से चलता है क्योंकि यह एक पूर्व-संकलित पैकेज है। | इसमें डिबगिंग कठिनाई है। |
संकलक से उत्पन्न निष्पादन योग्य फाइलों को वास्तविक स्रोत कोड की आवश्यकता के बिना किसी अन्य सिस्टम पर निष्पादित किया जा सकता है। | स्रोत कार्यक्रम को प्रत्येक संशोधन के लिए संकलित किया जाना है। |
Compiler and Interpreter in Hindi
कंपाइलर और इंटरप्रेटर दोनों ऐसे प्रोग्राम हैं जो उच्च-स्तरीय भाषा को मशीनी भाषा में परिवर्तित करते हैं ताकि इसे कंप्यूटर द्वारा समझा जा सके। हालाँकि, कंपाइलर और इंटरप्रेटर के बीच अंतर हैं।
यहाँ Compiler और interpreter के बीच कुछ महत्वपूर्ण अंतर हैं:
कंपाइलर (Compiler) | इंटरप्रेटर (Interpreter) |
---|---|
एक compiler पूरे प्रोग्राम को एक बार में compiled करता है। | एक interpreter एक बार में कोड की एक पंक्ति लेता है। |
Compiler एक मध्यवर्ती मशीन कोड उत्पन्न करता है। | Interpreter कभी भी कोई मध्यवर्ती मशीन कोड नहीं बनाता है। |
इंटरमीडिएट ऑब्जेक्ट कोड बनाने के लिए कंपाइलर को अधिक मेमोरी की आवश्यकता होती है। | इंटरप्रेटर को कम मेमोरी की आवश्यकता होती है। |
Compiler का उपयोग C, C++, C#, Java, Scala, आदि प्रोग्रामिंग भाषाओं द्वारा किया जाता है। | एक interpreter का उपयोग Python, पीएचपी, रूबी, पर्ल, आदि प्रोग्रामिंग भाषाओं द्वारा किया जाता है। |
कंपाइलर संकलन के बाद सभी त्रुटियों को प्रदर्शित करता है, जो त्रुटि का पता लगाने और हटाने की प्रक्रिया को जटिल बनाता है। | Interpreter प्रत्येक पंक्ति की त्रुटियों को एक-एक करके प्रदर्शित करता है, यदि कोई हो, जिससे त्रुटियों का पता लगाना और निकालना आसान हो जाता है। |
Compiler FAQs
कंपाइलर का उपयोग प्रोग्रामर को errors दिखाने के लिए किया जाता है। “कंपाइलर” नाम मुख्य रूप से उन प्रोग्रामों के लिए उपयोग किया जाता है जो एक निष्पादन योग्य प्रोग्राम बनाने के लिए सोर्स कोड को उच्च-स्तरीय प्रोग्रामिंग भाषा से निम्न स्तर की भाषा (जैसे असेंबली भाषा, ऑब्जेक्ट कोड, या मशीन कोड) में अनुवाद करते हैं।
एक कम्पाइलर प्रोग्राम एक इंटरप्रेटर प्रोग्राम की तुलना में चलाने के लिए तेज़ है। एक कंपाइलर वास्तव में तेज़ प्रोग्राम तैयार करता है। यह मौलिक रूप से होता है क्योंकि इसे प्रत्येक कथन का केवल एक बार विश्लेषण करना चाहिए, जबकि एक दुभाषिया (इंटरप्रेटर) को हर बार इसका विश्लेषण करना चाहिए।
Compiler से आप क्या समझते हैं?
Compiler एक प्रोग्राम है जिसमें उच्च-स्तरीय भाषा को मशीनी भाषा/निम्न-स्तर की भाषा में अनुवाद करने की क्षमता होती है जो कंप्यूटर के लिए पठनीय है। उच्च-स्तरीय भाषा को स्रोत के रूप में जाना जाता है जबकि निम्न-स्तरीय भाषा को मशीन कोड के रूप में जाना जाता है। Compiler के उदाहरण में सी भाषा, सी++, सी# और जावा आदि हैं।
निष्कर्ष
कम्पाइलर एक प्रकार का ट्रांसलेटर प्रोग्राम है जिसका उपयोग पूरे प्रोग्राम को स्कैन करने और एक बार में मशीन कोड में ट्रांसलेट करने के लिए किया जाता है। Compiler का मुख्य उद्देश्य प्रोग्राम के अर्थ को बदले बिना हाई लेवल भाषा में लिखे गए कोड को लो-लेवल भाषा में बदलना है।
मुझे उम्मीद है कि यह लेख आपको यह समझने में मदद करेगा कि कम्पाइलर क्या है (What is Compiler in Hindi) और इसके प्रकार और कंपाइलर कैसे काम करता है और इसके फायदे और नुकसान आदि।