La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale.

Presentazioni simili


Presentazione sul tema: "Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale."— Transcript della presentazione:

1 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale presso un locale

2 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Lo scopo del lavoro EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale Sviluppo di un linguaggio per la descrizione di un evento musicale presso un locale con informazioni relative al locale, data dell'evento e scaletta della serata (es. singolo concerto, serie di concerti o concerto più dj set) e generazione della locandina relativa a tale evento. Linguaggio semplice e di facile comprensione ma allo stesso tempo completo e caratterizzato da regole lessicali, sintattiche e semantiche

3 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Linguaggio: esempio EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale Evento Musicale { Estragon, via Stalingrado num. 83, Bologna (BO), info: 051/323490, autobus: linea 25, Mar 16 Marzo, Scaletta { Franz Ferdinand, indie rock - Eng, ore: 22:00, biglietto 34.50 Dj set rock by: Dj Mingo, ore: 00:00, ingresso free entry chiusura locale ore: 04:00 } } } } } } Locale Data Concerto Dj set Chiusura

4 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Token EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale ::= ([0-9])+ ::= Lun | Mar | Mer | Gio | Ven | Sab | Dom ::= Gennaio | Febbraio | Marzo | Aprile | Maggio | Giugno | Luglio | Agosto |Settembre | Ottobre | Novembre | Dicembre ::= [A-Z][A-Z] ::=, ::=via ::= num. | n. | num | n ::= autobus | autobus: | autobus: linea ::= Scaletta ::= ore: | ore ::= biglietto | ingresso | biglietto: | ingresso: ::= euro | ::= free entry | ingresso libero | libero ::= Dj set | Djset | Dj Set | DjSet ::= by: | by ::= chiusura | chiusura locale | Chiusura Locale | Chiusura locale | Chiusura ::= ([A-Z,a-z,0-9,_,\])+

5 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Grammatica utilizzata EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale S::= Evento Musicale { } ::= info: [ ] ::= ( )+ ::= ::= ( ) ::= / ::= ::= { ( )* [ ] } ::= - ::= : ::= | ::=. ::= ::=

6 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Regole di produzione EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale S::= Evento Musicale { } S, Scope della grammatica, indica che un evento musicale è caratterizzato da: Un Locale Una Data Una Scaletta ::= info: [ ] Locale è composto da: Il nome del locale Il suo indirizzo Il numero telefonico Linea dell'autobus per raggiungerlo (opzionale)

7 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Regole di produzione EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale ::= ( )+ Uno o più token di tipo Stringa ::= Indirizzo è composto da: Il nome della via Il numero civico La città ::= ( ) Città è composto da: Il nome della città La provincia (opzionale)

8 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Regole di produzione EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale ::= / Il numero di telefono (prefisso/numero) ::= La linea dell'autobus ::= Data è composto da: Il giorno della settimana Il giorno del mese Il mese L'anno è stato omesso in quanto si considera sempre quello corrente

9 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Regole di produzione EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale ::= { ( )* [ ] } ::= - Concerto è composto da: Il nome del gruppo o dell'artista Il genere musicale La nazionalità Scaletta è composto da: Nessuno o più concerti Dj Set (opzionale) Orario di chiusura L'orario di inizio del concerto Il prezzo del biglietto

10 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Regole di produzione EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale ::= : ::= | Prezzo può essere Espresso in euro Ingresso libero Orario è composto da: Ore Minuti ::=. PrezzoEuro è composto da: Euro Centesimi di euro

11 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Regole di produzione EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale ::= ::= Orario di chiusura del locale DjSet è composto da: Genere musicale Nome Dj Orario inizio DjSet Prezzo del biglietto

12 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Tipologia grammatica e linguaggio EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale Grammatica: Tipo 2 - context free secondo la classificazione di Chomsky produzioni vincolate alla forma A α con α є (VT U VN)* ed A є VN Linguaggio: Tipo 3 – regolare (privo di self-embedding) Grammatica di tipo LL(1) F Frasi analizzabili left to right utilizzando al più 1 simbolo della frase per scegliere con certezza la produzione da applicare per la riscrittura (starter symbols disgiunti e nessun metasimbolo può generare la stringa vuota)

13 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Analisi del problema EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale Analisi Lessicale Analisi Sintattica Analisi Semantica Scanner Parser Visitor Data una sequenza di caratteri in ingresso restituisce una sequenza di Token. Data una sequenza di Token in ingresso ne valuta la correttezza sintattica in base alle regole grammaticali. Data la rappresentazione prodotta dal Parser ne controlla la coerenza logica ovvero il corretto significato.

14 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Strumenti utilizzati EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale NetBeans IDE Ambiente di sviluppo: NetBeans IDE 6.0.1 Java Linguaggio: Java (jdk 1.6) JavaCC Generazione automatica Parser: JavaCC 4.2 Generazione automatica classi per creare l'albero sintattico AST Java Tree Builder e per l'implementazione del Visitor che opera in depth first: Java Tree Builder 1.3.2

15 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Architettura del sistema EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale Package EM GUI parser visitor syntaxtree images Interfacce grafiche Immagini utilizzate all'interno delle interfacce grafiche Visitor creati automaticamente da JTB e implementazioni della classe DephtFirstVisitor Classi relative allo scanner ed al parser create in automatico da javacc Classi per la costruzione dell'AST Classi per istanziare gli oggetti necessari alla creazione della Locandina

16 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Implementazioni DepthFirstVisitor EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale EventoMusicaleVisitor TreeVisitor Crea gli oggetti necessari per la creazione della Locandina dell'evento, es: Locale, Data, Concerto, DjSet,... Crea i nodi dell'albero per poi visualizzarlo nell'interfaccia grafica come in Figura Effettua gli opportuni controlli semantici

17 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Analizzatore semantico EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale Controllo correttezza orari Controllo successione orari in scaletta A differenza dell'analizzatore lessicale (scanner) e di quello sintattico (parser) l'analizzatore lessicale non può essere espresso con una notazione formale, per questo è stata utilizzata una notazione logica/aritmetica attraverso funzioni realizzate direttamente in linguaggio Java. Controllo Scaletta Si verifica che sia presente almeno un Concerto o un DjSet Si verifica che gli orari siano nel range 00:00 - 23:59 Si verifica che l'orario del DjSet sia successivo a quello dell'inizio del Concerto e che l'orario di chiusura del locale sia successivo a quello di inizio del DjSet

18 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale Interfacce grafiche 1/3 Text Area Valutazione Linguaggio Text Area Linguaggio Input Albero

19 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Interfacce grafiche 2/3 EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale Form di inserimento informazioni locale e data evento I campi obbligatori sono evidenziati da un asterisco (*) e vengono controllati alla pressione del tasto ok Altri Form dello stesso tipo sono presenti per l'inserimento guidato di un Concerto, DjSet e orario di chiusura

20 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale Interfacce grafiche 3/3 Locandina Locandina generata utilizzando tutte le informazioni ricavate dalla descrizione dell'evento musicale Informazioni locale Concerto Dj Set Chiusura

21 Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS Limiti e Sviluppi futuri EM - Linguaggio per la Descrizione di un Evento Musicale presso un locale Maggiore dettaglio nella descrizione di un evento e introduzione di ulteriori campi opzionali per permettere una maggior personalizzazione della locandina Realizzazione di locandine per serate che prevedono più di un concerto in scaletta Generazione di locandine di diverso tipo con la possibilità di selezionare template


Scaricare ppt "Gianfranco Zampolini 0000271759 Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale."

Presentazioni simili


Annunci Google