कम्पाइलर क्या है?

Share Us

2434
कम्पाइलर क्या है?
13 Mar 2023
6 min read

Blog Post

चाहे आप एक technical student हों या फिर एक Computer Science student आपके लिए compiler को समझना बहुत ही जरुरी होता है। क्योंकि अगर आपको Programming के बारे में पूरी तरह समझना है तो कम्पाइलर का क्या कार्य है और इसके विषय में जानना बहुत ही जरुरी हो जाता है। वैसे एक Compiler को यदि आसान भाषा में कहूँ तो ये ऐसा program होता है जो कि एक Source Language को जरुरत के अनुसार एक Target Language में convert करता है।

एक Computer में यह High level language को Machine Language में convert करता है। आसान शब्दो में Compiler एक प्रकार का कंप्यूटर प्रोग्राम है, जो एक प्रोग्रामिंग भाषा (Programming language) में लिखे गए कोड को दूसरी प्रोग्रामिंग भाषा में ट्रांसलेट करने का कार्य करता है। Compiler हमारे द्वारा लिखे गए कोड को कंप्यूटर के समझने योग्य बनाता है। जिससे कंप्यूटर को उचित output प्रदान करने में सहायता प्राप्त हो सके।

"कंपाइलर" नाम का उपयोग मुख्य रूप से उन प्रोग्रामों के लिए किया जाता है जो निष्पादन कोड (Execution code) बनाने के लिए एक उच्च-स्तरीय(High-Level) प्रोग्रामिंग भाषा (Programming language) से निचले स्तर (Low level) की भाषा (Language) में स्रोत कोड (Source Code) का अनुवाद करते हैं। यानि Compiler एक ऐसा कम्प्यूटर प्रोग्राम होता है जो कि किसी कम्प्यूटर कोड को ट्रैन्स्लेट करता है वो भी एक प्रोग्रैमिंग भाषा से दूसरे प्रोग्रैमिंग भाषा में।

यदि आपने कंप्‍यूटर की प्रोग्रामिंग भाषा के बारे में पढा होगा तो आपने कम्पाइलर (compiler) के बारे में जरूर सुना होगा। लेकिन कई लोगों को अभी भी पता नहीं होगा कि कम्पाइलर (compiler) क्‍या होता है और प्रोग्रामिंग में कम्पाइलर (compiler) का क्या महत्‍व होता है।

