2011-08-20 16 views
12

मेरे पास व्याकरण है और मैं जांच सकता हूं कि एलएल (1) है या नहीं। हालांकि, क्या यह जांचने का कोई तरीका है कि व्याकरण द्वारा उत्पन्न भाषा एलएल (1) है या नहीं? और एलएल (1) व्याकरण और एलएल (1) भाषाओं के बीच क्या अंतर है?यह निर्धारित करने के लिए कि कोई भाषा एलएल (1) है या नहीं?

+0

क्या आपका प्रश्न व्याकरण और भाषा के बीच अंतर क्या है? –

उत्तर

14

कोई भी व्याकरण जो एलएल (1) एलएल (1) भाषा परिभाषित करता है। परिभाषा के अनुसार, एक भाषा एलएल (1) है यदि कुछ व्याकरण है जो एलएल (1) उत्पन्न करता है, तो तथ्य यह है कि आपके पास भाषा के लिए एलएल (1) व्याकरण है, इसका मतलब है कि भाषा एलएल (1) है ।

विस्तृत करने के लिए, एक भाषा तारों का एक सेट है और उस भाषा के लिए व्याकरण उस भाषा का वर्णन करने का माध्यम है। कुछ भाषाओं में एलएल (1) व्याकरण होते हैं जबकि अन्य नहीं करते हैं। हालांकि, तथ्य यह है कि व्याकरण एलएल (1) नहीं है इसका मतलब यह नहीं है कि जिस भाषा का वर्णन यह है वह नहीं है।

A -> ab | ac 

यह व्याकरण डालूँगा जब जब टर्मिनल एक देखकर एक के लिए उत्पादन की भविष्यवाणी करने की कोशिश कर (1) क्योंकि यह एक सबसे पहले/सबसे पहले संघर्ष में शामिल नहीं है: उदाहरण के लिए, इस व्याकरण पर विचार करें। हालांकि, यह एक डालूँगा (1) भाषा का वर्णन करता है के बाद से भाषा भी व्याकरण

A -> aX 
X -> b | c 

द्वारा वर्णित है तो इन व्याकरण द्वारा उत्पन्न (जो सिर्फ AB और AC शामिल हैं) भाषा वास्तव में डालूँगा है (1)।

यह निर्धारित करना कि क्या मनमाने ढंग से व्याकरण द्वारा वर्णित भाषा एलएल (1) बहुत कठिन है और मेरे ज्ञान का सबसे अच्छा तरीका यह है कि इसे उत्पन्न करने के लिए एक एलएल (1) व्याकरण स्पष्ट रूप से प्रदर्शित किया जाएगा प्रारंभिक व्याकरण (जो मुश्किल है) द्वारा या गणितीय रूप से साबित करने के लिए कि ऐसा कोई व्याकरण मौजूद नहीं है।

आशा है कि इससे मदद मिलती है!

+1

तो एक एलएल (1) * भाषा * कई अन्य * व्याकरण * द्वारा परिभाषित किया जा सकता है जो एलएल (1) नहीं हैं (जब तक ऐसा एलएल (1) व्याकरण होता है)? - बस मेरे सिर में पुष्टि करने की कोशिश कर रहा है। –

+3

@pst, हाँ, यह पर्याप्त है कि एक एलएल (1) व्याकरण है। –

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

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