2011-12-13 24 views
11

यह मेरा होमवर्क नहीं है, मैं एलएएलआर (के) व्याकरण को समझने की कोशिश कर रहा हूं। तो मैंने पाया thisयह एलआर (1) व्याकरण क्यों नहीं है एलएएलआर (1)?

S -> aEa | bEb | aFb | bFa 
E -> e 
F -> e 

मैं अपने git repo रूप LR1notLARL1.pdf

लेकिन मैं समझ नहीं कर सकते हैं, क्यों इस एलआर व्याकरण LALR नहीं है? किसी को भी मदद कर सकते हैं में एक विश्लेषक (पीडीएफ रूप में उपलब्ध कराया ? मुझे धन्यवाद

उत्तर

18

के व्याकरण के लिए एलआर (1) configurating सेट का निर्माण करके शुरू करते हैं:

(1) 
S' -> .S [$] 
S -> .aEa [$] 
S -> .aFb [$] 
S -> .bFa [$] 
S -> .bEb [$] 

(2) 
S' -> S. [$] 

(3) 
S -> a.Ea [$] 
S -> a.Fb [$] 
E -> .e [a] 
F -> .e [b] 

(4) 
E -> e. [a] 
F -> e. [b] 

(5) 
S -> aE.a [$] 

(6) 
S -> aEa. [$] 

(7) 
S -> aF.b [$] 

(8) 
S -> aFb. [$] 

(9) 
S -> b.Fa [$] 
S -> b.Eb [$] 
E -> .e [b] 
F -> .e [a] 

(10) 
E -> e. [b] 
F -> e. [a] 

(11) 
S -> bF.a [$] 

(12) 
S -> bFa. [$] 

(13) 
S -> bE.b [$] 

(14) 
S -> bEb. [$] 

तो यो u'll नोटिस, राज्यों (4) और (10), एक ही कोर है तो LALR (1) आटोमैटिक मशीन में हम उन्हें एक साथ नए राज्य के रूप में विलय चाहते हैं

(4, 10) 
E -> e. [a, b] 
F -> e. [a, b] 

जो अब एक को कम किया गया है/इसमें संघर्ष को कम करें (एलएएलआर (1) में सभी संघर्ष जो एलआर (1) पार्सर में मौजूद नहीं थे, वैसे ही कम/कम हो जाते हैं)। यह दावा करता है कि व्याकरण एलआर (1) क्यों है लेकिन एलएएलआर (1) नहीं है।

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

+0

अच्छी तरह से, आपने मुझे बहुत मदद की, मुझे एक पीडीएफ में एक विश्लेषण में एक गलती का एहसास हुआ, लेकिन वैसे भी, मैंने यह पाया [यहां] (http://compilers.iecc.com/comparch/article/95- 02-053) और मैं इसे अपने आप को साबित करना चाहता था, मेरा नतीजा यह भी है कि यह वैध एलएआरएल (1) व्याकरण है, तो मुझे लगता है कि उस वेबसाइट पर कोई गलती है? क्या मैं सही हू? –

+0

मुझे लगता है कि वेबसाइट पर एक गलती होगी, क्योंकि हमने अभी एलएएलआर automaton बनाया है और हमारे लिए इसे 'बाइसन' चेक किया है। मुझे लगता है कि इरादा एलएएलआर ढूंढना था, लेकिन एसएलआर व्याकरण नहीं था। – templatetypedef

+0

ठीक है, बीटीडब्ल्यू 'बाइसन टूल' के लिए भी धन्यवाद :) –

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

  • कोई संबंधित समस्या नहीं^_^