यदि आप नहीं जानते हैं कि कम्पाइलर क्या है (What is Compiler तो आपके लिए इस technology को आसानी से समझने का एक बहुत ही बढ़िया मौका है। आज इस आर्टिकल में हम आपको कम्पाइलर (compiler) के बारे में पूरी जानकारी विस्तार से देंगे जैसे कम्पाइलर क्या है, इसके प्रकार क्या हैं, इसके फायदे और नुकसान क्या हैं आदि। 

कम्पाइलर क्या है? What is compiler?

कम्पाइलर एक सॉफ्टवेयर है, compiler is a software जो सोर्स कोड को ऑब्जेक्ट कोड में परिवर्तित कर देता है। आसान सरल शब्दों में कहें तो कम्पाइलर हाई लेवल लैंग्वेज high level language को बाइनरी लैंग्वेज binary language में बदल देता है।

Compiler उन भाषाओं को ऐसी संरचना मे परिवर्तित करने का कार्य करता है जो वास्तव में जटिल है एवं जिन्हे समझ पाना कंप्यूटर की क्षमता से बाहर है। यह उच्च स्तरीय प्रोग्रामिंग भाषाओं (High level programming language) को निम्न स्तरीय प्रोग्रामिंग भाषाओं (Low level programming language) में ट्रांसलेट करने का कार्य करता है। यह मशीनी उपकरणों की सहायता से इन भाषाओं की संरचना में परिवर्तन करता है। 

हम कह सकते हैं कि यह एक Software program है जिसका प्रयोग भाषाओं को ट्रांसलेट करने हेतु किया जाता हैं। यह कंप्यूटर विज्ञान की वह तकनीक है जो सामान्यतः human-readable code को machine-readable code मे ट्रांसलेट करता है। मतलब इसे इस तरह समझ सकते हैं कि कंप्यूटर प्रोग्रामिंग के लिए दो तरह की भाषाएँ होती हैं -

निम्न स्तरीय प्रोग्रामिंग भाषा (Low Level Programming language) एक विशेष मशीन के लिए सीधे मेल खाती है, उच्च स्तरीय प्रोग्रामिंग भाषा (High Level Programming language) ये भाषाएँ मशीन से स्वतंत्र होती हैं और किसी भी प्रकार के कंप्यूटर पर कार्य कर सकती हैं लेकिन आप जानते हैं कंप्‍यूटर केवल मशीनी भाषा को समझता है और मशीनी भाषा में प्रोग्रामिंग करना संभव नहीं है इसलिये प्रोग्रामिंग करने के लिये पहले असेम्बली भाषा का निर्माण किया गया जो कि एक निम्न स्तरीय प्रोग्रामिंग भाषा ( Low Level Programming language) है इसे मशीनी भाषा में बदलने के लिये या अनुवाद करने के लिये एक प्रोग्राम बनाया गया जिसे असेम्‍बलर कहा जाता है। 

उच्च स्तरीय प्रोग्रामिंग भाषा (High Level Programming language) जैसे बेसिक, सी, सी++, जावा C, C++, Java आदि को भी मशीनी भाषा में अनुवाद करने की जरूरत होती है ताकि कंंम्‍यूटर उसे समझ सके कम्पाइलर (compiler) वो प्रोग्राम होता है जो किसी उच्च स्तरीय प्रोग्रामिंग भाषा में लिखे प्रोग्राम को किसी मशीनी भाषा में बदल देता है। उच्च स्तरीय कंप्यूटर भाषाएँ जैसे सी++, जावा में लिखे प्रोग्राम को सोर्स कोड कहा जाता है, कम्पाइलर इन सोर्स कोड को ऑब्जेक्ट कोड में बदलता है ऑब्जेक्ट कोड बाइनरी कोड होते हैं जिन्‍हें कंप्‍यूटर समझ सकता है।

Compiler हमारे द्वारा लिखे गए कोड को कंप्यूटर के समझने योग्य बनाता है। जिससे कंप्यूटर को उचित output प्रदान करने में सहायता प्राप्त हो सके। Compiler उन भाषाओं को ऐसी संरचना मे परिवर्तित करने का कार्य करता हैं जो वास्तव में जटिल हैं, एवं जिन्हे समझ पाना कंप्यूटर की क्षमता से बाहर हैं। कुल मिलाकर Compiler एक ऐसा कम्प्यूटर प्रोग्राम होता है जो कि किसी कम्प्यूटर कोड को ट्रैन्स्लेट करता है वो भी एक प्रोग्रैमिंग language से दूसरे प्रोग्रैमिंग language में।

कम्पाइलर के प्रमुख भाग Major Parts of the Compiler

कम्पाइलर Compiler के मुख्य रूप से दो parts होते हैं-

Analysis Phase

Analysis phase में एक given source program से एक intermediate representation को create किया जाता है। इस Phase के मुख्य भाग Lexical Analyzer, Syntax Analyzer और Semantic Analyze हैं। 

Synthesis Phase

कम्पाइलर का दूसरा भाग synthesis phase में equivalent target program को create किया जाता है intermediate representation से और इस Phase के प्रमुख भाग हैं Intermediate Code Generator, Code Generator, और Code Optimizer कोड ऑप्टिमाइजर। 

कम्पाइलर का कार्य Compiler Function

Compiler का कार्य उच्च स्तरीय भाषाओं (source code) को ट्रांसलेट कर मशीनी भाषा मे परिवर्तित करना है। यानि यह एक language translator की तरह कार्य करता है। यह भाषा की संरचना में परिवर्तन करने का बहुत ही बढ़िया तरीका है। इसकी मदद से कंप्यूटर बेहतरीन तरीके से कार्य करता हैं। हम कह सकते हैं कि यह आधुनिक विकास की वह शैली है जो कंप्यूटर को एक नई ऊंचाई में ले जाने का कार्य करती है।

इसके द्वारा कंप्यूटर के क्षेत्र में विस्तार लाने का कार्य किया जाता है। दरअसल कंप्यूटर हेतु एक ऐसी प्रोग्रामिंग भाषा होनी चाहिए, जिसे कंप्यूटर समझ सकें और कंप्यूटर की संरचना का निर्माण बाइनरी प्रणाली (Binary system) में होता हैं, जिसका निर्माण 0 एवं 1 से होता है।

इसी बाइनरी प्रणाली की भाषा को कंप्यूटर की मशीनी भाषा के रूप में समझा जाता है। आपको बता दें कि कंप्यूटर सिर्फ इन बाइनरी भाषाओं को समझने में ही सक्षम होता हैं और इन भाषाओं को मशीनी भाषाओं में ट्रांसलेट करने का जो मुख्य कार्य किया जाता हैं वह कम्पाइलर प्रोग्राम (Compiler program) द्वारा ही किया जाता है। यह अपना पूरा कार्य बहुत ही अच्छे तरीके से करता है जिस वजह से इसके कार्यो में स्पष्टता रहती है। 

कम्पाइलर के प्रकार Compiler Types

कंपाइलर के प्रकार निम्न हैं: –

Single-pass compiler

Single-pass compiler का कार्य प्रोग्राम को पढ़ना है और यह कम्पाइलर के सभी phases को संगठित कर उसमें एकरूपता लाने का कार्य करता है। साथ ही single pass compiler आउटपुट को स्टोर करने का भी कार्य करता है जिसके द्वारा वह अपनी प्रक्रिया को पूर्णतः प्रदान करता हैं।

Also Read: CRM क्या है और कैसे काम करता है

Two-pass compiler

यह Compiler के सभी phases को दो भागों में विभाजित कर संगठित करने का कार्य करता है। यह प्रथम के चार फेसेस और अंत के 2 फेसेस को अलग-अलग भागों में विभाजित करता है। यह input और output की प्रक्रिया में अपनी अहम भूमिका अदा करने का कार्य करता है। यह syntactical analysis की प्रक्रिया में उसकी सहायता करता हैं।

Multi-pass compiler

एक प्रोग्राम के सोर्स कोड को कई बार प्रोसेस करने के लिए मल्टी पास कंपाइलर का उपयोग किया जाता है। यह single pass compiler के विपरीत कार्य करता है। यह ऊपर के दो pass को कई चरणों मे जांच करता है और अपनी जांच पूर्ण कर लेने के पश्चात ही यह एक output तैयार करता है। यानि यह ऊपर के 2 pass में जो कमी रह जाती है उसको पूरा करने का कार्य करता है।

कंपाइलर की विशेषताएं Compiler Features

कम्पाइलर की कुछ मुख्य विशेषताएं निम्न हैं-

  • कम्पाइलर के मशीन कोड एक दम सही होते हैं 

  • कम्पाइलर की गति अच्छी होती है

  • यह त्रुटियों का अच्छे से पता लगाता है

  • व्याकरण के अनुसार कोड की जाँच करता है

  • सोर्स कोड चाहे कितना भी बदले लेकिन कोड का अर्थ नहीं बदलता है

कंपाइलर के फायदे Compiler Advantages

  • कम्पाइलर कम समय लेता है

  • कम्पाइलर पूरे प्रोग्राम को एक साथ स्कैन करके मशीन कोड में ट्रांसलेट करता है। जिसे इंटरप्रेटर एक एक लाइन करके करता है। यानि कम्पाइलर कोड को एक ही बार में ट्रांसलेट कर देता है

  • कम्पाइलर CPU का उपयोग ज्यादा करता है

  • यह बहुत से हाई लेवल लैंग्वेज को सपोर्ट करता है जैसे, C, C++, JAVA.

कंपाइलर के नुकसान Compiler Disadvantages

  • कम्पाइलर object code जेनेरेट करता है जिसके कारण अधिक मेमोरी की जरुरत पड़ती है 

  • कम्पाइलर को अधिक जगह की आवश्यकता होती है

  • कम्पाइलर लचीला नहीं होता है

  • त्रुटियों को खोजना मुश्किल होता है