मुझे इस अभ्यास से समस्या है:
G को λ-पथरी के लिए निम्नलिखित अस्पष्ट व्याकरण होने दें:
E → v | λv.E | EE | (E)
जहां E एकल गैर-टर्मिनल प्रतीक है, λv.E, E में चर v को अमूर्तता का प्रतिनिधित्व करता है, और EE अनुप्रयोग का प्रतिनिधित्व करता है।
- एक LL (1) व्याकरण G L को परिभाषित करें जैसे कि L (G =) = L (G) और G की अस्पष्टता को निम्नलिखित सामान्य सम्मेलनों को लागू करके हल किया जाता है:
- अमूर्त सही सहयोगी है;
- आवेदन छोड़ दिया है साहचर्य;
- आवेदन में अमूर्तता से अधिक प्राथमिकता है।
- जी the के लिए एलएल (1) पार्सिंग टेबल और स्ट्रिंग को पार्स करते समय प्राप्त पार्स ट्री दिखाएं
λv1. λv2. v1v2v1
।
मैंने इस व्याकरण को प्राप्त करते हुए अस्पष्टता की स्थापना की पूर्वता और संगति को समाप्त कर दिया:
E -> EF | F
F -> λv.G | G
G -> (E) | v
जो एलएल (1) नहीं है, क्योंकि उत्पादन E -> EF
पुनरावर्ती छोड़ दिया गया है। हालाँकि, मेरे द्वारा प्राप्त उत्पादन से बाईं पुनरावृत्ति को समाप्त करना:
E -> FE¹
E¹-> FE¹ | ɛ
F -> λv.G | G
G -> (E) | v
आवश्यकता 1.2 का अनुपालन नहीं करता है।
मैंने इंटरनेट पर एक समाधान की तलाश की, लेकिन ऐसा लगता है कि वाम-पुनर्संरचना को समाप्त करना संभव नहीं है, जो कि बाईं सहयोगीता को संरक्षित करता है।
हालांकि, यह अभ्यास कुछ साल पहले संकलक परीक्षा में दिखाई दिया था, इसलिए एक सही उत्तर होना चाहिए।
आपके सहयोग के लिए धन्यवाद।