Top Banner
http://www.dia.uniroma3.it/~java/ fondinf/ Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche – Esercizi Alfonso Miola Ottobre 2011
15

Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

May 02, 2015

Download

Documents

Calogera Corona
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 1

Corso di Laurea Ingegneria InformaticaFondamenti di Informatica

Dispensa E02

Grammatiche – Esercizi

Alfonso Miola

Ottobre 2011

Page 2: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 2

Grammatica per il linguaggio degli interi senza segno di lunghezza qualsiasi

Dato il seguente lessico

V = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

Dato il seguente insieme di simboli non terminali

N = {<intero-senza-segno>, <cifra-non-nulla>, <cifra>}

Dato il seguente simbolo iniziale

S = <intero-senza-segno>

Completiamo la Grammatica con l’insieme delle regole di produzione utilizzando il formalismo EBNF

Page 3: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 3

Grammatica per il linguaggio degli interi senza segno di lunghezza qualsiasi

<intero-senza-segno> ::=

<cifra> | <cifra-non-nulla>{<cifra>}

<cifra> ::= 0 | <cifra-non-nulla>

<cifra-non-nulla> ::= 1 | 2 | ... | 9

Page 4: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 4

Albero sintattico per gli interi senza segno di lunghezza qualsiasi

Deriviamo il numero intero senza segno 579

<intero-senza-segno>

<cifra-non-nulla> <cifra> <cifra>

<cifra-non-nulla> <cifra-non-nulla>

5 7 9

Questi ultimi sono simboli terminali del linguaggio

Page 5: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 7

Grammatica per il linguaggio degli interi con o senza segno di lunghezza qualsiasiDato il seguente lessico

V = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} {+,-}

Dato il seguente insieme di simboli non terminali

N = {<intero>, <intero-senza-segno>,

<cifra-non-nulla>, <cifra>}

Dato il seguente simbolo iniziale

S = <intero>

ESERCIZIO

Completare la Grammatica con l’insieme delle regole di produzione utilizzando il formalismo EBNF e costruire l’albero sintattico per un esempio a scelta

Page 6: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 10

Grammatica per il linguaggio degli identificatori sempliciDato il seguente lessico

V = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} {a, b, c, ... , y, z, A, B, ... ,Y, Z,}

Dato il seguente insieme di simboli non terminali

N = {<identificatore>,

<carattere-alfanumerico>,

<carattere-alfabetico>,<cifra>}

Dato il seguente simbolo iniziale

S = <identificatore>

Completiamo la Grammatica con l’insieme delle regole di produzione utilizzando il formalismo EBNF

Page 7: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 11

Grammatica per il linguaggio degli identificatori semplici

<identificatore> ::= <carattere-alfabetico>{<carattere-alfanumerico>}

<carattere-alfanumerico> ::= <carattere-alfabetico> | <cifra>

<carattere-alfabetico> ::= a | b | c | ... | y | z | A | B | ... | Y | Z

<cifra> ::= 0 | 1 | 2 | ... | 9

Page 8: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 12

Albero sintattico per gli identificatori semplici

Deriviamo l’identificatore a4b

<identificatore>

<carattere-alfabetico> <carattere-alfanumerico>

<cifra> <carattere-alfabetico>

a 4 b

Questi ultimi sono simboli terminali del linguaggio

Page 9: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 13

Grammatica per il linguaggio degli identificatoriDato il seguente lessico

V = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} {a, b, c, ... , y, z, A, B, ... ,Y, Z,} { _ }

Dato il seguente insieme di simboli non terminali N = {<identificatore>, <sequenza-caratteri>,

<carattere-alfanumerico>,<carattere-alfabetico>, <cifra>}

Dato il seguente simbolo inizialeS = <identificatore>

ESERCIZIOCompletare la Grammatica con l’insieme delle regole di

produzione utilizzando il formalismo EBNF e costruire l’albero sintattico per un esempio a scelta

Page 10: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 16

Grammatica per il linguaggio degli studentiDato il seguente lessico

V = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

{a, b, c, ... , y, z } { A, B, ... ,Y, Z,}Dato il seguente insieme di simboli non terminali

N = {<studente>,<cognome>,<nome>,<carattere>,

<carattere-maiuscolo>,<matricola>,<cifra>}

Dato il seguente simbolo iniziale

S = <studente>

Completiamo la Grammatica con l’insieme delle regole di produzione utilizzando il formalismo EBNF

Page 11: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 17

Grammatica per il linguaggio degli studenti<studente> ::=

<cognome><nome><matricola> <cognome> ::=

<carattere-maiuscolo> {<carattere>}<nome> ::=

<carattere-maiuscolo> {<carattere>}<carattere-maiuscolo> ::= A | B | ... | Y | Z<carattere> ::= a | b | c | ... | y | z <matricola> ::= {<cifra>}6

<cifra> ::= 0 | 1 | 2 | ... | 9

Page 12: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 18

Grammatica per il linguaggio delle stringhe di sole lettere maiuscoleDato il seguente lessico

V = {A, B, ... ,Y, Z,} Dato il seguente insieme di simboli non terminali

N = {<stringa_maiuscola>,<lettera-maiuscola>}Dato il seguente simbolo iniziale

S = <stringa_maiuscola>ESERCIZIO

Completare la Grammatica con l’insieme delle regole di produzione utilizzando il formalismo EBNF e costruire l’albero sintattico per un esempio a scelta

Page 13: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 20

Grammatica per il linguaggio delle stringhe con almeno una cifraDato il seguente lessico

V = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} {a, b, c, ... , y, z, A, B, ... ,Y, Z,}

Dato il seguente insieme di simboli non terminali

N = {<stringa>, <carattere-alfanumerico>,

<carattere-alfabetico>, <cifra>}

Dato il seguente simbolo iniziale

S = <stringa>

ESERCIZIO

Completare la Grammatica con l’insieme delle regole di produzione utilizzando il formalismo EBNF e costruire l’albero sintattico per un esempio a scelta

Page 14: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 22

Grammatica per il linguaggio delle targhe automobilisticheDato il seguente lessico

V = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} {A, B, ... ,Y, Z,} Dato il seguente insieme di simboli non terminali

N = {<targa>,<lettera-maiuscola>,<cifra> }Dato il seguente simbolo iniziale

S = <targa>ESERCIZIO

Completare la Grammatica con l’insieme delle regole di produzione utilizzando il formalismo EBNF e costruire l’albero sintattico per un esempio a scelta

Page 15: Http://java/fondinf/Grammatiche - Esercizi 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E02 Grammatiche.

http://www.dia.uniroma3.it/~java/fondinf/ Grammatiche - Esercizi 24

Grammatica per il linguaggio delle stringhe con lettere e cifre alternateDato il seguente lessico

V = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} {a, b, c, ... , y, z, A, B, ... ,Y, Z,}

Dato il seguente insieme di simboli non terminali

N = {<stringa>, <lettera>, <cifra>}

Dato il seguente simbolo iniziale

S = <stringa>

ESERCIZIO

Completare la Grammatica con l’insieme delle regole di produzione utilizzando il formalismo EBNF e costruire l’albero sintattico per un esempio a scelta