Corso di Laurea Specialistica in Ingegneria Informatica Model Drive Applicazione per il pilotaggio di veicoli Esame di Linguaggi e Modelli computazionali.

Slides:



Advertisements
Presentazioni simili
Analisi e progettazione
Advertisements

Evoluzione dei linguaggi di programmazione
Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Generalità Linguaggio e Macchina Astratta
INFORMATICA typedef.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Velocità media e velocità istantanea
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Lo sviluppo del linguaggio nel bambino
Velocità media Abbiamo definito la velocità vettoriale media.
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Algoritmi.
Unità Didattica 2 I Linguaggi di Programmazione
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
LINGUAGGI DI PROGRAMMAZIONE
Progetto per lesame di Linguaggi e Modelli Computazionali LS Chiara Chiara Gualtieri.
Rocco – Schede di Informatica I 5 PASSI PER FARE UNA PRESENTAZIONE.
Progetto desame di Gianluca Gallo Linguaggi e modelli computazionali LM Prof. Enrico Denti.
Linguaggi e Modelli Computazionali LS - Prof E.Denti
CineMan Linguaggio per la descrizione della programmazione di cinema
III Convegno Nazionale
CINEMATICA Lezione n.3 –Fisica ITI «Torricelli» –S.Agata M.llo (ME)
Facoltà di Ingegneria – Università di Bologna
Corso di Laurea Specialistica in Ingegneria Informatica Itinerari aerei Progetto per lesame di Linguaggi e Modelli Computazionali LS realizzato da Stefano.
Linguaggio per la generazione di biglietti da visita
Gianfranco Zampolini Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale.
Lo sviluppo del software e i linguaggi di programmazione
Servizi Grid ed agenti mobili : un ambiente di sviluppo e delivering
Linguaggi e modelli computazionali LS
Progetto di un linguaggio e interprete per giocare a MemoryPlus Progetto di:Docente: Vito La PortaEnrico Denti.
Corso di Laurea Specialistica in Ingegneria Informatica Previsione dei Consumi Elettrici = Progetto per lesame di Linguaggi e Modelli Computazionali LS.
Un linguaggio ed un interprete per il gioco Citadels
Progetto don’t you forget
Progetto Fireworks Simulatore di spettacoli pirotecnici
Tablabla Progetto di Valent Cristina
SQL File Manager un nuovo modo di gestire il filesystem….
Università degli Studi di Bologna Facoltà di Ingegneria Anno Accademico 2007/2008 Laurea Specialistica in Ingegneria Informatica Linguaggi e Modelli Computazionali.
Chess Game Visualizer Un interprete per Short Algebraic Notation Progetto per lesame di Linguaggi e modelli computazionali LS prof. Denti – A.A. 2007/08.
Linguaggi e modelli computazionali LS Manni Tiziano
ATTIVITÀ PROGETTUALE LINGUAGGI E MODELLI COMPUTAZIONALI L-M Un linguaggio per la descrizione di coreografie giocabili STUDENTE: BACCHILEGA SIMONE A.A 2013/2014.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
DAmb Sergio Lovrinich 28 Settembre Descrizione Questo Software si propone di eseguire una Analisi del Codice Sorgente, mettendo a disposizione Strumenti.
Principi di grafica BMP , Jpeg , Tif , GIF:
Rappresentazione degli algoritmi
Un Sistema per la Redazione Assistita di Testi Giuridici Tesi di Laurea Specialistica in Informatica di Emiliano Giovannetti Un Sistema per la Redazione.
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
DRAUGHTS Linguaggi e Modelli Computazionali LS Linguaggio e interprete per effettuare una partita di dama inglese contro un’intelligenza artificiale Progetto.
Giannicola Spezzigu Accordo: sovrapposizione di 3 o più suoni Ogni sigla denota un accordo, ossia i suoni da cui esso è formato Accordi e.
Trading EToro Un linguaggio per descrivere e gestire operazioni di borsa Progetto di Linguaggi e Modelli Computazionali LS Prof. Enrico Denti Mancini Laura.
Progetto di Linguaggi e modelli computazionali M Prof. Enrico Denti Progetto di: Francesco Paci.
DerIntCalculator La calcolatrice per integrali e derivate Progetto di Linguaggi e Modelli Computazionali M Prof. Enrico Denti Realizzato da: Gabriella.
Linguaggi e Modelli Computazionali LS Anno Accademico 2007/2008 Alessio Della Motta Un linguaggio per descrivere partite di Maraffone: il gioco più popolare.
Scrivere e compilare programmi
Linguaggi di programmazione: panoramica Linguaggi di programmazione ad alto livello: – –Programmazione procedurale – –Programmazione object oriented –
Sistemi basati su conoscenza Linguaggio naturale: semantica Prof. M.T. PAZIENZA a.a
Il pre-processore C modifica il testo del programma prima che esso raggiunga il compilatore vero e proprio. ANCORA SUL PRE-PROCESSORE C File sorgente.c.
CAKE Ambiente per la scrittura e la riproduzione audio di ricette per torte Linguaggi e Modelli Computazionali LSElisabetta Visciotti.
Per un nuovo orientamento nella progettazione dei linguaggi di programmazione Tesi di Laurea di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà.
Eye Computer Sistema per l'interazione con un computer dotato di controllo oculare Linguaggi e modelli computazionali LS Realizzato da: Ciavarella Primiano.
Problemi, algoritmi e programmazione
L’AUTISTA SOCCORRITORE
Il moto e la velocità.
Università degli studi di Modena e Reggio Emilia Facoltà di Scienze Fisiche, Informatiche e Matematiche Corso di Laurea in Informatica Progettazione e.
Dal problema al programma
Transcript della presentazione:

