हैलो दोस्तों इस पोस्ट में आप पढ़ेंगे Compiler design in Hindi, कमपाईलर डिज़ाइन क्या है, compiler process के phases क्या हैं, और यह क्या काम करता है।
Compiler design in Hindi
कम्पाइलर वह कंप्यूटर प्रोग्राम है, जो की High-level प्रोग्रामिंग लैंग्वेज (Source language) में create किये गए Program को लौ लेवल लैंग्वेज (Machine language) में convert करता है, यानि Compiler द्वारा एक प्रोग्रामिंग लैंग्वेज में लिखे गए कोड को बिना उसके meaning में कोई बदलाव किए दूसरे प्रोग्रामिंग लैंग्वज में ट्रांसलेट किया जाता है।
जब एक programmer द्वारा हाई लेवल लैंग्वेज यानी की human Readable language जैसे की C++, java, python में कोई code लिखा जाता है, तो उस कोड को Compiler की मदद से लौ लेवल लैंग्वेज या Machine language में ट्रांसलेट कर दिया जाता है, ताकि मशीन उस कोड को read कर सके, उसे समझ सके। ट्रांसलेशन की इस प्रक्रिया में Compiler द्वारा प्रोग्राम में मौजूद Errors और warnings को भी display किया जाता है।
Phases of Compiler design in Hindi
एक high-level programming language को machine language में बदलते समय Compiler कई चरणों (Phases) में ऑपरेट करता है, और प्रत्येक फेज अपने पिछले फेज से input लेता है, और इसी प्रकार से फिर अगले चरण को डाटा प्रदान करता है। यह 6 चरण होते हैं, जिनसे गुजारकर कम्पाइलर एक High level language को Machine language में translate करता है, जो की नीचे बताए गए हैं।
Lexical Analysis :- लेक्सिकल एनालिसिस या लेक्सिकल एनालाइजर वह पेहला चरण है, जिसमे Compiler सोर्स कोड को स्कैन करता है, और फिर इनपुट प्रोग्राम को टोकन की श्रृंखला में बदल देता है। यह सोर्स कोड के Characters को read करता है, और उन्हें lexemas यानि के शब्दांशों (Sequence of Characters) में बदल देता है, और Characters का यह समूह टोकन केहलाता है। वह प्रोग्राम जो लेक्सिकल एनालिसिस प्रक्रिया को execute करता है, उसे scanner या tokenizer कहा जाता है।
Syntax Analysis :- इसे parser भी कहा जाता है, जो की compiler design का दूसरा चरण है, जिसमे यह लेक्सिकल एनालिसिस से इनपुट प्राप्त कर stream of tokens लेता है, और उन्हें स्कैन करता है, और विश्लेषण करता है, की तैय rules अनुसार वह सही है, या नहीं, और फिर output के रूप में parse tree का निर्माण करता है।
Semantic Analysis :- सिमेंटिक एनालिसिस तीसरा चरण है, जहाँ पर यह parse tree को input के रूप में लेता है, और verify करता है, की क्या पार्स ट्री meaningful है, या नहीं, और क्या पार्स ट्री language के दिशा निर्देशों का पालन करता है, या नहीं, यानि कुलमिलाकर सिमेंटिक एनालिसिस parse tree की validity को परिभाषित करता है।
Intermediate Code generator :- अगला चरण इंटरमीडिएट कोड जनरेटर का है, जो की सीमेंटिक एनालाइजर से input प्राप्त करता है। यह High level language और machine language के बीच में मौजूद कोड है। सिमेंटिक एनालिसिस फैज समाप्त होने के बाद कम्पाइलर टारगेट मशीन के लिए यह intermediate code generate करता है।
Code Optimizer :- कोड ऑप्टीमाइज़र एक वैकल्पिक चरण है, जो की इंटरमीडिएट कोड को optimize करता है, यानि यह अनावश्यक code lines को हटा कर statements के sequence को व्यवस्थित करता है, ताकि प्रोग्राम का execution fast हो सके। इस चरण का उद्देश्य इंटरमीडिएट कोड optimize कर एक फ़ास्ट कोड को generate करना है, जो की कम space लेता हो, और fast work करे।
Code generator :- कोड जनरेटर compilation प्रक्रिया का आख़िरी चरण है, यह कोड ऑप्टिमाइजर से optimized code को input के रूप में लेता है, और उसे target code यानि के मशीन कोड में ट्रांसलेट कर देता है।
Types of Compiler in Hindi
कम्पाइलर (Compiler) के निम्नलिखित प्रकार हैं।
Single pass Compiler :- जब compiler design के सभी चरणों को एक Module के रूप में Group कर दिया जाता है, तो वह Single pass compiler केहलाता है। इसमें सभी 6 चरण शामिल रहते हैं, जो की सीधे source code को machine code में convert कर देते हैं।
Two Pass Compiler :- compiler का यह प्रकार 2 भागों में बटा होता है, Front end और Back End, इसमें source code को 2 बार process किया जाता है।
Multi Pass Compiler :- मल्टीपास कम्पाइलर द्वारा source code को कई बार process किया जाता है, जिसमे यह एक बड़े प्रोग्राम को विभिन्न छोटे प्रोग्राम में बाँट देता है, और फिर उसे प्रोसेस करता है। इसमें प्रत्येक Multi pass द्वारा उसके पिछले चरण से input लिया जाता है, और फिर इसी प्रकार वह आगे प्रोसेस होता है।
नोट :- दोस्तों आपने पढ़ा Compiler design in Hindi, हमें उम्मीद है, यह जानकरी आपके काम आई होगी, यदि जानकारी अच्छी लगी है, तो इसे अपने मित्रों को भी शेयर करें।