Grammatiche. Rosario Culmone, Luca Tesei. 20/11/2006 UNICAM - p. 1/49
|
|
- Michela Gattini
- 6 anni fa
- Visualizzazioni
Transcript
1 Grammatiche Rosario Culmone, Luca Tesei 20/11/2006 UNICAM - p. 1/49
2 Grammatiche libere dal contesto Ogni linguaggio di programmazione ha delle regole che prescrivono la struttura sintattica dei programmi ben formati del linguaggio. Ad esempio in Java un programma corretto è formato da blocchi, i blocchi sono formati da statements, gli statements da espressioni, le espressioni dai token e così via. La sintassi dei linguaggi di programmazione è descretta mediante grammatiche libere dal contesto (context-free grammars). Il formalismo che spesso viene utilizzato va sotto il nome di notazione BNF (Backus-Naur Form). 20/11/2006 UNICAM - p. 2/49
3 Vantaggi Le grammatiche offrono vantaggi significativi sia ai progettisti dei linguaggi di programmazione che ai loro implementatori. Vediamo i principali: Descrizione sintattica precisa, facile da capire per un linguaggio di programmazione. Per alcune classi di grammatiche si possono automaticamente costruire degli analizzatori efficienti che determinano se un certo programma sorgente è sintatticamente ben formato. Con strumenti automatici è possibile trovare anomalie nella definizione delle grammatiche. Gli strumenti per il riconoscimento producono anche le strutture che possono venir utilizzati nella fase di traduzione o interpretazione del programma. Aggiungere nuovi costrutti a un linguaggio descritto tramite grammatica permette una facile evoluzione. 20/11/2006 UNICAM - p. 3/49
4 Grammatica libera dal contesto Una Grammatica libera dal contesto è una tupla G = Σ, V, S, P dove: Σ è un insieme finito dei simboli di alfabeto o Simboli Terminali V è un insieme finito di simboli che rappresentano Categorie Sintattiche o simboli non terminali S V è un simbolo di categoria sintattica indicato come iniziale o principale P è un insieme finito di regole, chiamate Produzioni, della forma A X 1 X 2 X k 20/11/2006 UNICAM - p. 4/49
5 Grammatica libera dal contesto A V è la testa o parte sinistra della produzione i {1,...,k}. X i (V Σ). La stringa X 1 X 2 X k (V Σ) si chiama corpo o parte destra della produzione. Il corpo di una produzione può anche essere vuoto. In questo caso la produzione viene scritta A ǫ. Nella notazione BNF ::= è usato a posto della freccia. 20/11/2006 UNICAM - p. 5/49
6 Scopo Il compito principale di una grammatica è permettere di generare stringhe di simboli terminali. Il processo di generazione delle stringhe può avvenire tramite costruzione di alberi di derivazione o, equivalentemente, derivazioni. 20/11/2006 UNICAM - p. 6/49
7 Simboli terminali I seguenti simboli indicano simboli terminali della grammatica: Lettere minuscole all inizio dell alfabeto: a, b, c,..., a, a,...,a 1, a 2,... Simboli di operatori: +,,,... Simboli di punteggiatura come virgole, punti e virgola, due punti, punti,... Le cifre 0,1,...,9. Stringhe in grassetto come id o if. 20/11/2006 UNICAM - p. 7/49
8 Simboli non terminali I seguenti simboli indicano simboli non terminali della grammatica: Lettere maiuscole all inizio dell alfabeto: A, B, C,..., A, A,...,A 1, A 2,... La lettera S che in genere indica il simbolo iniziale della grammatica (a meno che non sia specificato diversamente) Stringhe in minuscolo e in corsivo come ad esempio expr o stmt. Stringhe qualsiasi tra < e > come ad esempio < OP > oppure < AB >. 20/11/2006 UNICAM - p. 8/49
9 Convenzioni Le lettere maiuscole alla fine dell alfabeto: X, Y, Z,..., X, X,...,X 1, X 2,... rappresentano un simbolo terminale o non terminale, cioè simboli nell insieme Σ V. Le lettere minuscole alla fine dell alfabeto: u, v, w, x, y, z,..., u, x,...,x 1, v 2,... rappresentano stringhe di soli simboli terminali (anche vuote), cioè elementi di Σ. 20/11/2006 UNICAM - p. 9/49
10 Convenzioni Le lettere minuscole dell alfabeto greco: α, β, δ, γ,..., α, α,...,β 1, γ 2,... rappresentano stringhe, anche vuote, formate da simboli terminali o non terminali, cioè elementi di (V Σ). Tramite le convenzioni viste fino ad ora, vediamo che una generica produzione della grammatica può essere indicata con A α. Se A α 1, A α 2,...,A α k sono tutte le produzioni con lo stesso simbolo a sinistra A (le chiamiamo A-produzioni), allora possiamo scrivere equivalentemente A α 1 α 2 α k. Le α i, i = 1, 2,...,k sono chiamate alternative per A. A meno che non si specifichi diversamente, assumeremo che la parte sinistra della prima produzione data per una grammatica sia il simbolo iniziale. 20/11/2006 UNICAM - p. 10/49
11 Alberi di produzione Sia G = Σ, V, S, P una grammatica libera dal contesto. Un albero di derivazione di G è un albero in cui i nodi sono etichettati con i simboli della grammatica Σ V e sono rispettate le seguenti proprietà: La radice dell albero è etichettata con il simbolo iniziale S Ogni foglia dell albero è etichettata con un simbolo terminale Ogni nodo interno dell albero è etichettato con un simbolo non terminale A i cui figli, presi da sinistra a destra, sono etichettati con i simboli X 1 X 2 X n della parte destra di una qualche produzione A X 1 X 2 X n in P. 20/11/2006 UNICAM - p. 11/49
12 Esempio Consideriamo la seguente grammatica: E E + E E E (E) E id I simboli terminali sono (, ), +,,,id. L unico simbolo non terminale è E che è anche simbolo iniziale. L albero di derivazione per id + id id è il seguente: E E + E id E id * E id 20/11/2006 UNICAM - p. 12/49
13 Alberi di derivazione Tramite gli alberi di derivazione e la nozione di stringa associata possiamo definire precisamente cosa si intende per linguaggio generato da una grammatica. Sia G = Σ, V, S, P una grammatica libera dal contesto. Il linguaggio generato da G è indicato con L(G) ed è l insieme delle stringhe di w Σ tali che esiste un albero di derivazione di G la cui stringa associata è w 20/11/2006 UNICAM - p. 13/49
14 Passo di derivazione Sia G = Σ, V, S, P una grammatica libera dal contesto e sia α una stringa che contiene almeno un simbolo non terminale A. Se A X 1 X 2 X k P, allora possiamo riscrivere: α = δaγ G δx 1 X 2 X k γ Il simbolo G rappresenta un passo di derivazione per la grammatica G. Spesso, se la grammatica che consideriamo è chiara dal contesto, ometteremo il pedice G. 20/11/2006 UNICAM - p. 14/49
15 Derivazione Sia G = Σ, V, S, P una grammatica libera dal contesto. Una derivazione di una stringa w Σ a partire da S è una sequenza: S = α 0 G α 1 G α 2 G α n = w dove, per ogni i {0, 1,...,n 1}, α i G α i+1 è un passo di derivazione che riscrive un qualche simbolo non terminale di α i. 20/11/2006 UNICAM - p. 15/49
16 Derivazione Si noti che se i < n allora α i (Σ V ). Una stringa di questo tipo, generata cioè con un certo numero di passi di derivazione a partire dal simbolo iniziale, viene chiamata forma sentenziale. Una derivazione lunga 0 passi è la sequenza composta solo dal simbolo S. Per indicare una derivazione di zero o più passi da S ad una certa stringa α scriviamo S G α, mentre S + G α indica una derivazione lunga almeno 1 passo da S a α 20/11/2006 UNICAM - p. 16/49
17 Linguaggio generato mediante derivazione Possiamo definire il linguaggio generato dalla grammatica anche con la nozione di derivazione dicendo che L(G) = {w Σ S G w}. Questa definizione è equivalente a quella data usando gli alberi di derivazione, nel senso che l insieme di stringhe definito con le derivazioni è lo stesso di quello definito con gli alberi di derivazione. Per convincersi di questo basta notare che la costruzione di una derivazione induce in maniera naturale la costruzione di un albero di derivazione. 20/11/2006 UNICAM - p. 17/49
18 Esempio di derivazione Prendiamo ad esempio una derivazione per la stringa (id + id) con la grammatica dell esempio precedente: E E (E) (E + E) (id + E) (id + id) Ogni passo di derivazione si riflette nel corrispondente albero di derivazione 20/11/2006 UNICAM - p. 18/49
19 Esempio di derivazione E E - E E - E ( E ) E E E - E - E - E ( E ) ( E ) ( E ) E + E E + E E + E id id id 20/11/2006 UNICAM - p. 19/49
20 Scelte Si noti che, durante la derivazione di una stringa dal simbolo iniziale della grammatica, ad ogni passo occorre fare due scelte. Supponiamo di avere una forma sentenziale β (cioè S β) che non sia una stringa di soli terminali. In generale, per fare un passo di derivazione β β, bisogna: 1. Individuare un simbolo non terminale in β che sarà il candidato per la riscrittura: β = αaγ 2. Scegliere una produzione A δ, fra le eventuali possibili scelte per A, con la quale effettuare la riscrittura β = αaγ αδγ 20/11/2006 UNICAM - p. 20/49
21 Derivazione Leftmost Ad ogni passo si riscrive il simbolo non terminale A di una forma sentenziale β che sta più a sinistra: β = xaα (ricordiamo che per x si intende una stringa di soli simboli terminali). Le forme sentenziali che si trovano lungo una derivazione leftmost si chiamano forme sentenziali sinistre. Per indicare che ad un passo di derivazione si è applicata la regola leftmost utilizziamo la notazione xaα lm xδα a In caso di più passi di derivazione leftmost usiamo lm ( + lm ) per zero o più passi (per uno o più passi). Si noti che una derivazione è leftmost se e solo se tutti i passi di cui è composta sono leftmost. a Omettiamo il simbolo G che indica la grammatica che stiamo usando. In questi casi sarà opportuno sincerarsi che la grammatica G in questione sia chiaramente specificata nel contesto. 20/11/2006 UNICAM - p. 21/49
22 Derivazione Rightmost Ad ogni passo riscriviamo il simbolo non terminale più a destra. Le forme sentenziali sono dette forme sentenziali destre e la notazione usata è rm con le stesse estensioni viste nel caso leftmost: S rm αax rm αδx. 20/11/2006 UNICAM - p. 22/49
23 Ambiguità Una grammatica libera dal contesto G si dice ambigua se e solo se esiste una stringa w L(G) tale che esistono due alberi di derivazione T e T di G con le seguenti proprietà: T e T sono diversi T e T hanno w come stringa associata Di converso, G non è ambigua se per ogni stringa w L(G) esiste uno ed un solo albero di derivazione di G che ha w come stringa associata. 20/11/2006 UNICAM - p. 23/49
24 Esempio di ambiguità Consideriamo la seguente grammatica: E E + E E E (E) id Questa grammatica è ambigua poichè per la stringa id + id id esistono i due alberi di derivazione. Equivalentemente esistono due derivazioni leftmost. 20/11/2006 UNICAM - p. 24/49
25 Esempio di ambiguità Le due derivazioni leftmost per la stringa id + id id: E lm E + E lm id + E lm id + E E lm id + id E lm id + id id E lm E E lm E + E E lm id + E E lm id + id E lm id + id id E E E + E E * E id E * E E + E id id id id id 20/11/2006 UNICAM - p. 25/49
26 Disambiguare La disambiguazione di una grammatica consiste nella riscrittura delle sue produzioni (anche introducendo o togliendo simboli non terminali) in modo tale da lasciare inalterato il linguaggio generato e da avere un solo albero di derivazione per tutte le stringhe, anche quelle per le quali esistevano più alberi di derivazione associati nella grammatica di partenza. 20/11/2006 UNICAM - p. 26/49
27 Un costrutto ambiguo Consideriamo il costrutto if-then-else stmt if expr then stmt if expr then stmt else stmt altri_comandi E possibile ottenere la stessa frase con applicazione diversa della stessa produzione: oppure stmt if expr then stmt if expr then if expr then stmt else stmt stmt if expr then stmt else stmt if expr then if expr then stmt else stmt 20/11/2006 UNICAM - p. 27/49
28 Alberi di derivazione stmt if expr then stmt E 1 if expr then stmt else stmt E 2 C 1 C 1 stmt if expr then stnt else stnt E 1 if expr then stmt C 2 E 2 C 1 20/11/2006 UNICAM - p. 28/49
29 match stmt matched_stmt unmatched_stmt matched_stmt if expr then matched_stmt else matched_stmt non_cond unmatched_stmt if expr then stmt if expr then matched_stmt else unmatched_stmt 20/11/2006 UNICAM - p. 29/49
30 Albero di derivazione stmt unmatched_stmt if expr then stmt E 1 matched_stmt if expr then matched_stmt else matced_stmt E 2 non_cond non_cond C 1 C 2 20/11/2006 UNICAM - p. 30/49
31 Associatività Talvolta se adeguatamente progettata la sintassi può agevolare la fase di analisi semantica. Per spiegare meglio questo caso si consideri gli operatori artimetici +,,, /. In una espressione aritmetica, ad esempio a + b c d/e l ordine di valutazione è: a + b c d / e L ordine di valutazione può essere alterato mediante l uso delle parentesi. Ad esempio: ( a + b ) c d / e /11/2006 UNICAM - p. 31/49
32 Precedenza degli operatori Si possono definire i seguenti livelli di precedenza fra gli operatori aritmetici: 1. Termini (simbolo T), cioè gli operandi. Hanno il maggiore livello di precedenza per definizione. Nei termini sono comprese le parentesi che sono le prime ad essere valutate. 2. Fattori (simbolo F), cioè applicazione di o /. Hanno la stessa precedenza, inferiore a quella dei termini. L associatività è a sinistra (come è di solito nei linguaggi) 3. Espressioni (simbolo E), cioè applicazione di + e. Hanno la precedenza più bassa di tutti. L associatività è a sinistra. 20/11/2006 UNICAM - p. 32/49
33 Sintassi delle espressioni aritmetiche Tenendo conto delle precedenze possiamo definire la seguente sintassi. Come si può notare a priorità maggiore corrisponde non terminali prossimi a terminali. E F E+F E-F F T F *T F /T T V C (E) Definizione di Espressione aritmetica Definizione di Fattore Definizione di Termine dove V è la classe sintattica delle variabili e C la classe sintattica delle costanti. 20/11/2006 UNICAM - p. 33/49
34 Esempio di espressione aritmetica 1 L espressione aritmetica 3 + x ha associato l albero di derivazione: E E F T + F T V C 20/11/2006 UNICAM - p. 34/49
35 Esempio di espressione aritmetica 2 L espressione aritmetica 3 + x 2 ha associato l albero di derivazione: E E + F F T C F T V * T C 20/11/2006 UNICAM - p. 35/49
36 Esempio di espressione aritmetica 3 L espressione aritmetica (3 + x) 2 ha associato l albero di derivazione: E F F T ( E * T ) C E F T + F T V C 20/11/2006 UNICAM - p. 36/49
37 Fase di valutazione delle espressioni La tecnica per associare la valutazione delle espressioni aritmetiche ricalca l applicazione delle produzioni che sono servite per generare l espressione ma in ordine inverso. Ovvero con la sintassi sotto mano si cerca di ridurre sino a quando gli operatori sono pieni quindi si effettua l operazione vera e propria. 20/11/2006 UNICAM - p. 37/49
38 Scrittura di grammatiche Assenza di ricorsione S aa bb A ab c B ba c Il linguaggio generato è {aab, ac, bba, bc} Ricorsione diretta S aa bb A aa c B ba c Il linguaggio generato è {bba, bc} {a n c n > 0}. 20/11/2006 UNICAM - p. 38/49
39 Ricorsione destra, sinistra e mutua Ricorsione destra Il linguaggio generato è {a n b n 0} Ricorsione sinistra Il linguaggio generato è {ba n n 0} Mutua ricorsione S as b S Sa b A 1B a B 0A b Il linguaggio generato è {a, 1b, 10a, 101b, 1010a,... } 20/11/2006 UNICAM - p. 39/49
40 xy n z Produzioni del tipo xy n z dove n può essere positivo o anche zero e x e z sono delle stringhe prefisso e suffisso: Linguaggio Vincoli Grammatica {c, bc, bbc,... } n 0, x = ǫ, z = c S bs c {bc, bbc,... } n > 0, x = ǫ, z = c S bs bc {ab, abb,... } n > 0, x = a, z = ǫ (ricorsione sinistra) S Sb ab (ricorsione destra) S aa, A ba b {a, ab, abb,... } n 0, x = a, z = ǫ S aa, A ba ǫ {ac, abc, abbc,... } n 0, x = a, z = c S aa, A ba c {ac, abc, abbc,... } n > 0, x = a, z = c S aa, A ba bc 20/11/2006 UNICAM - p. 40/49
41 a n b n Linguaggi con espansione centrale simmetrica S asb ab che genera il linguaggio {a n b n n > 0}. Se si vuole generare il linguaggio: {a 2n bb c n n 0} la produzione può essere: S aasc bb 20/11/2006 UNICAM - p. 41/49
42 Ricorsione composta Si possono comporre i diversi tipi di ricorsione: centrale e destra per ottenere linguaggi "complessi". Ad esempio se si vuole il linguaggio: {a n c b m dd b n n, m 0} si può ottenere con: S B asb cb bb dd Se si vuole ottenere il linguaggio {a n c b m dd b n n, m > 0} si deve forzare la condizione terminale congruente ovvero: S B asb acbb bb bdd 20/11/2006 UNICAM - p. 42/49
43 Linguaggio complesso Definiamo la grammatica per il seguente linguaggio: L = {a n b c m d a m n 0, m > 0} {b k a 2n k, n 0} Caratteristiche salienti unione di due linguaggi, nel primo linguaggio si individua una ricorsione destra con suffisso (a n b) seguita da una ricorsione centrale (c m da m ) nel secondo linguaggio è la giustapposizione di due ricorsioni destre: S A BC A aa bcda D cda d B bb ǫ C aac ǫ 20/11/2006 UNICAM - p. 43/49
44 BNF BNF è l acronimo di " Backus Naur Form" dagli autori John Backus e Peter Naur che la indrodussero per la prima volta per descrivere la sintassi del linguaggio ALGOL 60 (nonno del Pascal). Il formalismo BNF è un meta-linguaggio per descrivere linguaggi. I Simboli del meta-linguaggio sono: ::= significa "è definito come" significa "o" < > indicano simboli non terminali Alcuni hanno esteso il linguaggio con: [ ] quello incluso tra parentesi è opzionale { } quello racchiuso tra parentesi è ripetuto 0 o più volte " " quello tra doppi apici è un simbolo terminale xxx i simboli terminali sono in grassetto 20/11/2006 UNICAM - p. 44/49
45 Esempio BNF Il formato BNF può essere applicato non solo alla specifica della sintassi di un linguaggio di programmazione ma anche a: <indirizzo postale> ::= <destinatario> <indirizzo> <località> <destinatario> ::= [<titolo>] [<nome> <iniziale>] <cognome> <a_capo> <indirizzo> ::= <via> <numero civico> <a_capo> <località> ::= [<CAP>] <comune> <provincia> <CAP> ::= <cifra><cifra><cifra><cifra><cifra> <cifra> ::= Produce cose del tipo: Dr Paolo Rossi via della Pace 32 Camerino MC 20/11/2006 UNICAM - p. 45/49
46 Grafo sintattico In BNF si ha: program ::= begin <statement> end statement ::= <statement> ";" <statement>... Una rappresentazione grafica quivalente è: program begin statement end ; 20/11/2006 UNICAM - p. 46/49
47 Espressioni regolari Sia Σ E = {,, (, )} e Σ è una qualsiasi insime finito di simboli. Se Σ s = Σ E Σ definire la grammatica libera che denotta le espressioni regolari su alfabeto Σ. E E * EE (E) E E T ǫ T s 1 s 2... s n s i Σ 20/11/2006 UNICAM - p. 47/49
48 Esercizio Si vuole realizzare un linguaggio che descriva un albero genealogico. Un albero genealogico mostra la gerachia degli antenati di una data persona. L albero genealogico può essere su linea paterna o materna se tiene conto solo del padre o solo della madre. Le informazioni per ogni nodo dell albero sono: Nome Cognome (nel caso della madre può essere diverso nella gerarchia) Eventuale e facoltativo cognome da sposata nel caso di madre Figli 20/11/2006 UNICAM - p. 48/49
49 Esercizio Il nodo generico elenca tra parentesi tonde le informazioni su elencate. Una tipica frase di questo linguaggio è la seguente: (Maria Rossi Bianchi (Francesco Bianchi)(Paola Bianchi (Alberto Gialli)(Stefania Gialli))) Ovvero Maria Rossi in Bianchi ha due figli: Francesco Bianchi e Paolo Bianchi. Paolo Bianchi ha due figli: Alberto Gialli e Stefania Gialli. Da notare che il cognome acquisito da Paolo Bianchi e Gialli poichè i figli hanno cognome Gialli anche se non specificato nella madre. L alfabeto del linguaggio è: Σ = {(, )} {InsiemeDeiNomi} {InsiemeDeiCognomi} Nel caso precedente si ha che: Σ = {(, )} {M aria, F rancesco, P aola, Alberto, Stef ania} {Rossi, Bianchi, Gialli} 20/11/2006 UNICAM - p. 49/49
Analisi Sintattica. Maria Rita Di Berardini. Universitá di Camerino Ruolo del parser
Ruolo del parser Analisi 1 1 Dipartimento di Matematica e Informatica Universitá di Camerino mariarita.diberardini@unicam.it Ruolo del parser Ruolo dell analisi sintattica Ruolo del parser Metodologie
DettagliLinguaggi e Traduttori: Analisi sintattica
Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
DettagliGrammatiche e Linguaggi Liberi da Contesto
Grammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi più grandi di linguaggi. I Linguaggi Liberi da Contesto (CFL) sono stati usati
DettagliBackus Naur Form. Paolo Bison. Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova. BNF, Paolo Bison, A.A ,
p.1/19 Backus Naur Form Paolo Bison Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova Linguaggio di programmazione p.2/19 strumento linguistico per scrivere una sequenza di istruzioni (programma)
DettagliGrammatiche libere da contesto. Grammatiche libere da contesto
rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi. Linguaggi Liberi da Contesto (CFL) sono stati usati nello
DettagliProgrammazione II. Lezione 3. Daniele Sgandurra 26/10/2010.
Programmazione II Lezione 3 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 26/10/2010 1/35 Programmazione II Lezione 3 26/10/2010 Sommario 1 2 Semantica 2/35 Programmazione II Lezione 3 26/10/2010 Parte
DettagliFondamenti d Informatica: Grammatiche. Barbara Re, Phd
Fondamenti d Informatica: Grammatiche Barbara Re, Phd Grammatiche } Con il termine grammatica s intende } Un formalismo che permette di definire un insieme di stringhe mediante l imposizione di un particolare
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello AN - 1995 Linguaggi di alto livello AN - 1995 Evoluzione dei
DettagliGrammatiche libere da contesto. Grammatiche libere da contesto
rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi Linguaggi Liberi da Contesto (CFL) sono stati usati nello
DettagliLinguaggi e Traduttori: Analisi sintattica
Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
DettagliLinguaggi formali e compilazione
Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2014/2015 Linguaggi formali e compilazione quivalenza di grammatiche In Informatica (e non solo, naturalmente) esistono sempre molti
DettagliSupplemento alle dispense di Sintassi
Supplemento alle dispense di Sintassi Luca Tesei 20 ottobre 2002 1 Formalizzazione Lo scopo di questa sezione è quello di presentare in maniera formale e precisa le nozioni di Automa e di Grammatica Libera
DettagliANALISI SINTATTICA LUCIDI DI F. D'AMORE E A. MARCHETTI SPACCAMELA
ANALISI SINTATTICA LUCIDI DI F. D'AMORE E A. MARCHETTI SPACCAMELA AUTOMI PUSHDOWN input u t w $ v x y z $ pila tabella controllo 2 ARGOMENTI Il compito dell'analisi sintattica Generazione automatica Trattamento
DettagliFondamenti di Informatica. per la Sicurezza. a.a. 2003/04. Grammatiche. Stefano Ferrari
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Grammatiche Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università degli Studi
DettagliGrammatiche libere da contesto. Grammatiche libere da contesto
rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora classi piu grandi di linguaggi. Linguaggi Liberi da Contesto (CFL) sono stati usati nello
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 11 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 06 Aprile 2009 Riassunto delle puntate
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 3 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 09 Marzo 2009 Riassunto delle puntate
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic
DettagliGrammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione
Grammatiche Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Esempio dei numeri interi Si consideri il linguaggio
DettagliLinguaggi di Programmazione Corso C. Parte n.2 Introduzione ai Linguaggi Formali. Nicola Fanizzi
Linguaggi di Programmazione Corso C Parte n.2 Introduzione ai Linguaggi Formali Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Definizioni Preliminari Un
DettagliLINGUAGGI E TRADUTTORI - 20 giugno Prof. S. Crespi Reghizzi. Automi e espressioni regolari (40%)
LINGUAGGI E TRADUTTORI - 20 giugno 2001 - Prof. S. Crespi Reghizzi COGNOME e NOME... MATRICOLA... Tempo a disposizione: 90 minuti. Libri e appunti personali possono essere impiegati. Parte I Punti 30-esimi
DettagliGrammatiche context-free
Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Grammatiche context-free Giacomo PISCITELLI Politecnico di Bari G. Piscitelli pag. 1 di 28 Grammatiche
DettagliGrammatiche Parse trees Lezione del 17/10/2012
Fondamenti di Programmazione A.A. 2012-2013 Grammatiche Parse trees Lezione del 17/10/2012 AUTILI MARCO http://www.di.univaq.it/marco.autili/ Riassunto lezione precedente Sintassi vs Semantica Stringhe,
DettagliLinguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto
rammatiche e Linguaggi Liberi da Contesto Data una stringa w L(G), dove G e un CGF, possono esistere diverse derivazioni di w (che tipicamente differiscono per l ordine di applicazione delle produzioni)
DettagliLinguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto
rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora una classe piu ampia di linguaggi, i Linguaggi Liberi da Contesto (CFL) i CFL sono stati
DettagliPROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI PROLOG E ANALISI SINTATTICA DEI LINGUAGGI ESEMPIO
PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli
DettagliBarriera di astrazione. Barriera di astrazione. macchina virtuale. non sono quelle della macchina hardware. Algol. Ada. Lisp. Lisp.
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Cobol Basic Pascal Python Modula-2
DettagliQuiz sui linguaggi CF
Fondamenti dell Informatica 1 semestre Quiz sui linguaggi CF Prof. Giorgio Gambosi a.a. 2018-2019 Problema 1: Si consideri la seguente grammatica context free G, dove S, NP, V P, P P, A sono i simboli
DettagliEspressività e limitazioni delle grammatiche regolari
Espressività e limitazioni delle grammatiche regolari Vantaggi: Le grammatiche regolari consentono di esprimere una significativa classe di linguaggi: linguaggi con un numero di sequenze infinito grazie
DettagliLinguaggi. Che cos è un linguaggio di programmazione? Aspetti da studiare e comprendere per poter scrivere programmi:
Linguaggi Che cos è un linguaggio di programmazione? Aspetti da studiare e comprendere per poter scrivere programmi: Sintassi: forma delle frasi, correttezza sintattica Semantica: significato delle frasi,
DettagliPROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t
PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli
DettagliSintassi. Linguaggi. 4: Sintassi. Claudio Sacerdoti Coen. Universitá di Bologna 24/02/2011. Claudio Sacerdoti Coen
Linguaggi 4: Universitá di Bologna 24/02/2011 Outline 1 Wikipedia: La sintassi è la branca della linguistica che studia i diversi modi in cui le parole si uniscono tra loro per formare
DettagliCorso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis
Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis Capitolo 2 Grammatiche e Linguaggi Si ringraziano il Prof. Giovanni Semeraro e il Dott. Pasquale Lops per la concessione del
DettagliQuiz sui linguaggi CF
Fondamenti dell Informatica 1 semestre Quiz sui linguaggi CF Prof. Giorgio Gambosi a.a. 2014-2015 Problema 1: Si consideri la seguente grammatica context free G, dove S, NP, V P, P P, A sono i simboli
DettagliDescrizione delle operazioni di calcolo. Espressioni costanti semplici
Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette
DettagliL intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.
ANALISI SINTATTICA Data un linguaggio scrivere una grammatica che lo generi ESERCIZIO 1 Definire una grammatica per il linguaggio L = {ww w appartiene a (a, b)*} ESERCIZIO 2 Dato l alfabeto T=[0,1,2,3,4,5,6,7,8,9,/}
DettagliLinguaggio Formale 2
Linguaggio Formale 2 Ex: Per generare il linguaggio L(G 1 ) = {a n b n c n } si può usare la grammatica G 1 = < {A,B,C}, {a,b,c}, P, A > Con regole di produzione P: 1. A abc 2. A abbc 3. Bb bb 4. Bc Cbcc
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 4 Chiara Braghin braghin@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 4 Marzo 2008 Derivazioni canoniche Una derivazione
DettagliLinguaggi di Programmazione dall assembler ai linguaggi di alto livello
Linguaggi di Programmazione dall assembler ai linguaggi di alto livello LINGUAGGIO MACCHINA 0 READ 8 READ 9 LOADA 8 3 LOADB 9 4 MUL 5 STOREA 8 6 WRITE 8 7 HALT 8 DATO INTERO 9 DATO INTERO Rappresentazione
DettagliAutomi e Linguaggi Formali
Automi e Linguaggi Formali Analisi Sintattica A.A. 2014-2015 Alessandro Sperduti sperduti@math.unipd.it Ruolo dell analisi sintattica Un compilatore deve produrre codice oggetto e deve anche controllare
DettagliEspressioni Regolari
Espressioni Regolari Le espressioni regolari sono costituite dalle stringhe sull alfabeto Σ = Σ {+,,*,(,),φ} ottenute secondo le seguenti regole: 1. φ e ciascun membro di Σ sono Epressioni Regolari 2.
DettagliLinguaggi Regolari e Linguaggi Liberi
Linguaggi Regolari e Linguaggi Liberi Potenza espressiva degli automi Potenza espressiva delle grammatiche 9/11/2004 Programmazione - Luca Tesei 1 Linguaggi Regolari Tutti i linguaggi che possono essere
DettagliVerificare se una grammatica e LL(1) e costruirne la tabella di parsing. Verificare se una grammatica e LR(0) e costruirne la tabele ACTION e GOTO
ANALISI SINTATTICA TIPO 1: Data un linguaggio scrivere una grammatica che lo generi TIPO 2: Verificare se una grammatica non contestuale è ambigua TiPO 3: Verificare se una grammatica e LL(1) e costruirne
DettagliLINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C
DettagliDispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR:
Dispensa 2 2.1 Costruzione Parsing Table LR: generalità Come tutti i parser tabellari predittivi, anche i parser LR possono essere applicati solo a parsing table senza conflitti (ossia entrate multiple)
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic
DettagliLinguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl
Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare
DettagliProgrammazione. Marco Anisetti. Università degli Studi di Milano, Dipartimento di Informatica
Programmazione Marco Anisetti Università degli Studi di Milano, Dipartimento di Informatica marco.anisetti@unimi.it http://homes.di.unimi.it/anisetti/ Marco Anisetti - 1 / 40 Riepilogo lezione 1 Ruolo
DettagliOggetti sintattici. Semantica operazionale dei linguaggi di Programmazione. Oggetti sintattici. Funzioni di valutazione semantica
Oggetti sintattici Abbiamo più volte sottolineato il fatto che le stringhe di un linguaggio sono di base oggetti simbolici puri Non hanno un significato particolare associato, a parte quello di essere
DettagliLinguaggi e Traduttori: Analisi sintattica
Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
DettagliDescrizione dei Linguaggi di Programmazione
Descrizione dei Linguaggi di Programmazione Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione [010194] 4 mar, 2016 Sommario 1 Livelli di Descrizione
DettagliLe grammatiche formali
Le grammatiche formali Il carattere generativo dei sistemi linguisticii i Consideriamo i la seguente frase: Un gatto rincorre il topo Non facciamo difficoltà a riconoscere che si tratta di una frase sintatticamente
DettagliLinguaggi Regolari e Linguaggi Liberi
Linguaggi Regolari e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle grammatiche 1
DettagliLinguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo
e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle Tutti i linguaggi che possono essere
DettagliUniversità degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java
Università degli studi Roma Tre Linguaggi: Sintassi e Semantica Il A cura di A. Orlandini 1 Obiettivi Distinguere la sintassi dalla semantica di un linguaggio Conoscere le convenzioni del meta-linguaggio
DettagliSemantica operazionale dei linguaggi di Programmazione
Semantica operazionale dei linguaggi di Programmazione Stato Rosario Culmone, Luca Tesei 19/12/2007 UNICAM - p. 1/?? Espressioni con variabili Espandiamo il sistema exp in modo da trattare il nuovo caso
DettagliDall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione
Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa
DettagliLA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese
LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE Ivan Lanese argomenti Grammatiche BNF Varianti: BNF + ε EBNF Remind: cos è una grammatica Una grammatica è uno strumento linguistico per definire insiemi di
DettagliFondamenti teorici e programmazione
Fondamenti teorici e programmazione FTP(A) - modb Lezione 16 Grammatiche Libere da Contesto Alberi di derivazione sintattica Linguaggio generato F.Bonchi Dip.to Informatica Fondamenti teorici e programmazione
DettagliInterpreti, compilatori e semantica operazionale
Interpreti, compilatori e semantica operazionale 1 Linguaggi di programmazione Come si comprendono le caratteristiche di un linguaggio di programmazione? Molte risposte diverse manuali, documentazione
DettagliYet Another Compiler-Compiler. Generazione automatica di analizzatori sintattici
Yet Another Compiler-Compiler Generazione automatica di analizzatori sintattici 2 YACC Yet Another Compiler-Compiler YACC (Bison) è un generatore di analizzatori sintattici a partire dalla descrizione
DettagliSemantica operazionale dei linguaggi di Programmazione
Semantica operazionale dei linguaggi di Programmazione Sistemi di transizioni (2) Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P. Mancarella e
DettagliGRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve
GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE Cosimo Laneve 1 argomenti 1. linguaggi di programmazione 2. definizione formale di insiemi infiniti 3. la grammatica e la notazione BNF 4. notazioni alternative
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 09 Linguaggi Sintassi e Semantica Alfonso Miola Ottobre 2009 http://www.dia.uniroma3.it/~java/fondinf/ Linguaggi - Sintassi e Semantica
DettagliGRAMMATICA FORMALE. Albero sintattico
GRAMMATICA FORMALE Una quadrupla VT,VN,P,S dove: VT è un insieme finito di simboli terminali VN è un insieme finito di simboli non terminali Pè uninsieme finito di produzioni, ossiadi regole di riscrittura
DettagliCostruzione dell insieme dei Follow
Costruzione dell insieme dei Follow E! T E - T E E! + T E - T E " T! F T T! *F T " F! (E) i Per evitare che alcuni insiemi siano vuoti si aggiunge per default il simbolo speciale $ che demarca la fine
DettagliLogica per la Programmazione
Logica per la Programmazione Lezione 12 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Concetto di Tripla di Hoare Soddisfatta pag. 1 Introduzione Dall inizio del corso ad ora abbiamo introdotto,
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
DettagliLinguaggi e grammatiche
Linguaggi e grammatiche Corso di Fondamenti di Informatica - 1 modulo Corso di Laurea in Informatica Università di Roma Tor Vergata a.a. 2017-2018 Prof. Giorgio Gambosi Alfabeti e linguaggi Alfabeto Un
DettagliPaolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09
Linguaggi procedurali Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.1 Linguaggi procedurali classe
DettagliModelli per i linguaggi
Grammatiche 1 Modelli per i linguaggi Modelli adeguati per riconoscere/accettare, tradurre, calcolare linguaggi Ricevono una stringa di ingresso e la elaborano Modelli operazionali (Automi) Modelli adeguati
DettagliConcetti di base sugli automi e sui linguaggi formali
Concetti di base sugli automi e sui linguaggi formali Andrea Burattin 18 marzo 2005 Sommario Piccolo insieme di concetti sul funzionamento degli automi (a stati finiti, a pila,...), delle grammatiche libere
DettagliAnalisi sintattica. Analisi sintattica
uolo dell analisi sintattica Un compilatore deve produrre codice oggetto e deve anche controllare che il programma in input sia scritto secondo le regole della sua sintassi L analisi lessicale controlla
DettagliPumping lemma per i linguaggi Context-free
Pumping lemma per i linguaggi Context-free Sia L un linguaggio context-free. E possibile determinare una costante k, dipendente da L, tale che qualunque stringa z! L con z > k si può esprimere come z=
Dettagli9 Calcolo dei sequenti LC p
9 Calcolo dei sequenti LC p In questa sezione mostriamo un metodo più elegante, semplice e soprattutto AUTOMATICO per mostrare se una proposizione è valida o meno e soddisfacibile o meno. Tale metodo è
DettagliCorso di Programmazione Linguaggi di Programmazione
Corso di Programmazione Linguaggi di Programmazione Dott. Stefano Ferilli ferilli@di.uniba.it Università degli Studi di Bari Dipartimento di Informatica Linguaggio Insieme di sequenze di simboli appartenenti
DettagliAutoma deterministico con prospezione 1. < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R. se a Gui(X α) senza spostamento della testina.
Automa deterministico con prospezione 1 < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R δ(a, a) = ε se a Gui(X α) senza spostamento della testina con spostamento della testina Grammatica 1S ( S ) 2S [ S ] 3S
DettagliFondamenti di Informatica per la Sicurezza a.a. 2008/09. Grammatiche. Stefano Ferrari. Unalfabetoèuninsiemefinitoenonvuotodisimboli.
Fondamenti di Informatica per la icurezza a.a. 2008/09 tefano Ferrari UNIVERITÀ DEGLI TUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE tefano Ferrari Università degli tudi di Milano Fondamenti
DettagliLinguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi
Linguaggi di Programmazione Corso C Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Grammatiche
DettagliFondamenti d Informatica: lavoriamo con le grammatiche. Barbara Re, Phd
Fondamenti d Informatica: lavoriamo con le grammatiche Barbara Re, Phd Esercizio Grammatica e generazione stringhe Data una Grammatica ed una Stringa, verificare che la Stringa sia generata dalla Grammatica:
DettagliLinguaggi formali e compilazione
Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2014/2015 Linguaggi formali e compilazione sul corso Sito web: http://algogroup.unimore.it/people/mauro/dida/2014-2015 / Ricevimento:
DettagliTraduzione guidata dalla sintassi. Attributi e Definizioni guidate dalla sintassi
Traduzione guidata dalla sintassi Attributi e Definizioni guidate dalla sintassi Intro In questa ultima parte del corso vediamo, in breve, una tecnica che permette di effettuare analisi semantiche e traduzione
DettagliIntro. Traduzione guidata dalla sintassi. Attributi. Due notazioni a diversi livelli. Due notazioni a diversi livelli. Il flusso concettuale
Intro Traduzione guidata dalla sintassi Attributi e Definizioni guidate dalla sintassi In questa ultima parte del corso vediamo, in breve, una tecnica che permette di effettuare analisi semantiche e traduzione
DettagliNon determinismo e grammatiche. Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano
Non determinismo e grammatiche Achille Frigeri Dipartimento di Matematica Francesco Brioschi Politecnico di Milano Modelli non deterministici - Macchine Automa a stati niti non deterministico (AFN) A =
DettagliLINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 Un po di storia sui linguaggi 1957 John Backus e colleghi della IBM rilasciano la prima
DettagliNozioni Preliminari e Terminologia. Alfabeti Stringhe Linguaggi
Nozioni Preliminari e Terminologia Alfabeti Stringhe Linguaggi Insiemi Def. Un insieme è una collezione non ordinata di oggetti o elementi Gli insiemi sono scritti tra { } Gli elementi sono inseriti tra
DettagliAutomi deterministici e non
Automi deterministici e non Negli esempi visti fin ora gli automi avevano sempre relazioni di transizione per cui per un dato elemento del dominio coppia (s, v), dove s è uno stato (sorgente) e v un simbolo,
DettagliFasi di un Compilatore
Dipartimento di Matematica e Informatica Università di Camerino Un implementazione compilativa di un linguaggio di programmazione viene realizzata tramite un programma che prende il nome di compilatore
DettagliLinguaggi formali e compilazione
Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2015/2016 Linguaggi formali e compilazione sul corso Sito web: http://algogroup.unimore.it/people/mauro/dida/2015-2016 / Ricevimento:
DettagliFondamenti d Informatica: linguaggi formali. Barbara Re, Phd
Fondamenti d Informatica: linguaggi formali Barbara Re, Phd Agenda } Introdurremo } La nozione di linguaggio } Strumenti per definire un linguaggio } Espressioni Regolari 2 Linguaggio } Da un punto di
DettagliDefinizione di Grammatica
Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla ( VN, VT, P, S ) dove: V N e l insieme dei simboli non
DettagliUn messaggio di posta elettronica è costituito da una testata e da un corpo La testata contiene indirizzo,.
1 Grammatiche Gli automi sono un modello riconoscitivo/traduttivo/elaborativo (di linguaggi): essi ricevono una stringa nel loro ingresso e la elaborano in vari modi Passiamo ora ad esaminare un modello
DettagliFoglio Elettronico Lezione 1
- Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in
DettagliBottom-up Parsing. Viable Prefixes, conflitti e formato delle tabelle per il parsing LR
Bottom-up Parsing Viable Prefixes, conflitti e formato delle tabelle per il parsing LR Viable Prefixes Prima di continuare finiamo il discorso sul parsing shift-reduce in generale C è una ragione importante
DettagliCorso di Linguaggi e Traduttori 1 AA GRAMMATICHE
Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla V, V, P S ( ) N T, dove: V N e l insieme dei simboli non
Dettagli