Corso di Laurea Specialistica in Ingegneria Informatica Model Drive Applicazione per il pilotaggio di veicoli Esame di Linguaggi e Modelli computazionali LS Prof. Enrico Denti Progetto di Maria Teresa Roccia Model Drive

Requisiti di base dellapplicazione: -C-Controllare la correttezza di sequenze di comandi per il pilotaggio di diversi modellini di macchine, elicotteri o barche. -E-Esplicitare leffetto prodotto dalleventuale esecuzione sul modello del veicolo scelto della particolare sequenza immessa. -I-I comandi devono poter essere forniti mediante il supporto di uninterfaccia. -S-Sul modellino è possibile settare 10 differenti valori di accelerazione, da 0 (accelerazione nulla) a 9 (accelerazione massima), che modificano la velocità con cui il modello si muove. -I-I modellini si differenziano fra loro per il colore (rosso, nero, verde, grigio, blu e giallo). -L-La portata massima del radio comando è pari a 30 mt. Occorre disporre di: Un linguaggio specifico per il pilotaggio di modelli di veicolo. Un interprete per Controllo della correttezza delle frasi del linguaggio immesse Descrizione dei movimenti del veicolo a seguito della sequenza delle frasi corrette immesse dall'utente. Model Drive Quali obiettivi e come raggiungerli Definizione di Grammatica Analisi lessicale e sintattica Analisi semantica

Up Model Drive Approccio al problema: Spazio d'azione e possibili movimenti 3D 2D Forward Left Right Forward Left Right Down Backward TYPE DIRECTION Quale grammatica per quale linguaggio?

S ::= ::= := 2D_Drive | 3D_Drive ::= Car_ | Boat_ | Helicopter_ ::= Red | Green | Black | Yellow | Blue | Grey ::= ::= | ::= ::= forward | left | right | backward | up | down ::= ::= | ::= ::= | ::= 0 | 1 | 2 ::= 3 | 4 | 5 | 6 | 7 | 8 | 9 ::= Model Drive Grammatica BNF: lidea di partenza (1/1) ::= ( ::= ) ::= ; ::=. ::= : ::= + ::= - ::= OFF ::= ON

