{ CrashLang Un linguaggio per raccogliere i risultati di un crash test Attività progettuale di Linguaggi e Modelli Computazionali M Anno Accademico: 2010/2011.

Slides:



Advertisements
Presentazioni simili
Il linguaggio HTML I documenti HTML vanno racchiusi dentro una coppia di TAG (marcatori): apertura e chiusura. ……………………………… …………………………… ……………….
Advertisements

Introduzione ad XML Mario Arrigoni Neri.
PHP.
Analizzatori Lessicali con JLex
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Usare Apache Axis.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Università La Sapienza Web programming e programmazione multimediale 1 Web Programming e comunicazione multimediale Lezione 10: PHP.
Come creare e gestire siti web con Kompozer, editor HTML
Ordine dei Dottori Commercialisti e degli Esperti Contabili di Ivrea, Pinerolo, Torino1 effettuate le operazioni di generazione dell'Ambiente di sicurezza.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
LHTML è un linguaggio per computer comprensibile da parte dei browser Web Le pagine Web sono scritte in HTML LHTML è necessario sul Web per formattare.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Internet Explorer Il browser.
CORSO DI INFORMATICA LAUREA TRIENNALE-COMUNICAZIONE & DAMS
PHP – Un’introduzione Linguaggi e Traduttori 2003 Facoltà di Economia
CAPITOLO 1 JAVA: UN TUFFO NEL LINGUAGGIO E NELL'AMBIENTE.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Ambienti di programmazione Stefano Cagnoni e Monica Mordonini.
Elaborazione di Franco Grivet Chin
Realizzazione siti web Pagine web dinamiche - javascript.
Corso di PHP.
JavaScript 1. Origine E uno dei primi linguaggi di scripting per il web sviluppato da Netscape nel 1995 E interpretato Ha alcune similarità sintattiche.
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
Elenco dei risultati di EBSCOhost tutorial. Benvenuti al tutorial relativo allelenco dei risultati di EBSCOhost. In questo tutorial verranno illustrate.
Javascript: fondamenti, concetti, modello a oggetti
ANTLR V.3 Renzi Alberto.
Java Contardi Carlo A.S. 2008/09.
CineMan Linguaggio per la descrizione della programmazione di cinema
Linguaggio per la generazione di biglietti da visita
Elenchi in Excel E’ possibile inserire le voci del nuovo elenco oppure
Introduzione alle ASP: primi passi negli script. Frosini Andrea Università degli studi di Siena Dipartimento di Scienze Matematiche.
Fondamenti di JSP: Introduzione
Sistemi Informativi sul Web
Creare pagine web Xhtlm. Struttura di una pagina.
Common Gateway Interface. Dynamic HTML le risposte inviate al client sono (parzialmente o totalmente) create on-the-fly (al volo) dopo aver ricevuto il.
Il linguaggio HTML Le pagine web sono file di testo scritte utilizzando il linguaggio HTML. I documenti HTML vanno racchiusi dentro una coppia di TAG.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Linguaggi e modelli computazionali LS Manni Tiziano
Java Enterprise Edition
ATTIVITÀ PROGETTUALE LINGUAGGI E MODELLI COMPUTAZIONALI L-M Un linguaggio per la descrizione di coreografie giocabili STUDENTE: BACCHILEGA SIMONE A.A 2013/2014.
INTRODUZIONE A JAVASCRIPT
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
HTML Gli elementi principali di una pagina Web. Titolo: 2  Attribuisce un titolo alla pagina  Il titolo è visibile nella “barra del titolo” del browser.
Corso Web CSV – Andiamo on-line 1 Andiamo on-line Corso di formazione Elementi base per la costruzione di un sito web.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Lezione 3 Struttura lessicale del linguaggio
CORSO Di WEB DESIGN prof. Leonardo Moriello
SIS² Richiesta PIN Configurazione SIS² Stampa tessere 2010.
I collegamenti ipertestuali. I collegamenti ipertestuali si creano associando l'indirizzo (percorso/nome file) del nodo di destinazione ad un elemento.
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Introduzione a Javascript
HTML 4.01 Apogeo. I tag di base Capitolo 1 I tag SintassiEsempi:
Tag FRAMESET. I frame sono un particolare tipo di struttura HTML, che consente di suddividere la finestra del browser in diversi riquadri distinti. Un'insieme.
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.
Laboratorio di Servizi Web - servlet - Ardissono 1 Chiarimenti su Servlet Note aggiuntive su architettura di applicazione web che usa Servlet per gestire.
Trading EToro Un linguaggio per descrivere e gestire operazioni di borsa Progetto di Linguaggi e Modelli Computazionali LS Prof. Enrico Denti Mancini Laura.
Linguaggi e Modelli Computazionali LS Anno Accademico 2007/2008 Alessio Della Motta Un linguaggio per descrivere partite di Maraffone: il gioco più popolare.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
Servizi Internet Claudia Raibulet
Eye Computer Sistema per l'interazione con un computer dotato di controllo oculare Linguaggi e modelli computazionali LS Realizzato da: Ciavarella Primiano.
JoomlaDay Italia Roma Novembre 2009 Alessandro Zaffi
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Eprogram informatica V anno.
Javascript. HTML per definire il contenuto delle pagine web CSS per specificare il layout delle pagine web JavaScript per definire il comportamento delle.
Eprogram informatica V anno. Programmare in rete.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
ASP – Active Server Pages - 1 -Giuseppe Tandoi ASP – Active Server Pages Tecnologia per lo sviluppo di pagine dinamiche.
Transcript della presentazione:

{ CrashLang Un linguaggio per raccogliere i risultati di un crash test Attività progettuale di Linguaggi e Modelli Computazionali M Anno Accademico: 2010/2011 Realizzato da: Luca Bettelli

… mette alla prova le automobili prossime alla commercializzazione, valutandone il livello di sicurezza. Vengono simulati in laboratorio i più comuni tipi di incidente, per verificare se la pressione subita nellimpatto da particolari manichini è tale da causare danni ai passeggeri della vettura. EuroNCAP è la società che realizza questi test in Europa. Esegue test più severi rispetto ai requisiti di sicurezza previsti dalle normative europee ed assegna un punteggio ai risultati ottenuti. Pubblica sul proprio sito web una scheda per ogni auto testata, così che i consumatori possano farsi unidea della qualità sulle caratteristiche di sicurezza dellauto che intendono acquistare. Un Crash Test…

Contiene gran parte delle informazioni presenti nelle schede del sito web di EuroNCAP. Rappresenta le informazioni in modo sintetico e leggibile. Non contiene i punteggi, a meno che non sia necessario. Linterprete ricaverà i punteggi mancanti direttamente dal testo. Per semplicità, alcune parti ridondanti o troppo prolisse delle schede di EuroNCAP non hanno una controparte in CrahLang. I punteggi ricavati dal testo non sono gli stessi presenti sul sito, perché non viene dichiarato quale peso si dà al punteggio dei singoli test nel calcolo del voto finale. Il linguaggio CrashLang

Giudizio complessivo Intestazione Un esempio di scheda Ciascuna scheda prevede quattro sezioni di test e due sezioni contenenti i dettagli dellauto testata. Ad ogni sezione di test viene assegnato un giudizio complessivo, espresso sia in punti che in percentuale. Adult occupant Child occupant Pedestrian Tested car Nel linguaggio si mettono solo i giudizi indicati in legenda. A ciascun giudizio corrisponde un colore e un punteggio. Il punteggio sotto ciascuna immagine è si ottiene sommando i punteggi parziali dellimmagine che sta sopra. Nel linguaggio si indica il valore numerico dei punteggi a sinistra. Il punteggio totale di questa sezione è dato dalla somma dei sette punteggi. Per ciascuna fascia detà, la colonna destra contiene le informazioni sul tipo di seggiolino testato. Safety assist Diviso in tre aree: per ciascuna devono essere elencati i giudizi (e quindi colori e punteggi) assegnati a quella parte dellauto. Sono tre test distinti. Ciascuno può avere valore fail, pass o not_assessed. Solo in caso pass viene assegnato un punto, negli altri casi zero. Elenco di stringhe di dimensione variabile. Contiene le informazioni sullauto testata e lequipaggiamento di sicurezza presente.

Lintenzione è quella di interpretare il linguaggio per ricostruire la pagina web di partenza: Voglio mantenere la struttura e i contenuti della pagina originale. Voglio calcolare automaticamente i punteggi. Voglio generare dinamicamente le immagini. Quindi… posso creare un sito web dinamico, che esegua su un opportuno web server. In ambiente Java: Linterprete viene invocato allinterno di una pagina JSP e manda in output direttamente dei tag HTML. Per le immagini posso usare delle Servlet, che colorano le parti del manichino in base ai parametri di GET ricevuti. Obiettivo finale

Linguaggio di Programmazione: Java 6 Ambiente di sviluppo: Eclipse Indigo (versione Java EE) Generazione parser, AST e visitor: JavaCC + JTB (invocati tramite plugin Eclipse) Automatizzazione processi di build e deploy: Apache Ant Web server, JSP e servlet container: Apache Tomcat (versione 7.0) Tecnologie utilizzate

Tutte le sezioni sono generate da unapposita produzione. Nelle prossime slide verranno mostrate le principali. Scope ::= Adult Child Pedestrian SafetyAssist TestedCar Equipment Alcune produzioni

Adult ::= ( AdultTest )+ AdultTest ::= ( )+ Alcune produzioni Rating è riconosciuto da una regular expression: Rating è riconosciuto da una regular expression: Id è riconosciuto da una regular expression: | | "_" )+ > Id è riconosciuto da una regular expression: | | "_" )+ >

