albero sintattico parser scanner Errori sintattici
|
|
|
- Ida Deluca
- 8 anni fa
- Visualizzazioni
Transcript
1 albero programma scanner tokens parser sintattico rrori sintattici Un parser deve riconoscere la struttura di una stringa di ingresso, la cui struttura è fornita in termini di regole di produzione di una CFG, BNF, o diagrammi sintattici. Un parser è una macchina astratta che raggruppa input in accordo con regole grammaticali. 1
2 La sintassi è costituita da un insieme di regole che definiscono le frasi formalmente corrette permettono di assegnare ad esse una struttura (albero sintattico) che ne indica la decomposizione nei costituenti immediati. Ad es. la struttura di una frase (ovvero di un programma) di un linguaggio di programmazione ha come costituenti le parti dichiarative e quelle esecutive. Le parti dichiarative definiscono i dati usati dal programma. Le parti esecutive si articolano nelle istruzioni, che possono essere di vari tipi: assegnamenti, istruzioni condizionali, frasi di lettura, ecc. I costituenti del livello più basso sono gli elementi lessicali già considerati, che dalla sintassi sono visti come atomi indecomponibili. Infatti la loro definizione spetta al livello lessicale. La teoria formale dei linguaggi offre diversi modelli, ma nella quasi totalità dei casi il tipo di sintassi adottata è quello noto come sintassi libera o non-contestuale (context-free) che corrisponde al tipo 2 della gerarchia di Chomsky. I metodi sintattici per il trattamento del linguaggio sono semplici efficienti la definizione del linguaggio attraverso le regole delle sintassi libere dal contesto è diretta ed intuitiva gli algoritmi deterministici di riconoscimento delle frasi sono veloci (hanno complessità lineare) e facili da realizzare partendo dalla sintassi. Tutti questi vantaggi hanno imposto le grammatiche libere dal contesto come l unico metodo pratico per definire formalmente la struttura di un linguaggio. 2
3 Non tutte le regole di un linguaggio di programmazione possono essere espresse in termini nel modello noncontestuale. Ad esempio non puo espremere le seguenti regole: in un programma ogni identificatore di variabile deve comparire in una dichiarazione il tipo del parametro attuale di un sottoprogramma deve essere compatibile con quello del parametro formale corrispondente Da queste critiche sarebbe sbagliato concludere che i metodi sintattici sono inutili: al contrario essi sono indispensabili come supporto (concettuale e progettuale) su cui poggiare i più completi strumenti della semantica. Il parser lavora con stringhe di tokens Programa sorgente Scanner token get next token Parser Albero sintattico 3
4 Le strutture ricorsive presenti nei linguaggi di programmazione sono definite da una grammatica contextfree. Una grammatica context-free (CFG) è definita come Un insieme finito di terminali S (sono i token prodotti dallo scanner) Un insieme di non terminali V. Un assioma o simbolo iniziale (uno dei non terminali. Un insieme di produzioni (dette anche rewriting rules con la seguente forma A X 1... X m dove X 1 to X m possono essere terminali o non terminali. Se m =0 si ha A che è una produzione valida Le strutture ricorsive presenti nei linguaggi di programmazione sono definite da una grammatica contextfree. Una grammatica context-free (CFG) è definita come Un insieme finito di sempio terminali V (sono i token prodotti dallo scanner) T = { (, ), id, vsl, +, *, /, -} Un insieme di non terminali V = {} V. + Un assioma o simbolo iniziale (uno dei non terminali. Un insieme di produzioni (dette * anche rewriting rules con la seguente forma / - A X 1... X m ( ) dove X 1 to X m possono essere id terminali o non terminali. val Se m =0 si ha A che è una produzione valida 4
5 + + deriva da Possiamo sostituire con con + Perr poter fare questo deve esistere una produzione + nella grammatica. + id+ id+id Una sequenza di sostituzioni di non-terminali e chiamata una derivazione di id+id da. In generale un passo di derivazione è A se A in G (V T)* e (V T)* n ( n deriva da 1 o 1 è derivato da n ) one step * zero o più steps + 1 o più steps V = { Prog, Seq, Istr, xpr} T = { {, ;, id, +,} } Assioma = Prog Prog { Seq } Seq Istr; Seq Seq Istr { Seq } Istr id = xpr xpr id xpr xpr + id V = { Prog, Seq, Istr, xpr} T = { {, ;, id, +, } } Assioma = Prog Prog { Seq } Seq Seq ; Istr Istr {Seq } id = xpr xpr id xpr + id 5
6 Per esempio partendo da Prog possiamo generare, applicando ripetutamente le produzione le seguenti stringhe: Prog { Seq } { Istr ; Seq} {Istr; Istr ; Seq} { id = xpr ; Istr, } { id = id ;Istr ; } { id = id ; id = xpr } { id = id ; id = xpr + id} { id = id ; id = id + id} Le produzioni devono avere le seguenti proprietà: no produzioni inutili o ridondanti (i.e., A A), no non-terminali nella RHS di una produzione senza produzioni con LHS uguale al non terminale (e.g., A Ba dove B non è definito), no cicli infiniti (e.g., A Aa) senza altre produzioni per A), no ambiguita : una grammatica con più alberi sintattici per la stessa espressione è ambigua 6
7 L(G) è il linguaggio generato da G. Una frase di L(G) è una stringa di simboli terminali di G. Se S è l assioma o start symbol di G allora è una frase di L(G) + iff S dove T*. Se G è una grammatica context-free, L(G) è un linguaggio context-free. Due grammatiche sono equivalenti se producono lo stesso linguaggio. S Se contiene non-terminali, è chiamata forma di frase di G. * Se non contiene no-terminali è chiamata frase di G. Derivazione canonica sinistra (Left-Most Derivation) - -() -(+) -(id+) -(id+id) Derivazione canonica destra (Right-Most Derivation) - -() -(+) -(+id) -(id+id) top-down parser cerca una left-most derivation del programma sorgente bottom-up parser cerca una right-most derivation del programma sorgente 7
8 I nodi non foglie dell albero sintattico sono simboli non-terminal, le foglie simboli terminali () - -(+) - ( ) ( ) -(id+) - ( ) -(id+id) - ( ) id id id Un albero sintattico è una rappresentazione grafica di una derivazione. sempio: Consideriamo l analisi della frase * 3 secondo la seguente grammatica <expr> ::= <expr> + <expr> <expr> * <expr> L analisi sintattica può essere vista come un processo number per costruire gli alberi sintattici (parse tree). La sintassi di un programma è descritto da un agrammatica libera dal contesto (CFG). La notazione BNF (Backus-Naur Form) è una notazione per la descrzione di una CFG. Il parser verifica se un programma sorgente soddisfa le regole implicate da una grammatica context-free o no. Se le soddisfa, il parser crea l albero sintattico (del programma altrimenti genera un messaggio di errore. Una grammatica non contestuale Da una specifica rigorosa della sintassi dei linguaggi di programmazione Il progetto della grammatica e la fase iniziale del progetto del compilatore sistono strumenti automatici per costruire automaticamente il compilatore dalla grammatica 8
9 Una grammatica è ambigua se esistono più alberi sintattici per la stessa frase. + id+ id+* id+id* id+id*id + id * id id * +* id+* id+id* id+id*id + id * id id T = { (, ), id, +, *, /, -} V = {} + * / - ( ) id Per poter costruire un parser la grammatica non deve essere ambigua Grammatica non ambigua un unico albero sintattico per ogni frase del linguaggio Le ambiguità nella grammatica devono essere eliminate durante il progetto del compilatore 9
10 istr if expr then istr if expr then istr else istr otheristrs if 1 then if 2 then S 1 else S 2 istr if expr then istr else istr istr if expr then istr 1 if expr then istr S 2 1 if expr then istr else istr 2 S S 1 S Noi preferiamo il secondo albero sintattico (else corrisponde al if più vicino). Dobbiamo eliminare l ambiguità con tale obiettivo La grammatica non-ambigua sarà: istr matchedistr unmatchedistr matchedistr if expr then matchedistr else matchedistr otheristrs unmatchedistr if expr then istr if expr then matchedistr else unmatchedistr 10
11 Grammatiche ambigue possono essere rese non-ambigue in accordo alle precedenze degli operatori e alle regole di associativià degli operatori. + * id () +T T T T*F F F id () precedenze: * (left to right) + (left to right) Una grammatica è left recursive se ha un non terminale A + tale che A A per qualche stringa Le tecniche di parser Top-down non possono gestire grammatiche left-recursive. Una grammatica left-recursive deve esssere convertita in una non left-recursive. La ricorsione sinistra può comparire in un singolo passo della derivazione (immediate left-recursion), o può comparire in più che un passo. 11
12 A A dove A e (V T)* A A A A grammatica equivalente In generale A A 1... A m 1... n A 1 A... n A A 1 A... m A dove i A e (V T)* grammatica equivalente +T T T T*F T F F id F () eliminate immediate left recursion T +T T F T T *F T T F id F () 12
13 Una grammatica che non e direttamente left-recursive, ma lo è in modo indiretto Anche in questo caso va eliminata la ricorsione sinistra sempio S Aa b A Sc d S Aa Sca A Sc Aac - Ordinare I non-terminali A 1... A n - for i from 1 to n do { - for j from 1 to i-1 do { sostituire ogni produzione A i A j con A i 1... k dove A j 1... k } - eliminare la ricorsione sinistra nelle produzioni di A i } 13
14 S Aa b A Ac Sd f - Ordinare I non-terminali: S, A per S: - non c e una ricorsione sinistra diretta. for A: - sostituiamo A Sd con A Aad bd Cosi avremoa Ac Aad bd f - liminiamo la ricorsione sinistra in A A bda fa A ca ada Avremo la grammatica non ricorsiva equivalente: S Aa b A bda fa A ca ada S Aa b A Ac Sd f - Ordinare I non-terminali : A, S per A: liminamo la ricorsione sinistra in A A SdA fa A ca per S: - Sostituiamo S Aa with S SdA a fa a Così avremo S SdA a fa a b - liminamo la ricorsione sinistra in S S fa as bs S da as Avremo la grammatica non ricorsiva equivalente: S fa as bs S da as A SdA fa A ca 14
15 Un parser top down deterministico richiede una grammatica left-factored. grammatica grammatica equivalente istr if (expr ) istr else istr if (expr) istr In generale, A 1 2 dove (V T)* - { }, 1 (V T)* 2 (V T)* e 1 2. Noi possiamo riscrivere la grammatica come segue A A A
16 Per ogni non-terminale A con due o più alternative (produzioni) con una parte non vuota comune A 1... n 1... m diventa A A 1... m A 1... n A abb ab cdg cdeb cdfb A aa cdg cdeb cdfb A bb B A aa cda A bb B A g eb fb 16
17 A ad a ab abc b A aa b A d b bc A aa b A d ba A c istr if (expr ) istr else istr if (expr) istr istr if (expr ) istr X X else istr X 17
18 Le frasi possono essere analizzate da sinistra a destra (L parser), possono essere costruite con derivazioni left-most (LL(k) parser) o right-most (LR(k) parser) utilizzando k symboli di look-ahead! LL è più conosciuta come top-down parser. LR è più conosciuta come bottom-up parser. Per ragioni pratiche k deve essere piccolo. Per un compilatore è auspicabile l uso di grammatiche che possono essere analizzate in modo deterministico con al più k symboli di lookahead. L assenza di ambiguità è condizione necessaria per un analisi determinstica Consideriamo un bottom up parse per abbcde generato dalla seguente grammatica con assioma S, eseguento un approccio left-most matches First. S aacbe A Ab b B d 18
19 abbcde aabcbe aacbe S applicando B d applicando A b applicando A Ab applicando S aacbe A 1 A 2 S 4 B 3 a b b c d e Due differenti metodi di analisi sintattica top-down: l albero sintattico è creato dalla radice alle foglie bottom-up: l albero sintattico è creato dalle foglie alla radice Il parser può lavorare in una varietà di modi ma esso tipicamente processa l input da sinistra a destra. Parser sia top-down che bottom-up possono essere implmentati in modo efficente solo per alcune sottoclassi di gramatiche contextfree: LL per top-down LR per bottom-up Una left-most (right-most) derivation è una derivazione nella quale durante ogni passo viene sostituito solo il non-terminale più a sinistra (destra). 19
20 Data una grammatica non contestuale G(V,T,P,S) si definisce First( ) = {a in T * a } Quindi First( ) è il seguente sottoinsieme di T: se = a con a T allora a First( ) se = A con A V allora se una produzione A allora First( ) First( ) se una produzione A allora First( ) First( ) First( ) è l insieme di tutti i terminali con cui può iniziare una stringa derivata da. Se * allora First( ). First( ) = {a T * a } if a * then { } else T = {a, b, c, d, e}, V = {S, B, C} P = { S ase B, B bbe C, C cce d } S = S First(aSe) = {a} First(B) = First(bBe) First(C) = {b} First(cCe) First(d) = {b} {c} {d} = {b, c, d} First(bBe) = {b} First(C) = First(cCe) First(d) = {c} {d} = {c, d} First(cCe) = {c} First(d) = {d} 20
21 T = {a, b, c, d, e} V = {A, B, C, D} P = { A B Ce a B bc, C Dc D d } S = A First(B) = First(bC) ={b} First(C e) = First (Dc) = First(d) First( ) = {d} { } = {d, } First(a) = {a} First(bC )= {b} First(Dc) = First(d) First( ) = {d} { } = {d, } First(d) = {d} First( )= { } T = {(, +, ), v, f} V = {, Prefix, Tail} P = { Prefix() v Tail Prefix f Tail + } S = First(Prefix() ) = {f} { } First(v Tail) = {v} First(f) = {f} First( )= { } First(+) = {+} 21
22 T = {a, (, ), +, ","} V = {, T, L, P} P = { + T T T a () a(l) L P, P P "," } S = First() = {a, (} First(T) = {a, (} First(L) = {, a, (} First(P) = {a, (} T = {a, b, c, d, e} V = {A, B, C, D} P = { A B C Ce a B bc C Dc D D d } S = A First(A) = {a, b, d, c, e, } First(B) = {b} First(C) = {d, c, } First(D) = {d, } 22
23 Data una grammatica non contestuale G(V,T,P,S) si definisce Follow(A) l insieme dei terminali che seguono in una qualsiasi frase sso è definito come segue: Follow(A) = {a T S + Aa.} (if S * A then { } else } T = {a, b, c, d, e}, V = {S, B, C} P = { S ase B, B bbe C, C cce d } S = S Follow(S) = {e, $} Follow(B) = {e, $} Follow(C) = {e, $} 23
24 T = {a, (, ), +, ","} V = {, T, L, P} P = { + T T T a () a(l) L P, P P "," } S = Follow() = {+, ),,, $} Follow(T) = {+, ),,, $} Follow(L) = { ) } Follow(P) = {),, } T = {(, +, ), v, f} V = {, Prefix, Tail} P = { Prefix() v Tail Prefix f Tail + } S = Follow(Prefix ) = { ( } Follow() = { ), $} Follow(Tail) = {), $ } 24
25 T = {a, b, c, d, e} V = {A, B, C, D} P = { S = A A B Ce a B bc, C Dc D d } Follow(A) = {$} Follow(B) = {$} Follow(C) = {$, e} Follow(D) = {c} T = {a, b, c, d, e} V = {A, B, C, D} P = { A B C Ce a B bc C Dc D D d } S = A Follow(A) = {$} Follow(B) = Follow(A) = {$} Follow(C) = Follow(A) Follow(B) {e} = {e, $} Follow(D) = {c } Follow(C) = {c, e, $} 25
Contenuti del corso. Parsing: esempio. Cosa aggiungiamo in questo corso. Parsing. Data una grammatica: E T T + E
Continuazione del corso di linguaggi. Nuovi paradigmi di computazione logico: Prolog logic - funzionale: Curry Teoria base dei compilatori parsing grammatiche ad attributi type checking generazione codice
Algebra di Boole Algebra di Boole
1 L algebra dei calcolatori L algebra booleana è un particolare tipo di algebra in cui le variabili e le funzioni possono solo avere valori 0 e 1. Deriva il suo nome dal matematico inglese George Boole
Trattamento degli errori
Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2011-2012 Linguaggi Formali e Compilatori Trattamento degli errori Giacomo PISCITELLI Trattamento degli errori Comunemente gli errori di programmazione
Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
2. Sintassi e Semantica
2. Sintassi e Semantica Un linguaggio di programmazione è un linguaggio formale dotato di una sintassi e una semantica ben definita. Per linguaggio formale si intende un insieme di stringhe di lunghezza
Linguaggi e tecnologie per il Web
Sapienza Università di Roma Corso di Laurea in Ingegneria Informatica e Automatica Linguaggi e tecnologie per il Web a.a. 2015/2016 Riccardo Rosati Dipartimento di ingegneria informatica, automatica e
Come funziona il linguaggio COME FUNZIONA IL LINGUAGGIO
Come funziona il linguaggio COME FUZIOA IL LIGUAGGIO SITASSI Il cervello di ogni persona contiene un dizionario di parole e dei concetti che esse rappresentano (dizionario mentale) e un insieme di regole
Programmazione Dichiarativa. Programmazione Logica. SICStus PROLOG PROLOG. http://www.sics.se/sicstus/ Bob Kowalski: "Algoritmo = Logica + Controllo"
Programmazione Logica Bob Kowalski: "Algoritmo = Logica + Controllo" nella programmazione tradizionale: il programmatore deve occuparsi di entrambi gli aspetti nella programmazione dichiarativa: il programmatore
Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
Il calcolatore. Architettura di un calcolatore (Hardware)
Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti
Analizzatore lessicale o scanner
Analizzatore lessicale o scanner Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner, attraverso un esame carattere per carattere dell'ingresso,
ESERCIZI IN PIÙ I NUMERI COMPLESSI
ESERCIZI IN PIÙ I NUMERI COMPLESSI L equazione x x 0 non ha soluzioni nell insieme dei numeri reali; infatti, applicando la formula ridotta, si ottiene x, 3. Interpretando come numero immaginario, cioè
VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
Modulo 2 Data Base - Modello Relazionale
Modulo 2 Data Base - Modello Relazionale Università degli Studi di Salerno Corso di Laurea in Scienze della comunicazione Informatica generale Docente: Angela Peduto A.A. 2004/2005 Modello Relazionale
Riconoscere e formalizzare le dipendenze funzionali
Riconoscere e formalizzare le dipendenze funzionali Giorgio Ghelli 25 ottobre 2007 1 Riconoscere e formalizzare le dipendenze funzionali Non sempre è facile indiduare le dipendenze funzionali espresse
La codifica. dell informazione
La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero
Prof.ssa Laura Pagnozzi Prof. Ivano Coccorullo. Calcolo Combinatorio
Prof.ssa Laura Pagnozzi Prof. Ivano Coccorullo Calcolo Combinatorio Calcolo Combinatorio ü Molti dei problemi classici di calcolo delle probabilità si riducono al calcolo dei casi favorevoli e di quelli
Linguaggi formali e compilazione
Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2015/2016 Linguaggi formali e compilazione Elementi generali Un parser generico di tipo procede operando una sequenza di riduzioni a
Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa
Le aree dell informatica
Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Le aree dell informatica Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
Dispensa 3. 1.1 YACC: generalità
Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un
Procedura operativa per la gestione della funzione di formazione classi prime
Procedura operativa per la gestione della funzione di formazione classi prime Questa funzione viene fornita allo scopo di effettuare la formazione delle classi prime nel rispetto dei parametri indicati
7. OSSA. Alessio Maculani
7. OSSA ossa è il modulo software realizzato in questo stage di laurea. Esso aggiunge all applicazione composta da MadCow, VisualOntoGraph e FormalAnnotation, gli strumenti necessari all utente annotatore
Analisi. Calcolo Combinatorio. Ing. Ivano Coccorullo
Analisi Ing. Ivano Coccorullo Prof. Ivano Coccorullo ü Molti dei problemi classici di calcolo delle probabilità si riducono al calcolo dei casi favorevoli e di quelli possibili. Quando le situazioni diventano
Introduzione a Visual Basic Lezione 2 Cicli e anomalie
a Visual Basic Lezione 2 Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Perché i cicli? Un esempio concreto Finora abbiamo visto
Fondamenti di Programmazione
Fondamenti di Programmazione (con linguaggio di riferimento C++) Gianfranco Rossi Università di Parma Dip. di Matematica e Informatica 43100 Parma (Italy) [email protected] Indice 1 Introduzione
4 GLI ARRAY E LE STRINGHE
13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si
Esercizi sulla conversione tra unità di misura
Esercizi sulla conversione tra unità di misura Autore: Enrico Campanelli Prima stesura: Settembre 2013 Ultima revisione: Settembre 2013 Per segnalare errori o per osservazioni e suggerimenti di qualsiasi
Programmazione Ricorsione
Programmazione Ricorsione Samuel Rota Bulò DAIS Università Ca Foscari di Venezia. Outline Ricorsione Cos è la ricorsione? In matematica... n! = { n (n 1)! se n > 0 1 altrimenti N = {0} {i + 1 : i N} Principio
Esercitazione n o 3 per il corso di Ricerca Operativa
Esercitazione n o 3 per il corso di Ricerca Operativa Ultimo aggiornamento October 17, 2011 Fornitura acqua Una città deve essere rifornita, ogni giorno, con 500 000 litri di acqua. Si richiede che l acqua
Sistemi Web per il turismo - lezione 3 -
Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa
Lezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15
Ingegneria del Software 9. Macchine a stati Dipartimento di Informatica Università di Pisa A.A. 2014/15 so far Modello del dominio Modello statico: diagrammi delle classi Modello dinamico : diagrammi di
INTRODUZIONE ALLE BASI DATI RELAZIONALI
INTRODUZIONE ALLE BASI DATI RELAZIONALI RELAZIONI E TABELLE Nelle BASI DI DATI RELAZIONALI le informazioni sono organizzate in TABELLE; Le tabelle sono rappresentate mediante griglie suddivise in RIGHE
COMPILAZIONE. Tarsformazione di linguaggi
COMPILAZIONE Tarsformazione di linguaggi Le fasi della compilazione File sorgente Compilazione File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Libreria di run-time File
Ingegneria del Software
Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi
CAPITOLO V. DATABASE: Il modello relazionale
CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono
SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n
SPAZI E SOTTOSPAZI 1 SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n Spazi di matrici. Spazi di polinomi. Generatori, dipendenza e indipendenza lineare, basi e dimensione. Intersezione e somma di sottospazi,
1.2 MONOMI E OPERAZIONI CON I MONOMI
Matematica C Algebra. Le basi del calcolo letterale. Monomi e operazioni con i monomi. MONOMI E OPERAZIONI CON I MONOMI... L insieme dei monomi D ora in poi quando scriveremo un espressione letterale in
PowerDIP Software gestione presenze del personale aziendale. - Guida all inserimento e gestione dei turni di lavoro -
PowerDIP Software gestione presenze del personale aziendale - Guida all inserimento e gestione dei turni di lavoro - Informazioni preliminari. E necessario innanzitutto scaricare e installare l ultima
Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.
Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l
Linguaggi e Traduttori: Introduzione al corso
Linguaggi e Traduttori: Introduzione al corso Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di
La disposizione estetica della lettera commerciale
La disposizione estetica della lettera commerciale Gli elementi costitutivi della lettera commerciale vengono disposti sul foglio secondo stili diversi: ogni a- zienda, infatti, caratterizza la sua immagine
INDICAZIONI PER LA RICERCA DEGLI ASINTOTI VERTICALI
2.13 ASINTOTI 44 Un "asintoto", per una funzione y = f( ), è una retta alla quale il grafico della funzione "si avvicina indefinitamente", "si avvicina di tanto quanto noi vogliamo", nel senso precisato
I database. Introduzione alla teoria delle basi di dati
I database Introduzione alla teoria delle basi di dati 1 Cosa sono e a cosa servono i Database Un database (o base di dati) e' una raccolta organizzata di dati correlati. Il principale scopo di un database
Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi
Somma di numeri floating point Algoritmi di moltiplicazione e divisione per numeri interi Standard IEEE754 " Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.0 10 2-38
Italiano Tecnico 2007-2008. La relazione di lavoro
Italiano Tecnico 2007-2008 La relazione di lavoro La relazione Si tratta di un testo che deve tracciare il bilancio di un esperienza o il resoconto di una ricerca. Nella relazione prevale la componente
FONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia [email protected] A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita
UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m
Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.
PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,
LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI BASSO LIVELLO
LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI BASSO LIVELLO Linguaggio macchina Uno per ogni processore o famiglia di processori Linguaggio assembler Versione simbolica di quello macchina. LINGUAGGI DI ALTO
Lezione 3 Progettazione di siti
Lezione 3 Progettazione di siti Ingegneria dei Processi Aziendali Modulo 1 Servizi Web Unità didattica 1 Protocolli Web Ernesto Damiani Università di Milano Elementi base della progettazione di servizi
0.1 Esercizi calcolo combinatorio
0.1 Esercizi calcolo combinatorio Esercizio 1. Sia T l insieme dei primi 100 numeri naturali. Calcolare: 1. Il numero di sottoinsiemi A di T che contengono esattamente 8 pari.. Il numero di coppie (A,
Gestione delle eccezioni in Java
Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1 Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel
Normalizzazione. Definizione
Normalizzazione Definizione Le forme normali 2 Una forma normale è una proprietà di una base di dati relazionale che ne garantisce la qualità, cioè l'assenza di determinati difetti Quando una relazione
Sul pattern Decorator
Sul pattern Decorator 1 Introduzione Consideriamo una famosa panineria fa tre tipi di panini: al prosciutto crudo, al prosciutto cotto, al tonno. A ciascuno di questi tre tipi corrisponde un costo. Figura
Cos è un Calcolatore?
Cos è un Calcolatore? Definizione A computer is a machine that manipulates data according to a (well-ordered) collection of instructions. 24/105 Riassumendo... Un problema è una qualsiasi situazione per
7 Disegni sperimentali ad un solo fattore. Giulio Vidotto Raffaele Cioffi
7 Disegni sperimentali ad un solo fattore Giulio Vidotto Raffaele Cioffi Indice: 7.1 Veri esperimenti 7.2 Fattori livelli condizioni e trattamenti 7.3 Alcuni disegni sperimentali da evitare 7.4 Elementi
Le sue caratteristiche:
I Virus Un virus, in informatica, è un software, appartenente alla categoria dei malware, che è in grado, una volta eseguito, di infettare dei file in modo da riprodursi facendo copie di se stesso, generalmente
Metodi per la risoluzione di sistemi lineari
Metodi per la risoluzione di sistemi lineari Sistemi di equazioni lineari. Rango di matrici Come è noto (vedi [] sez.0.8), ad ogni matrice quadrata A è associato un numero reale det(a) detto determinante
RELAZIONI BINARIE. Proprietà delle relazioni Data una relazione R, definita in un insieme non vuoto U, si hanno le seguenti proprietà :
RELAZIONI INARIE Dati due insiemi non vuoti, A detto dominio e detto codominio, eventualmente coincidenti, si chiama relazione binaria (o corrispondenza) di A in, e si indica con f : A, (oppure R ) una
Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F
Macchina di Turing Nastro di Input...!!! a b b! b a! testina!!... s r s t q i Unità di Controllo q j Q S / D / F P Definizione Formale Una macchina di Turing deterministica è una sestupla
Gli algoritmi: definizioni e proprietà
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da
Principi e Metodologie della Progettazione Meccanica
Principi e Metodologie della Progettazione Meccanica ing. F. Campana a.a. 06-07 Lezione 11: CAE e Ottimizzazione Strutturale Il ruolo dell ottimizzazione nell ambito della progettazione meccanica Durante
Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani ([email protected])
Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica
Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica Soluzione del compito di Matematica Discreta 1 del 25 luglio 200 1. Qual è il numero di applicazioni f : A = {1,..., 5} B
Applicazioni lineari e diagonalizzazione. Esercizi svolti
. Applicazioni lineari Esercizi svolti. Si consideri l applicazione f : K -> K definita da f(x,y) = x + y e si stabilisca se è lineare. Non è lineare. Possibile verifica: f(,) = 4; f(,4) = 6; quindi f(,4)
Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1
Corso di INFORMATICA Laurea triennale - Comunicazione&DAMS Dr. Marco Manna 1 1 Dipartimento di Matematica Università della Calabria Corso di laurea intercalsse in COMUNICAZIONE&DAMS http://elleboro.unical.it/drupalab/informatica2009/
WINDOWS95. 1. Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni
WINDOWS95 1. Avviare Windows95 Avviare Windows95 non è un problema: parte automaticamente all accensione del computer. 2. Barra delle applicazioni 1 La barra delle applicazioni permette di richiamare le
Progettazione logica
Progettazione logica Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E- R in modo corretto ed efficiente. Richiede
Internet (- working). Le basi.
Internet (- working). Le basi. 1 GABRIELLA PAOLINI (GARR) 18 OTTOBRE 2011 Capire come funziona Internet 2 FACCIAMO UN PASSO INDIETRO Internet È un insieme di reti interconnesse fra di loro su tutto il
Steel&Graphics srl Via Cà Nova Zampieri 4/E 37057 San Giovanni Lupatoto VR Tel. 045/8778577 Fax. 045/8778576 Email: info@steel-graphics.
Steel&Graphics srl Via Cà Nova Zampieri 4/E 37057 San Giovanni Lupatoto VR Tel. 045/8778577 Fax. 045/8778576 Email: [email protected] TecnoMETAL BIM 2012 rappresenta la soluzione per la progettazione
EQUAZIONI DI PRIMO GRADO
Cognome... Nome... Equazioni di primo grado EQUAZIONI DI PRIMO GRADO Un'equazione di primo grado e un'uguaglianza tra due espressioni algebriche di primo grado, vera solo per alcuni valori che si attribuiscono
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo
Ministero della Salute
Ministero della Salute DIREZIONE GENERALE DELLA PROGRAMMAZIONE SANITARIA UFFICIO V FAQ ANAGRAFE FONDI SANITARI DOCUMENTI, DATI E INFORMAZIONI DA INSERIRE NEL SIAF 1. Quando si richiede il profilo per accedere
E una notazione per descrivere gli algoritmi.
Linguaggio di Programmazione E una notazione per descrivere gli algoritmi. Programma:: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni linguaggio
Topologie delle reti di telecomunicazione
Topologie delle reti di telecomunicazione Gruppo Reti TLC [email protected] http://www.telematica.polito.it/ INTRODUZIONE ALLE RETI TELEMATICHE - 1 Rete di telecomunicazione Definizione: un insieme
Sistemi di equazioni lineari
Sistemi di equazioni lineari I sistemi di equazioni si incontrano in natura in molti problemi di vita reale. Per esempio, prendiamo in considerazione una bevanda a base di uova, latte e succo d arancia.
Introduzione alle macchine a stati (non definitivo)
Introduzione alle macchine a stati (non definitivo) - Introduzione Il modo migliore per affrontare un problema di automazione industriale (anche non particolarmente complesso) consiste nel dividerlo in
Occupazione e disoccupazione
Lezione 20 1 Occupazione e disoccupazione L occupazione ha una fortissima importanza sociale, e pone molti problemi di rilevazione. In questa lezione vediamo come la definizione di occupazione fa emergere
Lezione 6 Le pile. Informatica. 28 Aprile 2016
Lezione 6 Le pile Informatica 28 Aprile 2016 Il porto di Anversa Il terminal del porto merci di Anversa usa delle gru a cavaliere per movimentare i container: I container arrivano per nave e vengono messi
TEORIA RELAZIONALE: INTRODUZIONE
TEORIA RELAZIONALE: INTRODUZIONE Tre metodi per produrre uno schema relazionale: a) Partire da un buon schema a oggetti e tradurlo b) Costruire direttamente le relazioni e poi correggere quelle che presentano
Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari
Lezione 4 L artimetica binaria: I numeri relativi e frazionari Sommario I numeri relativi I numeri frazionari I numeri in virgola fissa I numeri in virgola mobile 1 Cosa sono inumeri relativi? I numeri
IL TIME MANAGEMENT: ORGANIZZARE IL TEMPO E GOVERNARLO
Idee e metodologie per la direzione d impresa Giugno - Luglio 2003 Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. : ORGANIZZARE
ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.
ACCESS Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. Database Relazionale: tipo di database attualmente più diffuso grazie alla
Teoria della Progettazione delle Basi di Dati Relazionali
Teoria della Progettazione delle Basi di Dati Relazionali Complementi di Basi di Dati 1 Teoria della Progettazione delle Basi di Dati Relazionali Angelo Montanari Dipartimento di Matematica e Informatica
Interpretazione astratta
Interpretazione astratta By Giulia Costantini (819048) e Giuseppe Maggiore (819050) Contents Interpretazione astratta... 2 Idea generale... 2 Esempio di semantica... 2 Semantica concreta... 2 Semantica
LA PREDISPOSIZIONE DELLA NOTA INTEGRATIVA
LA PREDISPOSIZIONE DELLA NOTA INTEGRATIVA PREMESSA Con il software Blustring, è possibile predisporre un fascicolo di bilancio completo di stato patrimoniale, conto economico, nota integrativa, analisi
BILANCIO DEI VINCOLI ED ANALISI CINEMATICA
BILANCIO DEI VINCOLI ED ANALISI CINEMATICA ESERCIZIO 1 Data la struttura piana rappresentata in Figura 1, sono richieste: - la classificazione della struttura in base alla condizione di vincolo; - la classificazione
* in giallo le modifiche apportate rispetto alla versione precedente datata 17/04/2012
Nota Salvatempo Contabilità 22 MAGGIO 2012 * in giallo le modifiche apportate rispetto alla versione precedente datata 17/04/2012 Nuova modalità di esportazione dei dati dalla Contabilità all Unico Persone
Esercizi svolti sui sistemi lineari
Francesco Daddi - www.webalice.it/francesco.daddi Esercizi svolti sui sistemi lineari Esercizio 1. Risolvere il seguente sistema lineare al variare del parametro reale t: tx+(t 1)y + z =1 (t 1)y + tz =1
Progetto Automi e Linguaggi Parser svliluppato con JLex e cup
Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la
Il linguaggio SQL: query innestate
Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento
