Compiler क्या है और इसका क्या उपयोग है?

Compiler एक ऐसा कम्प्यूटर प्रोग्राम होता है जो की किसी कम्प्यूटर कोड को ट्रैन्स्लेट करता है वो भी एक प्रोग्रैमिंग language से दूसरे प्रोग्रैमिंग language में।

क्या आप जानते हैं कम्पाइलर क्या है (What is Compiler in Hindi)? यदि नहीं तब तो आपके लिए एक बहुत ही बढ़िया मौका है इस technology को आसानी से समझने के लिए. चाहे आप एक technical student या कोई non-tech background से हो, इस compiler को समझने में आ सभी की भलाई है.

क्यूंकि इसे सभी जगहों में इस्तमाल किया जाता है. वैसे एक Computer Science student के लिए तो इसे समझना बहुत ही जरुरी बात होता है. क्यूंकि अगर आपको Programming के बारे में पूरी तरह समझना है तब कम्पाइलर का क्या कार्य है के विषय में जानना बहुत ही जरुरी हो जाता है।

वैसे एक Compiler को यदि में आसान भाषा में कहूँ तब ये ऐसा program होता है जो की एक Source Language को जरुरत के अनुसार एक Target Language में convert करता है. एक Computer में यह High level language को Machine Language में convert करता है.

इसलिए आज मैंने सोचा की क्यूँ न आप लोगों को कम्पाइलर का क्या कार्य है के विषय में पूरी जानकारी प्रदान करूँ जिससे आने वाले समय में आपको इस basic technology की जानकारी पहले से ही हो. तो बिना देरी किये चलिए शुरू करते हैं और जानते हैं की कम्पाइलर किसे कहते है और कैसे काम करता है।

कम्पाइलर क्या है (What is Compiler in Hindi)

Compiler Kya Hai Hindi

एक Compiler एक software program होता है जो की transform करता है high-level source code को जो की एक developer के द्वारा लिखा गया है एक high-level programming language में उसे एक low level object code (binary code) machine language में, और जिसे की Processor के द्वारा आसानी से साझा किया जा सके. इस प्रक्रिया को जिसमें high-level programming को machine language में बदला जाता है उसे Compilation कहा जाता है।

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

जैसे की मैंने पहले ही आपको Compiler की technical definition से परिचित करा दिया है, जैसे की सभी लोग अक्सर करते हैं, लेकिन अभी चलिए आपको में Compiler की ही definition को बिलकुल ही आसान भाषा में समझाने वाला हूँ जिससे की एक non-technical व्यक्ति भी समझ सकता है।

कुछ समय के लिए compiler के विषय में भूल जाईये और imagine करें की आप एक सुन्दर सी country को अपनी छुट्टी बिताने के लिए गए हुए हैं. इसमें जो एक बहुत ही basic सी problem है वो ये की आपको बोलना, लिखना और समझना केवल अपने regional language में आता है जो की है Hindi.

लेकिन वहां उस देश के नागरिकों को केवल English के सिवा और कुछ नहीं आता है. तब ऐसे में आप वहां कैसे दूसरों के साथ communicate करेंगे?

ऐसे में इसका एक ही solution हैं की आपको एक language translator की जरुरत पड़ेगी जो की एक इन्सान या एक बुक या एक App भी हो सकता है. ये language translator आपकी Hindi को English में translate करेगा ताकि व दूसरा व्यक्ति आपकी बातों को समझ सके. साथ में वो English को Hindi में भी convert करेगा तक आपको भी उनकी भाषा समझ में आ सके।

यही समान चीज़ computer के साथ भिः होता है. Computers को भी केवल binary language (language जिसमें 0s और 1s होती हैं) ही समझ में आता है, वहीँ Users को जो की Computer को English या कोई language समझ में आता है. ऐसे में आपके द्वारा दिए गए commands को computer कैसे समझेगा? साथ में computer के द्वारा perform किया गया कोई भी process calculation आपको समझ में नहीं आएगा. ऐसे में यहाँ पर एक language translator की जरुरत है ताकि वो दोनों में अच्छा तालमेल बैठा सके।

जब हम computer को कुछ command करते हैं process करने के लिए, तब हम कुछ set of instructions-program लिखते हैं English language जैसे की c, c++, Java इत्यादि में जो की English में ही होती है और एक Language Translator की जरुरत होती है उसे convert करने के लिए binary language में जिससे की एक computer उसे आसानी से समझ सके. ऐसे में इस स्थान में Complier का इस्तमाल किया जाता है, जो की high level language को machine language में convert करता है।

YouTube video

Compliers की Major Parts क्या होते है

वैसे देखा जाये तो Compiler के मुख्य रूप से दो major parts होते हैं :

Analysis Phase

पहला हिस्सा है analysis phase, इसमें एक intermediate representation को create किया जाता है एक given source program से. इस 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।

Decompiler किसे कहते है

एक ऐसा compiler जो की machine language को high-level natural language में convert करता है उसे एक decompiler कहा जाता है।

Cross-Compiler किसे कहते है

Compilers जो की object code produce करते हैं जो की केवल system में run होने के लिए बना होता है उसे Cross- Compilers कहा जाता है।

Prgramming Language किसे कहते है

ऐसा Compiler जो की एक Programming language को दुसरे में convert करता है उसे Language translator कहा जाता है।

कम्पाइलर का क्या उपयोग है

Compilers का सबसे ज्यादा इस्तमाल चार major steps को करने में उपयोग किया जाता है।

