Dom 18 Agosto, 06:42:55 - 2019

Autore Topic: Calcolo FIRST...aiuto grazie....  (Letto 700 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline gavoq

  • Studente
  • *
  • Post: 2
  • FeedBack: +0/-0
    • Mostra profilo
Calcolo FIRST...aiuto grazie....
« il: 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.

Offline maxx

  • Studente
  • *
  • Post: 20
  • FeedBack: +0/-0
    • Mostra profilo
Re:Calcolo FIRST...aiuto grazie....
« Risposta #1 il: Mer 21 Marzo, 14:12:49 - 2018 »
Ho postato la mia soluzione.Ho cercato anche di spiegare perchè vengono quei risultati.