Child ::= ( ChildTest )+ ChildResult ChildTest ::= ExtraDescriptions ( ChildResult )+ ChildResult ::= Alcune produzioni Pos_float è riconosciuto da una regular expression: )+ "." ( )+ > Pos_float è riconosciuto da una regular expression: )+ "." ( )+ >

Pedestrian ::= ( RatingArray )+ RatingArray ::= ( )+ SafetyAssist ::= ( SafetyTest )+ SafetyTest ::= ( )+ Alcune produzioni Test_result è riconosciuto da una regular expression: Test_result è riconosciuto da una regular expression:

TestedCar ::= ExtraDescriptions Equipment ::= ExtraDescriptions ExtraDescriptions ::= ( Description )+ Description ::= [ ] Alcune produzioni Per fare in modo che la stringa contenga anche caratteri speciali, il tipo String è definito come segue. Il carattere " è il delimitatore: Per fare in modo che la stringa contenga anche caratteri speciali, il tipo String è definito come segue. Il carattere " è il delimitatore:

SKIP : { " " | "\r" | "\t" | "\n" } TOKEN : //sections & subsections { | } Elenco dei token TOKEN : //document keywords { | }

La grammatica di CrashLang

È anche LL(1)?

Struttura del progetto Servlet per la generazione di immagini dinamiche. Contiene la grammatica del linguaggio e il parser generato da JavaCC. Generato da JTB, contiene le classi che costituiscono lAST. Generato da JTB, contiene sia i visitor generati a default da JTB che i visitor ridefiniti JspVisitor e TreeVisitor. Contiene il file di build ANT e un file di properties per settare le directory del Java JDK e il deploy path di Tomcat. JSP che mostra il codice contenuto in un file CrashLang. JSP che mostra lalbero sintattico di un file CrashLang. Intestazione del sito, inclusa nelle altre JSP. Legge il direttorio cars e propone in un menù a tendina le auto disponibili. Home page del sito CrashLang. Contiene esempi di crash test scritti in linguaggio CrashLang. JSP che invoca linterprete di CrashLang.