S ::= ::= := 2D_Drive | 3D_Drive ::= Car_ | Boat_ | Helicopter_ ::= Red | Green | Black | Yellow | Blue | Grey ::= ::= | ::= ::= forward | left | right | backward | up | down ::= ::= | ::= ::= | ::= 0 | 1 | 2 ::= 3 | 4 | 5 | 6 | 7 | 8 | 9 ::= Ricorsione, NO SELF-EMBEDDING Quale linguaggio? Model Drive Grammatica Context-Free (Tipo 2) Secondo Chomsky Linguaggio regolare Quale grammatica? ::= ( ::= ) ::= ; ::=. ::= : ::= + ::= - ::= OFF Grammatica BNF: lidea di partenza (1/2)

S ::= ::= := 2D_Drive | 3D_Drive ::= Car_ | Boat_ | Helicopter_ ::= Red | Green | Black | Yellow| Blue | Grey ::= ::= | ::= ::= forward | left | right | backward | up | down ::= ::= | ::= ::= | ::= 0 | 1 | 2 ::= 3 | 4 | 5 | 6 | 7 | 8 | 9 ::= Model Drive Grammatica BNF: lidea di partenza (1/3) Controllo a livello sintattico: - Troppo vincolante: grammatica con scarsa possibilità di riuso - Inutile: il controllo a livello semantico è comunque necessario LL(1) Grammatica LL(K)?

S ::= ::= := 2D_Drive | 3D_Drive ::= Car_ | Boat_ | Helicopter_ ::= Red | Green | Black | Yellow | Blue | Grey ::= ::= | ::= ::= forward | left | right | backward | up | down ::= ::= | ::= ::= | ::= 0 | 1 | 2 ::= 3 | 4 | 5 | 6 | 7 | 8 | 9 ::= Model Drive Grammatica BNF: lidea di partenza (1/4) ::= ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 DIST: mt.cm oppure km.mt oppure cm.mm …

S ::= ::= := 2D_Drive | 3D_Drive ::= Car_ | Boat_ | Helicopter_ ::= Red | Green | Black | Yellow| Blue | Grey ::= ::= { } ::= ::= forward | left | right | backward | up | down ::= ::= ( | ) ::= ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ::= ::= ON ::= OFF Model Drive Grammatica utilizzata EBNF ::= ( ::= ) ::= ; ::=. ::= : ::= + ::= - Grammatica Context- Free (Tipo 2) Secondo Chomsky LL(1) Linguaggio regolare

Model Drive Analisi Sintattica: limiti 2D_Drive Car_Red: forward(21.15)+5; OFF. 2D_Drive Car_Red: ON; forward(21.15)+5; OFF. Il modello deve essere acceso e poi pilotato! 2D_Drive Car_Red: ON; up(21.15)+5; OFF. La frase è sintatticamente corretta, ma il modello non può volare! 2D Forward Left Right Backward 2D_Drive Car_Red: ON; forward(21.15)+0; OFF. La frase è sintatticamente corretta, ma il modello si muoverà?

Model Drive Analisi Semantica: il calcolo del significato In generale Che significato si attribuisce ad una frase sintatticamente corretta di un linguaggio? In particolare: Come si muoverà il modellino scelto a seguito delleventuale esecuzione di una corretta sequenza di comandi? Dipende dai valori settati come distanza ed accelerazione, ma soprattutto dal particolare modellino in uso Ho bisogno di una funzione di valutazione per ogni modellino! Possibili metodologie risolutive: Metodologia object-oriented: Metodo di interpretazione interno alle classi Ma nuova interpretazione => Definizione del nuovo metodo in tutte le classi!

Model Drive Alcune classi sintattiche: esempio Interpretare i movimenti di un aereo: Possibilità di decollare solo - Dopo aver raggiunto una certa accelerazione - Se ha a disposizione una certa distanza - Con un determinato comando di direzione,…

