मैं लेक्स/वाईएसी का उपयोग कर रहा हूं और अब मैं एएनटीएलआर पर स्विच करने की कोशिश कर रहा हूं। प्रमुख चिंता यह है कि एएनटीएलआर एक एलएल (*) पार्सर है जो Yacc के विपरीत है जो एलएएलआर है। मुझे नीचे-नीचे सोचने के लिए उपयोग किया जाता है और मुझे बिल्कुल नहीं पता कि एलएल व्याकरण का क्या फायदा है। लोग कहते हैं कि एलएल व्याकरण इन दिनों समझने में आसान और अधिक लोकप्रिय हैं। लेकिन ऐसा लगता है कि एलआर पार्सर्स अधिक शक्तिशाली हैं उदा। एलएल पार्सर्स बाएं-रिकर्सन से निपटने में असमर्थ हैं, हालांकि कुछ कामकाज होने लगते हैं।एलएएलआर बनाम एलएल पार्सर
तो सवाल यह है कि एलएएलआर पर एलएल व्याकरण का क्या फायदा है? अगर कोई मुझे कुछ उदाहरण दे सकता है तो मैं इसकी सराहना करता हूं। उपयोगी लेखों के लिए लिंक भी बहुत अच्छा होगा।
अग्रिम में आपकी सहायता के लिए धन्यवाद!
(मैं देख रहा हूँ कि यह एक महान संसाधन है:। What advantages do LL parsers have over LR parsers? है, लेकिन यह कुछ उदाहरण के साथ बेहतर किया गया है होगा)
यदि कोई व्यक्ति आपको पार्सर जनरेटर को परिभाषित करता है, तो परिभाषा के अनुसार यह "कार्यान्वित करने में आसान" है। उस स्थिति में, आप पार्सर जेनरेटर चुनते हैं जो आपके प्रयासों को कम करने के लिए आसानी से भाषाओं की सबसे बड़ी कक्षा को संभालता है। परिप्रेक्ष्य से, आईएमएचओ, एलआर एलएल पर काफी आसानी से जीतता है। जीएलआर एलआर पर काफी आसानी से जीतता है। –
मैं सहमत हूं, लेकिन फिर भी एलएल लागू करने में आसान है। मैं यह इंगित कर रहा था कि एलआर को आमतौर पर एक उपकरण का उपयोग करने की आवश्यकता होती है। मुझे यह बहुत ही दिलचस्प लगता है कि आप रिकर्सिव वंश लिख सकते हैं और कोड और व्याकरण हाथ में जा सकते हैं। –
हां, इसकी दिलचस्प और लोगों के निर्माण पार्सर्स को उनके बारे में पता होना चाहिए। चूंकि आपके व्याकरण बड़े हो जाते हैं, यह एलएल आकार में मजबूर करने के लिए असुविधाजनक है, और एलआर की कुछ (सुंदर छोटी) बिंदु सुविधा आपके सिर में वैचारिक सादगी पर जीत जाती है। यदि आप पार्सर जेनरेटर नहीं बना रहे हैं तो एलआर समझना बहुत आसान है, और ऐसा नहीं है कि उनमें से बहुत सारे नहीं हैं। –