Operator Precedence Parsing in Compiler Design in Hindi - ऑपरेटर प्रेसीडेंस पार्सिंग क्या है?


ऑपरेटर प्रेसीडेंस पार्सिंग क्या है? (What is Operator Precedence Parsing?)

ऑपरेटर प्रेसीडेंस पार्सिंग (Operator Precedence Parsing) एक प्रकार की बॉटम-अप पार्सिंग तकनीक है, जिसका उपयोग ऑपरेटर-ग्रामीण (Operator Grammar) को पार्स करने के लिए किया जाता है। इस पार्सिंग तकनीक में विभिन्न ऑपरेटरों की प्राथमिकता (Precedence) निर्धारित करके इनपुट स्ट्रिंग का विश्लेषण किया जाता है।

ऑपरेटर प्रेसीडेंस पार्सिंग की विशेषताएँ (Features of Operator Precedence Parsing)

  • यह केवल बाइनरी ऑपरेटर वाले व्याकरण (Grammar) के लिए उपयुक्त है।
  • इसमें ऑपरेटर प्रेसीडेंस रिलेशन का उपयोग किया जाता है।
  • यह शिफ्ट-रिड्यूस पार्सिंग पर आधारित होता है।
  • इस पार्सिंग तकनीक में पार्सिंग टेबल का उपयोग नहीं किया जाता।

ऑपरेटर प्रेसीडेंस रिलेशन (Operator Precedence Relations)

ऑपरेटर प्रेसीडेंस पार्सिंग में तीन प्रकार के प्राथमिकता संबंध (Precedence Relations) होते हैं:

रिलेशनअर्थ
<ऑपरेटर की प्राथमिकता कम है (Lower precedence).
=ऑपरेटर समान प्राथमिकता वाला है (Same precedence).
>ऑपरेटर की प्राथमिकता अधिक है (Higher precedence).

ऑपरेटर प्रेसीडेंस पार्सिंग के चरण (Steps of Operator Precedence Parsing)

इस पार्सिंग प्रक्रिया के मुख्य चरण निम्नलिखित हैं:

  1. शिफ्ट (Shift): इनपुट टोकन को स्टैक में डाला जाता है।
  2. प्रेसीडेंस तुलना (Precedence Comparison): स्टैक के टॉप ऑपरेटर और अगले इनपुट ऑपरेटर की प्राथमिकता की तुलना की जाती है।
  3. रिड्यूस (Reduce): यदि स्टैक टॉप ऑपरेटर की प्राथमिकता अधिक है, तो संबंधित टोकन को नॉन-टर्मिनल में बदल दिया जाता है।
  4. स्वीकृति (Accept): यदि पूरा इनपुट सही तरीके से पार्स हो जाता है, तो इसे स्वीकार कर लिया जाता है।
  5. त्रुटि (Error): यदि कोई टोकन गलत तरीके से रखा गया है, तो त्रुटि उत्पन्न होती है।

उदाहरण (Example of Operator Precedence Parsing)

मान लीजिए कि हमारे पास निम्नलिखित व्याकरण (Grammar) है:

E → E + E
E → E * E
E → (E)
E → id

मान लेते हैं कि इनपुट स्ट्रिंग id + id * id है।

स्टेपस्टैकइनपुटऑपरेशन
1-id + id * idशिफ्ट (id स्टैक में)
2id+ id * idरिड्यूस (id → E)
3E+ id * idशिफ्ट (+ स्टैक में)
4E +id * idशिफ्ट (id स्टैक में)
5E + id* idरिड्यूस (id → E)
6E + E* idशिफ्ट (* स्टैक में)
7E + E *idशिफ्ट (id स्टैक में)
8E + E * id-रिड्यूस (id → E)
9E + E * E-रिड्यूस (E * E → E)
10E + E-रिड्यूस (E + E → E)
11E-स्वीकृति (Input Parsed Successfully)

ऑपरेटर प्रेसीडेंस पार्सिंग की सीमाएँ (Limitations of Operator Precedence Parsing)

  • यह केवल ऑपरेटर ग्रामर पर काम कर सकता है।
  • यह रिकर्सिव व्याकरण को नहीं संभाल सकता।
  • यह केवल सीमित प्रकार के व्याकरण को सपोर्ट करता है।

निष्कर्ष (Conclusion)

ऑपरेटर प्रेसीडेंस पार्सिंग एक प्रभावी विधि है, लेकिन इसका उपयोग केवल ऑपरेटर-आधारित व्याकरण तक सीमित है। यह कम्पाइलर डिजाइन में टोकन एनालिसिस और पार्सिंग की प्रक्रिया को सरल बनाता है, लेकिन इसकी सीमाएँ इसे बड़े व्याकरणों के लिए अनुपयुक्त बनाती हैं।

Related Post

Comments

Comments