SoloDIAG

III Anno - BIAR => Corsi della triennale non pi erogati => Fondamenti di Informatica II (fino A.A. 2013/14) => Topic aperto da: gavoq - Gio 09 Giugno, 09:43:59 - 2011

Titolo: Calcolo FIRST...aiuto grazie....
Inserito da: gavoq - Gio 09 Giugno, 09:43:59 - 2011


Chiedo il vostro aiuto.
Il problema riguarda la costruzione della tabella di parsing per un compilatore.
La funzione FIRST definita come:
data una gramamtica G, alfa una stringa di terminali e non terminali, FIRST(alfa) l'insieme dei
terminali con cui possono iniziare le stringhe derivate da alfa.

NON capisco come applicare la definizione.

Per esempio:
data la grammatica (eps sta per epsilon = stringa vuota)

S--> Ac|Ba      FIRST(S)={a,b,c}
A-->eps|a      FIRST(A)={eps,a}
B-->b         FIRST(B)={b,}
C-->a|Cb      FIRST(C)={a}
D-->eps|d|Db   FIRST(D)={eps,d,b}

NON capisco come possibile ottenere FIRST(S)={a,b,c} ed anche FIRST(D)={eps,d,b}

Qualcuno puo' spiegarmi passo per passo come calcoalre FIRST data una grammatica?

A maggiore ragione non capisco proprio come calcolare FIRST data la seguente grammatica:

E--> TE'
E'--> +TE'|eps
T--> FT'
T'--> xFT'|eps
F--> a| (E)

Come calcolo : FIRST(E), FIRST(E'), FIRST(T), FIRST(T'), FIRST(F) ???
Come faccio a capire quali sono i non terminali ed i terminali?

Grazie in anticipo a coloro che mi aiuteranno a capire.
Titolo: Re:Calcolo FIRST...aiuto grazie....
Inserito da: maxx - Mer 21 Marzo, 14:12:49 - 2018
Ho postato la mia soluzione.Ho cercato anche di spiegare perch vengono quei risultati.