Progetto don’t you forget

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

Introduzione ad XML Mario Arrigoni Neri.
I linguaggi di programmazione
Definizione e tipi di implementazione
Linguaggi di Programmazione e compilatori
Linguaggi di programmazione
Java Enterprise Edition (JEE)
Massa Laura Mela Enrica
Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.
Semantica Operazionale di un frammento di Java: lo stato
Re-engineering del wrapper XML Schema per il sistema MOMIS
Università degli Studi di Modena e Reggio Emilia
Università degli studi di Trieste – Tesi di laurea triennale in Ingegneria elettronica PROTOCOLLO DI COMUNICAZIONE TRA PC E MICROCONTROLLORE PER UN’INTERFACCIA.
Fondamenti di Informatica
1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dellutente? Introdurremo i concetti di verifica e validazione.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
File.
Architettura Three Tier
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Corso di Informatica (Basi di Dati)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
eliana minicozzi linguaggi1a.a lezione2
Unità Didattica 2 I Linguaggi di Programmazione
Fondamenti di Informatica1 Linguaggi Classificati rispetto alle caratteristiche principali: –potere espressivo che influenza lo stile di programmazione.
Espressioni condizionali
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Analisi di Immagini e Dati Biologici
AN FI Un denominatoe comune Comandi u notazioni che esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno.
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
AN FI Concetti. Linguaggi di alto livello u Hanno capacita' espressive superiori a quelle del linguaggio macchina u Suggeriscono concetti e modi.
Distributed File System Service Dario Agostinone.
Meteo Service Corso di Reti di Calcolatori LS Casarini Stefano matr
Sviluppo di un modulo di interscambio di dati sanitari per teleconsulto: il caso dell'ospedale di Jirapa.
Ing. Enrico Lecchini BetaTre S.r.l.
Chinosi Michele – matr.: La seconda release di Virtuose basata su database XML La seconda release di Virtuose basata su.
Progetto per lesame di Linguaggi e Modelli Computazionali LS Chiara Chiara Gualtieri.
Inserire il CDROM CygWin nel lettore, aprite la directory cyg e lanciare in esecuzione (con un doppio click del pulsante sinistro del mouse sulla relativa.
Java Contardi Carlo A.S. 2008/09.
Linguaggi e Modelli Computazionali LS - Prof E.Denti
CineMan Linguaggio per la descrizione della programmazione di cinema
UNIVERSITA’ POLITECNICA DELLE MARCHE
Gianfranco Zampolini Progetto per il corso di: Linguaggi e Modelli Computazionali LS EM Linguaggio per la Descrizione di un Evento Musicale.
Corso di Laurea Specialistica in Ingegneria Informatica Model Drive Applicazione per il pilotaggio di veicoli Esame di Linguaggi e Modelli computazionali.
1 w w w. g a t 4. c o m WI GAT WebIngelligence rappresenta una piattaforma funzionale e tecnologica per la creazione e gestione di un datawarehouse che.
Implementazione di un linguaggio ad alto livello (con riferimento a Java)
Progetto di un linguaggio e interprete per giocare a MemoryPlus Progetto di:Docente: Vito La PortaEnrico Denti.
Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati.
Corso di Laurea Specialistica in Ingegneria Informatica Previsione dei Consumi Elettrici = Progetto per lesame di Linguaggi e Modelli Computazionali LS.
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.
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.
Modulo 6 Test di verifica
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
La Conservazione Sostitutiva e la Soluzione Una-Doc.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
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.
DerIntCalculator La calcolatrice per integrali e derivate Progetto di Linguaggi e Modelli Computazionali M Prof. Enrico Denti Realizzato da: Gabriella.
Service Composition Analysis Progetto Reti di Calcolatori-LS prof. A.Corradi tutor S.Monti Piattaforma di gestione ed analisi statistica di workflow in.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Eye Computer Sistema per l'interazione con un computer dotato di controllo oculare Linguaggi e modelli computazionali LS Realizzato da: Ciavarella Primiano.
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Transcript della presentazione:

Progetto don’t you forget Corso di Linguaggi e Modelli Computazionali Prof. Enrico Denti Sistema software per la programmazione di allarmi e promemoria Progetto don’t you forget Progetto DUF - Marco Albertin Progetto DUF - Marco Albertin

Obiettivi Elaborare un linguaggio intuitivo per la scrittura di promemoria. Realizzare un interprete estendibile che fornisca anche un semplice supporto per la gestione degli errori. Progettare una semplice interfaccia grafica per la scrittura e gestione dei promemoria. Progetto DUF - Marco Albertin

Analisi del problema Scomposizione del programma in moduli: Interprete. Interfaccia grafica. Componente di mediazione tra i due ambiti. L’interprete necessita di una funzione di valutazione (come valutare un promemoria?). Necessità di salvare i promemoria su filesystem. Progetto DUF - Marco Albertin

Grammatica in BNF (1/4) S ::= <COMMANDS> | ε La stringa vuota è teoricamente accettata dal riconoscitore, ma non dal valutatore (semantica nulla). Le frasi sono costituite da una serie di comandi (infinite frasi possibili). L’ordine di comandi diversi tra loro è ininfluente. Il linguaggio è case-sensitive. Progetto DUF - Marco Albertin

Sottocomandi di repeat Comandi principali Grammatica in BNF (2/4) <COMMANDS> ::= <COMMAND> , <COMMANDS> | <COMMAND> <COMMAND> ::= when(<DATE>) | hour(<HOUR>) | minute(<SIXTIETHS>) | second(<SIXTIETHS>) | context(<TYPE>) | alertType(<ALERT>) | text(‘<TEXT>’) | repeat(<NUM>,<ARGUMENTLIST>) <DATE> ::= <DAY>-<MONTH>-<YEAR> | <DAY>/<MONTH>/<YEAR> <TYPE> ::= generic | birthday | anniversary | call | meeting | party | diploma <ALERT> ::= none | discreet | average | maximum | red | lifeordeath <ARGUMENTSLIST> ::= [<ARGUMENTS>] | [] <ARGUMENTS> ::= <ARGUMENT> , <ARGUMENTS> | <ARGUMENT> <ARGUMENT> ::= yearDelay(<DIGIT>) | dayDelay(<DDAY>) | hourDelay(<DHOUR>) | minuteDelay(<DSIXTIETHS>) | increasing_priority | relaxing_priority | static_priority Formati di data “Enumerativi” Sottocomandi di repeat Progetto DUF - Marco Albertin

Grammatica in BNF (3/4) Da 1980 a 2099 Da 1 a 12 Da 1 a 31 Da 0 a 23 <YEAR> ::= 198 <DIGIT> | 199 <DIGIT> | 20 <DIGIT> <DIGIT> <MONTH> ::= <NOT_ZERO> | 10 | 11 | 12 <DAY> ::= <NOT_ZERO> | 1 <DIGIT> | 2 <DIGIT> | 30 | 31 <HOUR> ::= <DIGIT> | 1 <DIGIT> | 20 | 21 | 22 | 23 <SIXTIETHS> ::= <DIGIT> | <ONE_TO_FIVE> <DIGIT> <DDAY> ::= <NOT_ZERO> | <NOT_ZERO> <DIGIT> | 1 <DIGIT> <DIGIT> | 2 <DIGIT> <DIGIT> | 3 <ZERO_TO_SIX> <ZERO_TO_FOUR> <DHOUR> ::= <NOT_ZERO> | 1 <DIGIT> | 20 | 21 | 22 | 23 <DSIXTIETHS> ::= <NOT_ZERO> | <ONE_TO_FIVE> <DIGIT> <NUM> ::= <NOT_ZERO> | <NOT_ZERO> <DIGIT> <ONE_TO_FIVE> ::= 1 | 2 | 3 | 4 | 5 <ZERO_TO_SIX> ::= <ZERO_TO_FOUR> | 5 | 6 <ZERO_TO_FOUR> ::= 0 | 1 | 2 | 3 | 4 <NOT_ZERO> ::= <ONE_TO_FIVE> | 6 | 7 | 8 | 9 <DIGIT> ::= 0 | <NOT_ZERO> Da 1 a 12 Da 1 a 31 Da 0 a 23 Da 0 a 59 Da 1 a 364 Da 1 a 23 Da 1 a 59 Da 1 a 99 Progetto DUF - Marco Albertin

Grammatica in BNF (4/4) <TEXT> ::= <CHAR> <TEXT> | ε <CHAR> ::= a | … | z | A | … | Z | <DIGIT> | … Tutti i caratteri sono ammessi eccetto l’apostrofo singolo (serve a delimitare la stringa) Progetto DUF - Marco Albertin

Considerazioni Il linguaggio è di tipo 3 secondo la classificazione di Chomsky. Grammatica di tipo LL(1). Formalismo del riconoscitore: ASF. Progetto DUF - Marco Albertin

Scelte progettuali Progettazione di un sistema ibrido. Scrittura dell’interprete tramite il linguaggio Prolog: Non è necessario costruire uno scanner ad hoc. Programmazione più veloce ed ottimizzata. Possibilità di introdurre non determinismo a costo implementativo nullo. Realizzazione dell’interfaccia grafica in C#.NET. Utilizzo di tuProlog come libreria di interfacciamento. Possibilità di creare direttamente un oggetto C# dalla valutazione del linguaggio. Progetto DUF - Marco Albertin

Scelte progettuali Necessità: rendere possibile la creazione e la gestione di più configurazioni di promemoria (Agenda) persistenti. Soluzione: utilizzare file scritti in XML per memorizzare questo tipo di collezioni. Costruzione di metodi che trasformano i promemoria in XML e viceversa. Utilizzo di strumenti automatici forniti dal linguaggio per la scrittura di file XML. Progetto DUF - Marco Albertin

Architettura Interfaccia grafica Strutture dati (Reminder, Agenda,..) Intermediario / preparatore Libreria tuProlog Librerie DOM Interprete Prolog Progetto DUF - Marco Albertin

Funzionamento Ambiente .NET Interprete Prolog Intermediario tuProlog Interfaccia grafica Scrittura del programma Preparazione goal Valutazione del programma Recupero dell’oggetto promemoria Visualizzazione / esecuzione promemoria Ambiente Prolog Progetto DUF - Marco Albertin

Estensione dell’interprete Il linguaggio Prolog ammette asserzioni dinamiche. Realizzazione di un blocco per la scrittura di produzioni personalizzate: #assert … #endassert All’interno del blocco vige la grammatica Prolog Riscrittura del programma in forma di goal Prolog aggiungendo la lista per le asserzioni dinamiche. Progetto DUF - Marco Albertin

Gestione degli errori Il programma Prolog in caso di fallimento nel riconoscimento o nella valutazione risponderebbe: no. Introduzione della variabile Error nella testa di ogni clausola contenente una stringa di errore. La stringa viene riempita nel punto in cui si verifica il fallimento -> è possibile sapere il punto del programma che ha causato errori. Progetto DUF - Marco Albertin

Limiti L’estensione dell’interprete presuppone la conoscenza del linguaggio Prolog e del funzionamento dell’interprete statico. La creazione di oggetti C# tramite Prolog lega fortemente i due ambiti applicativi e ne riduce la flessibilità. Forte presenza di strutture imperative all’interno del programma Prolog -> leggibilità scarsa. Progetto DUF - Marco Albertin

Sviluppi futuri Creazione di uno schema XSD per la validazione dei file di Agenda. Realizzazione di un file XSLT per rendere i file di Agenda visualizzabili dal Web. Svincolare la parte di valutazione del linguaggio dal programma Prolog impostandola dinamicamente dall’intermediario. Creare un Web Service per la creazione di promemoria da remoto. Progetto DUF - Marco Albertin

And then… …have a DUF!! Progetto DUF - Marco Albertin