8

Per favore aiutami a capire cosa si intende per Left Most Derivation il secondo L in LL Parser.cosa si intende per derivazione più a sinistra?

Spiegarlo con un esempio più semplice.

ho visto la seguente immagine che spiega Sinistra più derivazione ma io non lo capisco: regole

enter image description here

+0

Penso che la maggior parte delle derivazioni significhi che si applica sempre una regola # nel punto più a sinistra in cui è possibile applicarla. Quindi posso solo dire "Regola N -> N D" e sai di applicarlo nel posto più a sinistra possibile. Se fosse un parser RR lo applicherebbe nel posto più a destra possibile. – Patashu

risposta

10

La grammatica vengono visualizzati sulla sinistra con i simboli non terminali e simboli terminali. I simboli nonminali dovrebbero essere lettere maiuscole, tutto il resto è tipicamente un simbolo terminale. Nell'esempio N e D sono non terminali e 0-9 sono terminali. A Left Most Derivation SEMPRE rende la sinistra più non-terminale passa attraverso una regola di grammatica. Cercando di formattare l'esempio di seguito.

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. 
Problemi correlati