कम्पाइलर क्या है? कम्पाइलर कैसे कार्य करता है? पूरी जानकारी हिंदी में

दोस्तों क्या आप जानते हैं कम्पाइलर क्या है (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 की जानकारी पहले से ही हो. तो बिना देरी किये चलिए शुरू करते हैं और जानते हैं की कम्पाइलर किसे कहते है और कैसे काम करता है.  

कम्पाइलर क्या है? कम्पाइलर कैसे कार्य करता है? पूरी जानकारी हिंदी में
TEJWIKI.IN 

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

कंप्‍यूटर केवल मशीनी भाषा को समझता है और मशीनी भाषा में प्रोग्रामिंग करना संभव नहीं है इसलिये प्रोग्रामिंग करने में लिये पहले असेम्बली भाषा का निर्माण किया गया जो कि एक निम्न स्तरीय प्रोग्रामिंग भाषा ( Low Level Programming language) है। जैसे की हमने आपको पहले भी बताया है की compailer एक तरह का software program है। compailer high level programming language को जो की किसी डेवलपर या यूजर द्वारा गयी है को को machine level language में convert करता है। इस पुरे process को compilation कहते है।

Computer में कम्पाइलर एक ऐसा प्रोग्राम है जो High-level programming language जैसे की C, C++, Java, Python में लिखे गए कोड को मशीन के भाषा में बदल देता है। अलग-अलग प्रोग्रामिंग लैंग्वेज के लिए अलग-अलग कंपाइलर उपलब्ध होते हैं।

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

जैसे की मैंने पहले ही आपको 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 करता है.

कंपाइलर (संकलक) का इतिहास [History of Compiler] 

हार्वर्ड मार्क I कंप्यूटर पर काम करते समय ग्रेस हॉपर द्वारा पहला कंपाइलर विकसित(Compiler Develop) किया गया था। आज, अधिकांश उच्च-स्तरीय भाषाओं(High Level Language) में अपने स्वयं के संकलक(Compiler) शामिल होंगे या उनके पास टूलकिट उपलब्ध होंगे जिनका उपयोग कार्यक्रम(Program) को संकलित(Compile) करने के लिए किया जा सकता है।

दो लोकप्रिय संकलक(Compiler) जावा के लिए Eclipseहैं और सी और सी ++ के लिए gcc कमांड हैं। Program कितना बड़ा है, इसके आधार पर, संकलन(Compiler) में कुछ सेकंड या मिनट लगने चाहिए। यदि संकलित(Compiled) होने के दौरान कोई त्रुटि(Error) नहीं होती है, तो एक निष्पादन योग्य(Executable) फ़ाइल बनाई जाती है।

कम्पाइलर के प्रकार (Types of Compiler in Hindi) 

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

  • Single-pass compiler
  • Two-pass compiler
  • Multi-pass compiler 

Single-pass Compiler

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

Two-pass Compiler

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

Multi-pass Compiler

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

Compiler के छह Phases क्या हैं? 

Compiler, भाषाओं की संरचना एवं उनकी इकाइयों में अनेकों परिवर्तन करता हैं। जिसके द्वारा वह आधुनिक आवश्यकताओं के अनुरूप भाषा शैली में उचित परिवर्तन करता हैं। कम्पाइलर अपने कार्य को पूर्ण इन छह चरणों के माध्यम से करता है। जिसके द्वारा वह उच्च स्तरीय भाषा को निम्न स्तरीय भाषा मे परिवर्तित करने का कार्य करता हैं, जो निम्न प्रकार हैं —

(1) Lexical analysis: यह Compiler की प्रॉसेस का प्रथम चरण हैं। जिसके अंतर्गत यह विभिन्न शब्दों को क्रम सँख्या प्रदान करने का कार्य करता हैं। यह उच्च स्तरीय भाषाओं की एक एक इकाई को token के रूप में विभाजित कर देता हैं। यह useless spaces और blank pages को हटाने का भी कार्य करता हैं।

(2) Syntax analysis: यह Compiler का सबसे महत्वपूर्ण चरण हैं। जिसमें यह Lexical analysis के कार्यो की जांच करता हैं। यह उसके कार्यो को व्याकरण की शुद्धता के रूप में जांच करता हैं। यह error pages को select कर उसको दर्शाने का कार्य करता हैं।

(3) Semantic analysis: यह logically error को खोजने का कार्य एवं उस समस्या का समाधान निकालने का कार्य करता हैं। यह command द्वारा input के कार्यो की सटीकता एवं उसकी कार्य प्रणाली में संशोधन का कार्य करता हैं।

(4) Intermediate code generator: कम्पाइलर का यह फेस भी अत्यंत महत्वपूर्ण होता हैं। यह ऊपर के सभी phases को संगठित रूप प्रदान करने का कार्य करता हैं। यह उनके सभी कार्यो को 3 address कोड में convert करने का कार्य करता हैं। जिससे उनके कार्यों को उनके निर्माण के उद्देश्यों से कार्य मे लाया जा सकें।

(5) Code optimizer: इंटरमीडिएट कोड जेनरेटर जब अपना कार्य पूर्ण कर लेता हैं अर्थात जब वह 3 Address Code को generate कर लेता हैं। तो यह उन codes को optimize करने का कार्य करता हैं। अर्थात यह उनके विस्तारवाद को सूक्ष्म रूप में प्रदर्शित करने का कार्य करता हैं। जिसके द्वारा उसको पड़ने एवं समझने में आसानी हो सकें।

(6) Code generation: तत्पश्चात यह code generate कर उसको पूर्णता प्रदान करता हैं। जिसकी समाप्ति के पश्चात कम्पाइलर का कार्य पूर्ण हो जाता हैं आसान शब्दों में हम कहे तो यह आखरी चरण उच्च स्तरीय भाषा को मशीनी भाषा मे परिवर्तित कर देती हैं। जिसको कंप्यूटर को समझने में सहायता प्राप्त करती हैं और उसे निम्न स्तरीय भाषा के रूप में आसानी से पढ़ा एवं समझा जा सकता हैं।

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

Compiler Computer सॉफ्टवेयर है जो किसी एक प्रोग्रामिंग भाषा में लिखे हुए Computer कोड जिसे हम सोर्स कोड कहते हैं को ऑब्जेक्ट कोड (मशीनी भाषा) में बदल देता हैं हम जितनी भी प्रोग्रामिंग भाषाएं देखते हैं उन सब में सोर्स कोड लिखने के लिए एक हाई लेवल की भाषा का उपयोग किया जाता है, जैसा की आप सभी जानते हैं हमारा Computer केवल मशीनी भाषा को ही जानता है इसलिए जिस भी Programming Language का उपयोग करके सोर्स कोड या Computer प्रोग्राम लिखा जाता है उसे मशीनी भाषा में बदलना आवश्यक होता है ताकि उस कोड से हम जो काम Computer से करवाना चाह रहे हैं

उसे करवा सके ऐसा तभी संभव हो सकता है जब हम Computer की भाषा में ही बताएं की क्या काम करना है और कैसे करना है ताकि Computer उसे समझ सके और कार्य कर सके, Computer द्वारा समझी जाने वाली इसी भाषा को मशीनी भाषा कहते हैं. परन्तु हमें मशीनी भाषा में Computer को समझाना बहुत ही मुश्किल कार्य है इसलिए हाई लेवल लैंग्वेज में लिखे कोड को मशीन भाषा में बदलने के लिए अनुवादक या कम्पाइलर बनाया गया है।

दोस्तों ऊपर हमने आपको Compiler की तकनीकी परिभाषा से परिचित करा दिया है, जैसे की सभी लोग अक्सर करते हैं, लेकिन अभी चलिए आपको में Compiler की ही परिभाषा को बिलकुल ही आसान भाषा में समझाने वाला हूँ जिससे की एक गैर तकनिकि व्यक्ति भी समझ सकता है. कुछ समय के लिए compiler के विषय में भूल जाईये और imagine करें की आप एक सुन्दर सी country को अपनी छुट्टी बिताने के लिए गए हुए हैं.

इसमें जो एक बहुत ही basic सी problem है वो ये की आपको बोलना, लिखना और समझना केवल अपने regional language में आता है जो की है हिंदी, लेकिन वहां उस देश के नागरिकों को केवल इंग्लिश के सिवा और कुछ नहीं आता है. तब ऐसे में आप वहां कैसे दूसरों के साथ communicate करेंगे, ऐसे में इसका एक ही solution हैं की आपको एक language translator की जरुरत पड़ेगी जो की एक इन्सान या एक बुक या एक App भी हो सकता है. ये language translator आपकी हिंदी को इंग्लिश में translate करेगा ताकि व दूसरा व्यक्ति आपकी बातों को समझ सके. साथ में वो इंग्लिश को हिंदी में भी convert करेगा तक आपको भी उनकी भाषा समझ में आ सके.

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

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 किया जाता है.

कंपाइलर्स के फीचर्स क्या हैं? (Features of Compilers in Hindi)

  • यथार्थता
  • कंपाइलेशन की गति
  • कोड के सही अर्थ को सुरक्षित रखना
  • टार्गेट कोड की गति
  • कानूनी और अवैध प्रोग्राम निर्माणों को पहचानें
  • अच्छी एरर रिपोर्टिंग/हैंडलिंग
  • कोड डिबगिंग सहायता

कम्पाइलर की क्यों जरुरत है? (What is the need of compiler) 

Computers को भी केवल binary language (language जिसमें 0s और 1s होती हैं) ही समझ में आती है, वहीँ Users जिसे की इंग्लिश हिंदी या फिर दुरी लैंग्वेज समँझ आती है। ऐसे में आपके द्वारा दिए गए 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 करता है।

कम्पाइलर के अलग अलग Phases क्या है? 

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

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

FAQs

कम्पाइलर किसे कहते है ?
जो high level language की भाषा में लिखे गए पूर्ण source program को एक बार में पूरा पढ़ता है और उसे machine language में equivalent program में अनुवाद करता है उसे कंपाइलर कहा जाता है।

कम्पाइलर के Major Parts क्या होते है?
अगर बात करे compailer के मुख्य पार्ट्स की तो ये 2 प्रकार के होते है।
Analysis Phase
Synthesis Phase

कम्पाइलर को सबसे पहले किसने बनाया था ?
कम्पाइलर शब्द का उपयोग सबसे पहले 1950 में Grace Murray Hopper (ग्रेस मरे होपर) द्वारा किया गया था। हालाँकि पहले कम्पाइलर का निर्माण 1954 से 1957 के बीच IBM कंपनी के कर्मचारी जॉन बैकम और उनके टीम के द्वारा किया गया था।

पहली हाई लेवल प्रोग्रामिंग भाषा कोनसी थी ?
COBOL वह पहली हाई लेवल प्रोग्रामिंग भाषा थी जिसे कंपाइलर की मदद से कंपाइल किया गया था।

Conclusion

मुझे उम्मीद है की आपको मेरी यह लेख कम्पाइलर क्या है? कम्पाइलर कैसे कार्य करता है? पूरी जानकारी हिंदी में  जरुर पसंद आई होगी. मेरी हमेशा से यही कोशिश रहती है की readers को पूरी जानकारी प्रदान की जाये जिससे उन्हें किसी दुसरे sites या internet में उस article के सन्दर्भ में खोजने की जरुरत ही नहीं है. इससे उनकी समय की बचत भी होगी और एक ही जगह में उन्हें सभी information भी मिल जायेंगे.

यदि आपके मन में इस article को लेकर कोई भी doubts हैं या आप चाहते हैं की इसमें कुछ सुधार होनी चाहिए, तब इसके लिए आप नीचे comments लिख सकते हैं.यदि आपको यह लेख पसंद आया या कुछ सीखने को मिला तब कृपया इस पोस्ट को Social Networks जैसे कि Facebook, Twitter इत्यादि पर share कीजिये.

hi.wikipedia.org/wiki

कम्पाइलर क्या है? कम्पाइलर कैसे कार्य करता है? पूरी जानकारी हिंदी में

Join our Facebook Group

   Join Whatsapp Group

Leave a Comment