Grammatica context-free definire una categoria sintattica

Messaggioda Hornet345 » 22/08/2018, 11:30

Ciao a tutti,
l’esercizio chiede di definire la categoria sintattica <Identificatore> che corrisponde a tutte le stringhe costituenti gli identificatori in Pascal.
Ho tenuto conto del fatto che gli identificatori possono essere espressioni che contengono, sia identificatori sia numeri sia espressioni.
Ho dei dubbi sulla soluzione:

<Lettera>::=a|A|.....z|Z
<Cifra>::=0|…|9
<Numero>::=<Numero><Cifra>|<Cifra>
<Identificatore>::=<Identificatore><Lettera>|<Identificatore><Numero>|<Lettera>
<Identificatore>::=<Identificatore>=<Espressione>
<Espressione>::=<Identificatore>|<Numero>
<Espressione>::=(<Espressione>)
<Espressione>::=<Espressione>+<Espressione>
<Espressione>::=<Espressione>-<Espressione>
<Espressione>::=<Espressione>*<Espressione>
<Espressione::=<Espressione >/<Espressione>

Grazie in anticipo per l’aiuto.
Hornet345
Junior Member
Junior Member
 
Messaggio: 91 di 184
Iscritto il: 14/06/2014, 19:19

Re: Grammatica context-free definire una categoria sintattica

Messaggioda apatriarca » 23/08/2018, 23:11

Ma se l'esercizio ti chiede gli identificatori perché stai considerando le espressioni?
apatriarca
Moderatore
Moderatore
 
Messaggio: 5080 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: Grammatica context-free definire una categoria sintattica

Messaggioda Hornet345 » 24/08/2018, 13:21

considerando solo la definizione di identificatore, la soluzione potrebbe essere:

Lettera>::=a|A|.....z|Z
<Cifra>::=0|…|9
<Numero>::=<Numero><Cifra>|<Cifra>
<Identificatore>::=<Identificatore><Lettera>|<Identificatore><Numero>|<Lettera>

con <Lettera> <Numero> e <Cifra> categorie sintattiche ausiliarie.
Può andar bene?

Grazie 1000
Hornet345
Junior Member
Junior Member
 
Messaggio: 92 di 184
Iscritto il: 14/06/2014, 19:19


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite