1 / 26

Generator

S. E. WIMMING. VENT. Generator. Linguaggi e Modelli Computazionali M Prof. Enrico Denti. Realizzato da Isabella Gottardi. Obiettivi del progetto. Si vuole progettare un sistema che permetta di generare eventi natatori. Dovremo quindi:. Struttura degli eventi.

keegan
Télécharger la présentation

Generator

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. S E WIMMING VENT Generator Linguaggi e Modelli Computazionali M Prof. Enrico Denti Realizzato da Isabella Gottardi

  2. Obiettivi del progetto • Si vuole progettare un sistema che permetta di generare eventi natatori. • Dovremo quindi:

  3. Struttura degli eventi • Ogni evento è costituito da • Informazioni sull’evento stesso • Giuria • Cronometristi • Altro personale • Programmadell’evento • Elenco di partenza degli atleti • Note eventuali Organizzatore, luogo, data di inizio e di fine, data termine iscrizioni, ecc

  4. Struttura degli eventi • Ogni evento è costituito da • Informazioni sull’evento stesso • Giuria • Cronometristi • Altro personale • Programmadell’evento • Elenco di partenza degli atleti • Note eventuali Giudici di partenza, addetti ai concorrenti, alle false partenze e virate, ecc…

  5. Struttura degli eventi • Ogni evento è costituito da • Informazioni sull’evento stesso • Giuria • Cronometristi • Altro personale • Programmadell’evento • Elenco di partenza degli atleti • Note eventuali Società dei cronometristi, tipo di cronometraggio, ecc.

  6. Struttura degli eventi • Ogni evento è costituito da • Informazioni sull’evento stesso • Giuria • Cronometristi • Altro personale • Programmadell’evento • Elenco di partenza degli atleti • Note eventuali Speaker, medico, dirigente della società ospitante, ecc.

  7. Struttura degli eventi • Ogni evento è costituito da • Informazioni sull’evento stesso • Giuria • Cronometristi • Altro personale • Programmadell’evento • Elenco di partenza degli atleti • Note eventuali Tutte le gare in programma. Ciascuna prevede nome, data e ora, categoria atleti, ecc…

  8. Struttura degli eventi • Ogni evento è costituito da • Informazioni sull’evento stesso • Giuria • Cronometristi • Altro personale • Programmadell’evento • Elenco di partenza degli atleti • Note eventuali Startlist degli atleti iscritti alle gare

  9. Struttura degli eventi • Ogni evento è costituito da • Informazioni sull’evento stesso • Giuria • Cronometristi • Altro personale • Programmadell’evento • Elenco di partenza degli atleti • Note eventuali Note

  10. Grammatica B.N.F GrammarScope : <EVENT> <A_GR> InfocompetitionJurycronootherProgramcompStartlistNote <C_GR> Scopo della Grammatica EVENT = 'event'; INFOEVENT='infoevent'; NAMEEVENT='nameevent'; CATEGORY='cat'; ORGANIZ='org'; LOCATION='loc'; TYPE='type'; … TOKEN INT : DIGIT+; FLOAT :DIGIT+ '.' DIGIT+; DATE :DIGIT DIGIT '/' DIGIT DIGIT '/' (DIGIT DIGIT | DIGITDIGITDIGITDIGIT); HOUR : DIGIT DIGIT ':' DIGIT DIGIT; STRING : '"' ( ESC_SEQ | ~('\\'|'"') )* '“’; WS : ( ‘ ‘ | ‘\t’ | ‘\r‘ | ‘\n‘ ) {$channel=HIDDEN;}; …

  11. Grammatica B.N.F GrammarScope : <EVENT> <A_GR> InfocompetitionJurycronootherProgramcompStartlistNote <C_GR> Informazioni dell’evento <INFOEVENT> <A_GR> nameevent category organiz location type start end enddatereg poolbase limittimereg lanes <C_GR> infoevent{ nameevent : "Memorial Elena Lago" cat : Agonisti org : "Centro Nuoto Tezze ASD" loc : "Tezze sul Brenta" type : "Evento ufficiale organizzato da Società afferente al C.R.V." start : 06/11/2011 end : 06/11/2011 endreg : 04/11/2011 poolbase : 25 m limittime : "No" lanes : 6 } Propaganda Agonisti Master

  12. Grammatica B.N.F GrammarScope : <EVENT> <A_GR> InfocompetitionJurycronootherProgramcompStartlistNote <C_GR> Giuria Cronometristi <JURY> <A_GR> referee (coadjuctor)* depjudge (falsestartempl)* compempl <C_GR> jury{ referee : "Andrea Pozzato" coadjutor : "Sandra Pavanello" depjudge : “Marco Tolomei" fsemployee : "Milena Chiarello" competemployee: "Barbara Tolomei" } • <TIMING> • <A_GR> • cronotype • cronoserv • cronosoc • <C_GR> other{ speaker: "Roberto Magnagnini" doctor: "Leonardo Valenti" manager: "Antonio Baldetti" } • <OTHER> • <A_GR> • speak • doct • mang • <C_GR> timing{ cronotype : "Manuale" cronoserv : "" cronosociety : "G.u.g Veneto" }

  13. Grammatica B.N.F GrammarScope : <EVENT> <A_GR> InfocompetitionJurycronootherProgramcompStartlistNote <C_GR> Programma dell’evento program { date : 15/09/09 { [ hour : 12:00 category : Senior speciality : "50 rana" turn : heats ] [ hour : 12:15 category : Senior speciality : “100 stile" turn : heats ] } } • <PROG> • <A_GR> • (<datecomp> • <A_GR> • ( • <A_Q> • hourcomp • categorycomp • speccomp • turncomp • <C_Q> • )+ • <C_GR >)+ • <C_GR> Esordienti A, Ragazzi, Juniores, Master25, Master30, ecc… Serie, Semifinale, Finale

  14. Grammatica B.N.F GrammarScope : <EVENT> <A_GR> InfocompetitionJurycronootherProgramcompStartlistNote <C_GR> • <STARTLIST> • <A_GR> • ( <COMPNAME> • <A_GR> • (nameturn • <A_GR> • (<A_Q> • LANE • acode • aname • asurname • asoc • abirth • atimereg • atimeres • <C_Q>)+ • <C_GR>)+ • <C_GR>)+ • <C_GR> StartList • startlist • { • compname : "50 rana" • { • heats 1 • { • [ • lane : 1 • acode :"VEN-000000" • aname : “Isabella" • asurname :“Gottardi" • asociety: “Adria Nuoto" • abirthday : 23/06/1987 • atimereg: 00:00:30:80 • atimeres: 00:00:00:00 • ] • } • } Nel formato “AAA-000000”

  15. Considerazioni sulla grammatica (1/2) • Secondo la classificazione di Chomsky le grammatiche di tipo 2 (context free) presentano le produzioni vincolate alla forma: • … ma non sono presenti produzioni con self-embedding • … quindi il linguaggio è regolare Tipo 2 A → α con α є (VT U VN)* ed A є VN A → α1 A α2 con A є VN e α1, α2 є (VN U VT)+ Tipo 3

  16. Considerazioni sulla grammatica (2/2)

  17. Diagramma delle classi - Package • Contiene tutte le classi che estendono Exceptions che gestiscono le eccezioni sintattiche e semantiche • Contiene tutte le classi Lexer e Parser generate automaticamente da Antlr • Contiene tutte le classi necessarie per la costruzione dell’interfaccia grafica

  18. Diagramma delle classi • Antlr 3.0 non implementa il pattern Visitor per la valutazione dell’AST, è quindi necessario estendere la classe CommonTree e creare tutti i nodi necessari… (qui ne sono riportati solo alcuni)

  19. Diagramma delle classi -Visitor • Sono stati implementati due visitor, avendo così la possibilità di avere due viste differenti • HTML Visitor, produce una pagina HTML dell’evento natatorio • Tree Visitor, produce a video un albero della frase analizzata

  20. Verifica semantica • Errori lessicali e sintattici vengono rilevati direttamente da Lexer e da Parser tramite l’eccezione ErrorNodeException qualora venga inserito un nodo errore nell’AST, sono visualizzate a video all’utente mediante un messaggio nella console. • Errori semantici gestiti: • Codice atleta errato, previsto nel formato • “VEN-000000” • Tempo di iscrizione e tempo risultato dell’atleta sbagliati • Numero di corsia superiore al numero di corsie dell’impianto Orario immesso sbagliato

  21. Funzionamento del sistema (1/2) AST SintaxError

  22. Funzionamento del sistema (2/2) AST HTML Visitor TreeViisitor

  23. Strumenti utilizzati

  24. Limiti e sviluppi futuri • Per il momento è possibile creare eventi solo per categorie italiane • Si può prevedere di leggere esternamente oppure far introdurre all’avvio dall’utente le categorie che devono essere considerate valide • Creare nuovi output • Estendere il sistema introducendo la possibilità di creare file pdf del solo programma o della sola startlist per favorire la distribuzione ai tecnici

  25. Struttura dell’interfaccia grafica Comandi Editor Apre un Wizard per la costruzione semplificata di un’evento Console Editor help

  26. Demo Vai alla demo

More Related