Parser & Parsing in Hindi: Parsing कंप्यूटर साइंस एक बहुत ही आवश्यक टॉपिक है। बहुत से लोग Parsing को अच्छी तरह से समझ नहीं पाते। लेकिन इस लेख में हम आपको Parsing के बारे में hindi में बताने जा रहें हैं जिससे आप इसे अच्छी तरह से समझ पाएंगे। आपको बता दें कि data को एक form से दूसरे format में transforming करने की प्रक्रिया को Parsing कहा जाता है। इस प्रक्रिया को जिसके द्वारा किया जाता है उसे parser कहा जाता है। बता दें कि parser एक translator का component होता है जो कि defined rules को फॉलो करके linear text structure को organize करता है, जिसे grammar के रूप में भी जाना जाता है।
What is a parser in hindi
parser एक ऐसा program होता है जो कि compiler का भाग होता है जो कि जो कि sequential source program instructions, interactive online commands और अन्य defined interface के रूप में input प्राप्त करता है। इसके साथ ही Parsers प्राप्त input को कई parts में विभाजित करता है जैसे कि nouns (objects), verbs (methods), और उनके attributes या options। जिसके बाद इन सभी को programming द्वारा मेनेज किया जाता है। सीधे शब्दों में कहें तो parser एक compiler होता है जो कि lexical analysis phase से आने वाले data को कई parts में विभजित करता है।
पार्सिंग कैसे काम करती है (How does parsing work)
Parsing प्रोग्रामिंग में compiling process का भाग होती है और parser भी compiler का part होता है। बता दें कि Parsing की प्रक्रिया compilation के दौरान analysis stage में होती है। Parsing में code को preprocessor से लिया जाता है और फिर इसे smaller pieces में तोड और analyzed किया जाता है जिससे कि अन्य software इसे समझ पायें। Parser इस input के pieces से data structure का निर्माण करता है। जब एक प्रोग्रामर C++ या Java जैसी प्रोग्रामिंग लैंग्वेज में code लिखता है और इसे text file के रूप में save करता है। parser इन text files को input के रूप में लेता है और उन्हें parts में तोड़ लेता है। जिसके बाद इसे translate किया जाता है। Parsing 2 प्रकार की होती है जिसके बारे में हमने नीचे जानकारी दी है.
पार्सिंग कितने प्रकार की होती है (Types of Parsing)

Parsing दो प्रकार की होती है
- Top-down Parsing
- Bottom-up Parsing
1. Top-down Parsing
यह पार्सिंग Left Most Derivation पर आधारित होती है। इसमें इस प्रोसेस में जिस parse tree को construct किया जाता है जो कि root से शुरू होता है और leaf पर खत्म होता है, इसलिए इसे Top-Down Parsing कहा जाता है। टॉप-डाउन पार्सिंग start symbol के साथ शुरू होता है और terminals पर समाप्त होता है। इस तरह की पार्सिंग को प्रेडिक्टिव पार्सिंग (predictive parsing) भी कहा जाता है।
Types of Top Down Parsing

Recursive Descent Parsing
Recursive descent parsing एक तरह की top-down parsing technique है, जिसमें input को left से right की ओर read किया जाता है और parse tree को right से left कि ओर constructs किया जाता है। जैसा कि यह technique recursively काम करती है इसलिए इसे recursive descent parsing कहा जाता है।
Non-recursive descent parsing
इस पार्सिंग को LL(1) या predictive पार्सिंग भी कहा जाता है. इस parsing में parsing table से Tree को build किया जाता है . इसे non- predictive parsing भी कहते हैं.
Back-tracking
यह एक ऐसी parsing technique है जो कि initial pointer (root node) से शुरू होती है। इस technique में अगर derivation fails होता है तो ऐसे में यह प्रोसेस different rules के साथ फिर से शुरू होती है।
2. Bottom Up Parsing

आपको इस पार्सिंग में parse tree का निर्माण leaves से root की ओर होता है। यह parsing बिलकुल ही top-down parsing का reverse होती है। इस पार्सिंग rightmost derivation को प्रयोग करती है। इसके साथ ही non-terminals से शुरू होती है और start symbol पर खत्म होती है। इसलिए इसे Bottom Up Parsersing भी कहते हैं। Bottom Up Parsersing दो प्रकार की होती है। एक operator precedence parser और LR Parsing।
operator precedence parser
operator precedence parser एक bottom-up parser है जो कि operator grammar को interprets करता है। आपको बता दें कि यह parser सिर्फ operator grammars के लिए इस्तेमाल होता है। operator precedence parser को छोड़कर किसी भी parser में Ambiguous grammars की अनुमति नहीं होती।
LR Parsing
LR parsing सबसे efficient syntax analysis techniques है जो कि context-free grammar के साथ काम करती है. आपको बता दें कि LR parsing में L का मतलब left to right tracing और R का मतलब right to left tracing होता है.
Types of LR Parsing
(a). LR(0)
(b). SLR(1)
(c). LALR(1)
(d). CLR(1)