Interpreta un file CrashLang e dispone il suo contenuto in una pagina web visivamente simile a quella del sito EuroNCAP. Estende la classe DepthFirstRetArguVisitor, generata a default da JTB. Lalbero sintattico viene esplorato in modalità depth first. La classe estesa da JspVisitor è parametrica: Ogni metodo riceve in ingresso un PrintWriter: serve al visitor per emettere i tag HTML. Ogni metodo restituisce un oggetto Float: si usa per restituire al metodo chiamante i punteggi parziali ottenuti in una sottosezione. La classe JspVisitor

Permette lesplorazione dellalbero sintattico astratto ottenuto interpretando un file CrashLang. Si appoggia alla libreria Javascript jsTree, che decora i tag HTML della pagina dando ai nodi e una struttura a directory. La classe estende DepthFirstVoidArguVisitor, generato da JTB. Ogni metodo emette i tag HTML sul PrintWriter passato come parametro. La classe TreeVisitor

<% out.flush(); try { String fileName = request.getParameter("car"); parser = new CrashParser(new FileInputStream(fileName)); parser.Scope().accept(new JspVisitor(), response.getWriter()); } catch(Exception e) { %> An error occurred while parsing the file: <% out.flush(); e.printStackTrace(response.getWriter()); %> <% } %> Linvocazione del visitor Apertura del file CrashLang In caso di eccezione PrintWriter passato al visitor per emettere le tag HTML

Una pagina HTML, contiene al suo interno soltanto il link alle immagini che il browser deve scaricare, pertanto queste non possono essere generate dallinterprete di CrashLang assieme al resto del documento. Dal momento che le combinazioni di colori sono troppe è impensabile mantenere sul server le immagini già colorate: limmagine richiesta dal browser viene generata e restituita a run time da unapposita servlet. Le servlet leggono i parametri di GET lasciati dallinterprete: passando come parametri i giudizi assegnati, viene applicato su ciascuna parte del manichino il colore corrispondente. Colorare i manichini ? head=g & chest=m & abdomen=p & pelvis=g URL su cui è mappata la servlet

Per il deploy è stato predisposto un file ANT che, direttamente allinterno dellambiente Eclipse, permette di compilare il progetto, realizzare il pacchetto WAR e inviarlo al web server. Per indicare la posizione del JDK e del direttorio di deployment vanno modificati i parametri del file ant/environment.properties. Sono anche presenti i target ANT che avviano o fermano il web server, nel caso sia necessario aggiornare il pacchetto WAR. Quando il server è in funzione è comunque possibile aggiornare i file statici grazie al target update.pages. Deploy del progetto