Oppure

Loading
13/07/11 17:21
carmelolg
Qualche magnanimo potrebbe spigarmi come si calcolano first e follow ( ma sopratutto follow) di una grammatica?
Nel modo piu semplice possibile perché ho letto fino troppo cose incomprensibili. :D
aaa
13/07/11 18:29
pierotofy
Data una grammatica:

A --> Bc
B --> d
B --> (vuota)


Il first è l'insieme dei terminali che puoi trovare all'inizio di un non-terminale.

Ad esempio, se prendi A:
- A può andare a B.
- B va a d. d è quindi un terminale che sta all'inizio di A e va inserito nel first.
- B va a (vuota). (vuota) va quindi anche inserito nel first.
- Siccome B può essere (vuota), "c" è un terminale che è all'inizio di A. Quindi anche c va inserito nel first.

First(A) = {c, d, (vuota) }

Il follow in maniera simile, è l'insieme dei terminali che seguono un non-terminale (che sono alla fine):

Ad esempio se prendi A:
- c è alla fine di A, quindi c è nell'insieme.

Follow(a) = {c}

Per B:
- b è alla fine di B. Quindi b è nell'insieme.
- (vuota) è alla fine di B. Quindi (vuota) è nell'insieme.
- Dopo B può esserci c. Quindi c è nell'insieme.

Follow(b) = {b, (vuota), c}

In parole semplici... l'insieme first è dato da tutti i terminali che si possono trovare all'inizio di un non-terminale.

L'insieme follow è dato da tutti i terminali che si possono trovare alla fine di un non-terminale.

Ultima modifica effettuata da pierotofy 13/07/11 19:34
Il mio blog: piero.dev