2013-03-02 26 views
6

हम कक्षा में अस्पष्टता के बारे में सीख रहे हैं, और निम्नलिखित व्याकरण को एक अस्पष्ट व्याकरण का उदाहरण दिया गया था। मैं सिर्फ यह नहीं देख रहा हूं कि यह अस्पष्ट कैसे है। क्या कोई सेट पैटर्न या विधि अस्पष्टता निर्धारित करने के लिए उपयोग की जाती है या यह एक तर्क पहेली की तरह है जहां आपको व्याकरण में एक संदिग्ध वाक्य खोजने के लिए संयोजनों के माध्यम से काम करना है? जिन उदाहरणों को मैंने ऑनलाइन पढ़ा है, वे ज्यादातर संदिग्ध वाक्य को पहले ही देते हैं, लेकिन आप पहली बार उस वाक्य को कैसे पाते हैं? मैं किसी भी मदद की सराहना करता हूं, धन्यवाद।क्या व्याकरण में अस्पष्टता निर्धारित करने का कोई तरीका है?

< stmt_list> ==> < stmt> 

       | < stmt> ; < stmt_list> 

< var> ==> A | B | C 

< stmt> ==> < var> + < var> 

       | < var> - < var> 

       | < var> 
+0

मैंने अपने जवाब में गलती की है कि मैं आपको क्यों हटा देता हूं व्याकरण अस्पष्ट नहीं है। –

+0

@GrijeshChauhan मैं देखता हूँ। धन्यवाद। यह बहुत भ्रमित है क्योंकि हमारे प्रोफेसर ने हमें बताया कि यह संदिग्ध था। –

+0

लेकिन गणित अभिव्यक्ति के उद्देश्य के लिए आपका व्याकरण सही नहीं है :(इस उदाहरण को सही के लिए देखें http://stackoverflow.com/questions/14554752/how-can-i-add-parentheses-as-the-highest-level -of-precedence-in-a-simple-grammar/14569166 # 14569166 –

उत्तर

2

सामान्य तौर पर, determining whether a grammar is ambiguous or not is undecidable. तो हाँ, एक व्याकरण में एक अस्पष्ट वाक्य ढूँढने एक बहुत ही मुश्किल तर्क पहेली को कम करता है। विशिष्ट मामलों को हल करना और हेरिस्टिक्स ढूंढना हालांकि अनुसंधान का एक सक्रिय क्षेत्र है। अस्पष्टता खोजने में यहां एक अच्छा उपकरण है: http://www.brics.dk/grammar/। वेबपृष्ठ में एक पेपर का एक लिंक शामिल है जो यह बताता है कि यह कैसे काम करता है, हालांकि ईमानदारी से, यह मेरे सिर पर चला जाता है।

संबंधित मुद्दे

 संबंधित मुद्दे