Model Drive Analisi Semantica: il calcolo del significato In generale Che significato si attribuisce ad una frase sintatticamente corretta di un linguaggio? In particolare: Come si muoverà il modellino scelto a seguito delleventuale esecuzione di una corretta sequenza di comandi? Dipende dai valori settati come distanza ed accelerazione, ma soprattutto dal particolare modellino in uso Ho bisogno di una funzione di valutazione per ogni modellino! Possibili metodologie risolutive: Metodologia funzionale: Funzione di interpretazione esterna alle classi Ma nuova produzione => Modifica di tutte le funzioni di interpretazione! Metodologia object-oriented: Metodo di interpretazione interno alle classi Ma nuova interpretazione => Definizione del nuovo metodo in tutte le classi!

Model Drive Analisi Semantica: il calcolo del significato In generale Che significato si attribuisce ad una frase sintatticamente corretta di un linguaggio? In particolare: Come si muoverà il modellino scelto a seguito delleventuale esecuzione di una corretta sequenza di comandi? Dipende dai valori settati come distanza ed accelerazione, ma soprattutto dal particolare modellino in uso Ho bisogno di una funzione di valutazione per ogni modellino! Il punto di incontro: Pattern Visitor e tecnica del double dispatch Un oggetto Visitor localizza la funzione di valutazione seguendo lapproccio funzionale e fornendo loperazione chiamata di solito visit Sono possibili tante versioni della stessa funzione di valutazione quante le classi della tassonomia, seguendo lapproccio object-oriented (oveloading visit)

Model Drive Strumenti utilizzati Java 1.6.0_03 NetBeans 6.1 JavaCC 4.1 JavaCC companion tools: -J-Java Tree Builder J-JJDoc Le azioni semantiche riguardano solo il Visitor Documento per la grammatica Generazione automatica del riconoscitore LL: Classi sintattiche e Visitor vengono create in modo automatico

Model Drive Analisi Semantica: pattern Visitor e double- dispatch Create in automatico (JavaTreeBuilder) Interpretare i movimenti di un nuovo tipo di modellino significa semplicemente introdurre un nuovo oggetto Visitor

Model Drive Analisi Semantica: pattern Visitor e double- dispatch Create in automatico (JavaTreeBuilder) Anche espandere la grammatica fornendo nuove funzionalià allapplicazione non è un più un problema!

Model Drive Un esempio Lutente decide che vuole avere la possibilità di stabilire fra due o più veicoli qual è quello programmato in modo migliore per raggiungere una determinata destinazione, dato un certo punto di partenza! S ::= | ::=... ::= { }...

Model Drive Analisi Semantica: esplicitazione del significato Esplicitazione semantica: - Descrizione verbale, sì ma… - Rappresentazione grafica (mediante la classe ActionSpace)

Model Drive Sviluppi possibili Migliorare lesplicitazione semantica mediante rappresentazione grafica tridimensionale dei movimenti (ad esempio utilizzando java3d) Pilotaggio di altri tipi di modellini oltre a quelli inseriti, ad esempio - Aereo: si può muovere quasi come una macchina, ma anche come un elicottero, ponendo attenzione alle fasi di atterraggio e di decollo che sono più complesse - Sottomarino: si può muovere come una barca, ma anche su e giù come un elicottero, … Pilotaggio di più modellini contemporaneamente - Per gare di velocità lungo un prefissato percorso - Per individuare il percorso più breve date le coordinate di partenza e di arrivo, … Descrizione più precisa dello spazio dazione (oltre le sole coordinate e la portata massima), ad esempio - Tenendo conto di inclinazioni e pendenze (che modificano le fasi di atterraggio o le velocità dei veicoli) - Per fissare percorsi o ostacoli, … Immaginare diversi possibili scenari applicativi andando oltre i modellini - Movimento di nastri o bracci meccanici sincronizzati - Movimento di un veicolo-aspirapolvere automatico programmato in base ad una precisa planimetria, …

Model Drive DRIVE a MODEL