8

Proszę mi pomóc zrozumieć, co rozumie się przez Left Most Derivation drugi L w LL Parser.co rozumie się przez lewostronne wyprowadzenie?

Wyjaśnij to najprostszym przykładem.

zobaczyłem następujący obraz wyjaśniający Lewa najwięcej wyprowadzenie ale ja nie rozumiem: zasady

enter image description here

+0

Myślę, że leworęczne wyprowadzenie oznacza, że ​​zawsze stosujesz regułę # do skrajnego lewego miejsca, w które można ją zastosować. Mogę więc powiedzieć "Rule N -> N D" i umiesz go zastosować w lewym skrajnym miejscu. Gdyby był parserem RR, zastosowałby go w najbardziej prawym miejscu, w jakim mógł. – Patashu

Odpowiedz

10

gramatyki są wyświetlane po lewej stronie z nieterminalowi symboli i symboli terminalnych. Nieterminalne symbole powinny być wielkimi literami, wszystko inne jest zwykle symbolem terminalowym. W przykładzie N i D są nieterminalne, a 0-9 to terminale. A Left Most Derivation ZAWSZE sprawia, że ​​lewe najbardziej nieterminalne przechodzi przez regułę gramatyki. Próbujesz sformatować poniższy przykład.

N 
=> N D --Replaces the first/left most/only (which is "N") with the N => N D rule 
=> N D D --Replaces the first/left most nonterminal (which is "N") with the N => N D rule 
=> D D D --Replaces the first nonterminal (which is "N") with the N => D rule 
=> 1 D D --Replaces the first nonterminal ("D") with the D => 1 rule(our first terminal character!) 
=> 1 2 D --Replaces the first nonterminal ("D") with the D => 2 rule 
=> 1 2 3 --Replaces the first nonterminal ("D") with the D => 3 rule 
-- Only terminal characters remain, derivation/reduction is complete.