1. Scanning: ये scanner read करती है एक character एक समय में source code से और सभी characters का track रखता है जिससे ये पता चलता है की कौन सा character किस line में मेह्जुद है।

2. Lexical Analysis: Compiler convert करता है sequence of characters को जो की source code में appear होते हैं उन्हें एक series of strings of characters (जिन्हें की tokens कहते हैं) में convert करते हैं, जो की associated होते हैं एक specific rule एक program के द्वारा जिसे की एक lexical analyzer. एक symbol table का इस्तमाल होता हैं lexical analyzer में words को store करने के लिए Source Code में जो की correspond करता है token generated के साथ।

3. Syntactic Analysis: इस step में, syntax analysis किया जाता है, जिसमें preprocessing involve होता है जो की ये determine करता है की क्या tokens जो की create होता है lexical analysis के दौरान वो proper order में हैं या नहीं usage के हिसाब से. Set of keywords का correct order जो की एक desired result finally yield करता है उसे Syntax कहते हैं. इसमें compiler को ये check source code check करना होता है जिससे syntactic accuracy को ensure किया जा सके।

4. Semantic Analysis: इस step में बहुत से intermediate steps होते हैं. पहला, इसमें tokens का structure check किया जाता है, साथ में उनका order भी check किया जाता है की क्या वो given language के grammar के accordingly है या नहीं.

Token Structure का meaning interpret किया जाता है parser और analyzer के द्वारा जिससे की finally एक intermediate code generate हो सके जिसे की Object code कहा जाता है. इन object code में instructions होते हैं जो की processor action को represent करते हैं किसी corresponding token के लिए जब उसे program में encounter किया जाता है.

आखिर में, पूरा entire code को parsed और interpret किया जाता है ये check करने के लिए की क्या कोई optimizations possible है भी या नहीं. एक बार optimizations को perform किया जाये, तब appropriate modified tokens को insert किया जाता है object code में जिससे final object code generate किया जा सके, जिसे की एक file के भीतर save किया जाता है।

Compiler के अलग अलग Phases क्या है

चलिए यहाँ में आप लोगों को Compiler को operate होने में इस्तमाल हो रहे अलग अलग phases के विषय में चलिए जानते हैं।

1.  Lexical Analysis
2.  Synatx Analysis
3.  Semantic Analysis
4.  Intermediate Code Generator
5.  Code optimizer
6.  Code generation

कंपाइलर और इंटरप्रेटर क्या है?

कंपाइलर एक तरह का ट्रांस्लेटर होता है जो की सोर्स भाषा को वस्तु की भाषा में बदलता है। इंटरप्रेटर एक तरह का प्रोग्राम है जो कि सोर्स भाषा में ही काम करता है।

कंपाइलर से आप क्या समझते हैं?

कंपाइलर एक प्रकार का ट्रैन्स्लेटर प्रोग्राम होता है।

कम्पाइलर कौन सा सॉफ्टवेयर है?

कम्पाइलर एक ऐसा प्रोग्राम है. जो किसी उच्चस्तरीय भाषा में लिखे गए, program का translation कंप्यूटर की मशीनी भाषा में कर देता है. 

आज आपने क्या सीखा

मुझे उम्मीद है की आपको मेरी यह लेख कम्पाइलर क्या है (What is Compiler in Hindi) जरुर पसंद आई होगी. मेरी हमेशा से यही कोशिश रहती है की readers को कम्पाइलर का क्या उपयोग है के विषय में पूरी जानकारी प्रदान की जाये जिससे उन्हें किसी दुसरे sites या internet में उस article के सन्दर्भ में खोजने की जरुरत ही नहीं है.

इससे उनकी समय की बचत भी होगी और एक ही जगह में उन्हें सभी information भी मिल जायेंगे. यदि आपके मन में इस article को लेकर कोई भी doubts हैं या आप चाहते हैं की इसमें कुछ सुधार होनी चाहिए तब इसके लिए आप नीच comments लिख सकते हैं.

यदि आपको यह post कम्पाइलर का क्या कार्य है हिंदी में पसंद आया या कुछ सीखने को मिला तब कृपया इस पोस्ट को Social Networks जैसे कि Facebook, Twitter इत्यादि पर share कीजिये।

About the Author

Prabhanjan Sahoo

Prabhanjan Sahoo

मैं Prabhanjan, HindiMe का Technical Author & Co-Founder हूँ। Education की बात करूँ तो मैं एक Enginnering Graduate हूँ। मुझे नयी नयी Technology से सम्बंधित चीज़ों को सीखना और दूसरों को सिखाने में बड़ा मज़ा आता है।

Related Posts

Leave a Comment

Comments (11)

  1. Hello sir lm ganesh jha. Main aaj hi aap ki clip ko read kiya hai. Bahut aacha laga. Mari aap se eak request hai ki mujhe software ke bare mai jankari chahiye. Please help me. Re gards. Ganesh jha. Mein no. 8287157646

    Reply
    • Chetan ji, System programming उन programming को कहते हैं जिनका इस्तमाल computer programs को लिखने और उसकी designing करने के लिए किया जाता है. ये allow करता है computer hardware को interface होने के लिए programmer और user के साथ, वहीँ इससे application को effectively execute किया जा सके एक computer system में.

      System programming का उपयोग ऐसे computer system software की development करने के लिए होता है जो की manage और control करते हैं computer operations को.

      Reply
  2. Hello sir
    Thanks for this
    Aapne hindi Mai bnaya .
    Easy language Mai h sab smjh aagya .sir aapka WhatsApp ya contact number milega plz

    Reply