गुण व्याकरण

From Vigyanwiki
Revision as of 14:17, 26 July 2023 by alpha>Indicwiki (Created page with "एक विशेषता व्याकरण औपचारिक व्याकरण को शब्दार्थ सूचना प्रसंस्कर...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

एक विशेषता व्याकरण औपचारिक व्याकरण को शब्दार्थ सूचना प्रसंस्करण के साथ पूरक करने का एक औपचारिक तरीका है। सिमेंटिक जानकारी व्याकरण के टर्मिनल और नॉनटर्मिनल प्रतीकों से जुड़े एट्रिब्यूट (कंप्यूटिंग) में संग्रहीत होती है। विशेषताओं के मान व्याकरण के निर्माण से जुड़े विशेषता मूल्यांकन नियमों का परिणाम हैं। विशेषताएँ अमूर्त सिंटैक्स ट्री में कहीं से भी जानकारी को नियंत्रित और औपचारिक तरीके से स्थानांतरित करने की अनुमति देती हैं।[1]

प्रत्येक सिमेंटिक फ़ंक्शन केवल एक उत्पादन नियम में होने वाले प्रतीकों की विशेषताओं से संबंधित है: सिमेंटिक फ़ंक्शन पैरामीटर और उसके परिणाम दोनों एक विशेष नियम से प्रतीकों की विशेषताएं हैं। जब कोई सिमेंटिक फ़ंक्शन नियम के बाईं ओर प्रतीक की किसी विशेषता के मूल्य को परिभाषित करता है, तो विशेषता को संश्लेषित कहा जाता है; अन्यथा इसे वंशानुगत कहा जाता है।[2] इस प्रकार, संश्लेषित विशेषताएँ सिमेंटिक जानकारी को पार्स ट्री तक पारित करने का काम करती हैं, जबकि विरासत में मिली विशेषताएँ मूल नोड्स से नीचे और सिंटैक्स ट्री के पार मानों को पारित करने की अनुमति देती हैं।

सरल अनुप्रयोगों में, जैसे कि अंकगणितीय अभिव्यक्तियों का मूल्यांकन, विशेषता व्याकरण का उपयोग सीधे तरीके से पार्सिंग के अलावा किए जाने वाले संपूर्ण कार्य का वर्णन करने के लिए किया जा सकता है; जटिल प्रणालियों में, उदाहरण के लिए, एक संकलक जैसे भाषा अनुवाद उपकरण का निर्माण करते समय, इसका उपयोग व्याकरण से जुड़े शब्दार्थ जांच को मान्य करने के लिए किया जा सकता है, जो किसी भाषा के नियमों का प्रतिनिधित्व करता है जो वाक्यविन्यास परिभाषा द्वारा स्पष्ट रूप से प्रदान नहीं किए जाते हैं। इसका उपयोग पार्सर्स या कंपाइलरों द्वारा सिंटैक्स ट्री को सीधे किसी विशिष्ट मशीन के कोड में या किसी मध्यवर्ती भाषा में अनुवाद करने के लिए भी किया जा सकता है।

इतिहास

विशेषता व्याकरण का आविष्कार डोनाल्ड नुथ और पीटर वेगनर द्वारा किया गया था।[3] जबकि समग्र अवधारणा के लिए डोनाल्ड नुथ को श्रेय दिया जाता है, पीटर वेगनर ने नुथ के साथ बातचीत के दौरान विरासत में मिली विशेषताओं का आविष्कार किया। कुछ भ्रूणीय विचार पीछे छिपे हैं[3]एडगर टी. नेड आयरन्स के कार्य के लिए,[4] आईएमपी (प्रोग्रामिंग भाषा) के लेखक।

उदाहरण

निम्नलिखित एक सरल संदर्भ-मुक्त व्याकरण है जो पूर्णांकों के गुणन और योग से बनी भाषा का वर्णन कर सकता है।

 एक्सप्र → एक्सप्र + टर्म
 एक्सप्र → अवधि
 पद → पद * कारक
 पद → कारक
 फ़ैक्टर → (एक्सपीआर)
 गुणनखंड → पूर्णांक

व्याकरण में लिखी गई अभिव्यक्ति के परिणाम की गणना करने के लिए निम्नलिखित विशेषता व्याकरण का उपयोग किया जा सकता है। ध्यान दें कि यह व्याकरण केवल संश्लेषित मानों का उपयोग करता है, और इसलिए यह एक एस-गुणित व्याकरण है।

 एक्सप्र1→ एक्सप्र2+ अवधि [एक्सप्र1.मूल्य = एक्सप्र2.मूल्य + अवधि.मूल्य ]
 एक्सप्र → टर्म [ एक्सप्र.वैल्यू = टर्म.वैल्यू ]
 अवधि1→ अवधि2* कारक [अवधि1.मूल्य = अवधि2.मूल्य * कारक.मूल्य ]
 पद → गुणनखंड [अवधि.मूल्य = गुणनखंड.मूल्य]
 फ़ैक्टर → (एक्सप्र) [फैक्टर.वैल्यू = एक्सप्र.वैल्यू]
 गुणनखंड → पूर्णांक [ Factor.value = strToInt(पूर्णांक.str) ]

संश्लेषित गुण

एक संश्लेषित विशेषता की गणना बच्चों की विशेषताओं के मूल्यों से की जाती है। चूँकि बच्चों के मूल्यों की गणना पहले की जानी चाहिए, यह नीचे से ऊपर की ओर प्रसार का एक उदाहरण है।[5] एक संश्लेषित विशेषता को औपचारिक रूप से परिभाषित करने के लिए, आइए एक औपचारिक व्याकरण हो, जहां

  • गैर टर्मिनल प्रतीकों का सेट है
  • टर्मिनल प्रतीकों का सेट है
  • औपचारिक व्याकरण का सेट है# व्याकरण का वाक्य-विन्यास
  • विशिष्ट, या प्रारंभ, प्रतीक है

फिर, नॉनटर्मिनल प्रतीकों की एक श्रृंखला दी गई और एक विशेषता नाम , यदि ये तीनों शर्तें पूरी होती हैं तो यह एक संश्लेषित विशेषता है:

  • (अर्थात। व्याकरण के नियमों में से एक है)
  • (अर्थात नियम के मुख्य भाग में प्रत्येक प्रतीक या तो नॉनटर्मिनल है या टर्मिनल)
  • , कहाँ (अर्थात विशेषता का मान एक फ़ंक्शन है नियम के मुख्य भाग में प्रतीकों से कुछ मानों पर लागू)

विरासत में मिले गुण

पार्स ट्री में एक नोड पर विरासत में मिली विशेषता को माता-पिता या भाई-बहन में विशेषता मानों का उपयोग करके परिभाषित किया गया है। किसी प्रोग्रामिंग भाषा निर्माण की उस संदर्भ पर निर्भरता व्यक्त करने के लिए विरासत में मिली विशेषताएँ सुविधाजनक होती हैं जिसमें वह प्रकट होती है। उदाहरण के लिए, हम विरासत में मिली विशेषता का उपयोग यह ट्रैक करने के लिए कर सकते हैं कि कोई पहचानकर्ता असाइनमेंट के बाईं या दाईं ओर दिखाई देता है या नहीं, यह तय करने के लिए कि पहचानकर्ता के पते या मूल्य की आवश्यकता है या नहीं। संश्लेषित विशेषताओं के विपरीत, विरासत में मिली विशेषताएँ माता-पिता और/या भाई-बहनों से मूल्य ले सकती हैं। जैसा कि निम्नलिखित उत्पादन में है,

एस → एबीसी

जहां A, S, B और C से मान प्राप्त कर सकता है। B, S, A और C से मान ले सकता है। इसी तरह, C, S, A और B से मान ले सकता है।

विशेष प्रकार के गुण व्याकरण

  • एल-विशेषीकृत व्याकरण: विरासत में मिली विशेषताओं का मूल्यांकन अमूर्त सिंटैक्स ट्री के एक बाएं से दाएं ट्रैवर्सल में किया जा सकता है
  • ईसीएलआर-विशेषीकृत व्याकरण: एक एल-एट्रिब्यूटेड व्याकरण जिसकी विरासत में मिली विशेषताओं का मूल्यांकन नीचे से ऊपर का विश्लेषण में भी किया जा सकता है।
  • ईसीएलआर-विशेषीकृत व्याकरण: एलआर-विशेषीकृत व्याकरणों का एक उपसमूह जहां विरासत में मिली विशेषताओं के मूल्यांकन को अनुकूलित करने के लिए समतुल्य वर्गों का उपयोग किया जा सकता है।
  • एस-विशेषता व्याकरण: एक सरल प्रकार का विशेषता व्याकरण, केवल संश्लेषित विशेषताओं का उपयोग करता है, लेकिन कोई विरासत में मिली विशेषताएँ नहीं

यह भी देखें

संदर्भ

  1. Knuth 1968, p. 134.
  2. Knuth 1968, p. 132.
  3. 3.0 3.1 D. E. Knuth: The genesis of attribute grammars. Proceedings of the international conference on Attribute grammars and their applications (1990), LNCS, vol. 461, 1–12.
  4. "Main".
  5. Knuth 1968, p. 130.


बाहरी संबंध