La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Alfabeti Linguaggi Automi Grammatiche e Compilatori

Presentazioni simili


Presentazione sul tema: "Alfabeti Linguaggi Automi Grammatiche e Compilatori"— Transcript della presentazione:

1 Alfabeti Linguaggi Automi Grammatiche e Compilatori
A cura del prof. Ionta Silvio a.s. 2005

2 Mappa Alfabeti Linguaggi Algebra dei Linguaggi Automi
Operazioni sugli Automi Esempi Prof. Ionta Silvio Anno 2005

3 Alfabeti Unità didattica n° 1

4 A  ALFABETO Insieme finito di simboli elementari Es. :
Prf. Ionta Silvio A  ALFABETO Insieme finito di simboli elementari Es. : Alfabeto formato dal sol simbolo a  A = {a} Alfabeto Binario  A = {0,1} Alfabeto Morse  A = {- , . , spazio } Alfabeto carte da gioco  A = {, , , ,} Alfabeto della Lingua Italiana  A = {a,b,c,…, z,A,B,C, … , Z} Alfabeto della Lingua Inglese  A = {a,b,…,z,x,y,w.j,k} Alfabeto Greco  A = {α,β,γ,δ,ε ,…,φ,χ,ω} Prof. Ionta Silvio Anno 2005 anno 2005

5 ◦  Operatore Concatenazione
Si ottiene unendo il primo simbolo seguito dal secondo simbolo a ◦ b = ab b ◦ a = ba Non gode della proprietà commutativa a ◦ b  b ◦ a Prof. Ionta Silvio Anno 2005

6 w  Parola - Stringa Le parole si ottengono facendo operazioni di concatenazione fra simboli dello stesso alfabeto A = {a}  w = aaaaaaaaaa..aaaaaaa A = {a,b}  w = ababaab A = {0,1}  w =  parola Binaria Prof. Ionta Silvio Anno 2005

7 ε  Stringa Vuota Parola ottenuta concatenando nessun simbolo dell’alfabeto La lunghezza della parola vuota è |ε| = 0 Prof. Ionta Silvio Anno 2005

8 |W|  Lunghezza di una Parola
È il numero di caratteri utilizzati concatenando fra loro i simboli dell’alfabeto nel formare la parola Parola formata da 0 lettere dell’Alfabeto Greco  A = {α,β,γ,δ,ε ,…,φ,χ,ω} |w| = | ε | = 0 Parola formata da 1 lettera dell’ Alfabeto della Lingua Inglese  A = {a,b,…,z,x,y,w.j,k}  |w| = |x| = 1 Parola formata da 2 lettere di A = {0,1}  |w| = |01| = 2 Parola formata da 3 lettere di A = {a,b}  |w| = |aba| = 3 Parola formata da 4 lettere di A = {a}  |w| = |aaaa| = 4 Prof. Ionta Silvio Anno 2005

9 An  Potenza di un Alfabeto
Insieme delle parole che si possono formare concatenando fra loro simboli dell’alfabeto di lunghezza pari a n Es. Alfabeto iniziale  A = {a} A0 = {ε} -> Insieme delle parole di lunghezza 0 -> la parola di lunghezza 0 è solo ε A1 = {a} -> Insieme delle parole di lunghezza 1  la parola di lunghezza 1 è solo quella formata da un solo carattere A2 = {aa} -> Insieme delle parole di lunghezza 2  la parola di lunghezza 2 è solo quella formata dalla concatenazione dello stesso carattere a per due volte An = {aaa…aaa} -> Insieme delle parole di lunghezza n  la parola di lunghezza n è solo quella formata dalla concatenazione dello stesso carattere a per n volte Prof. Ionta Silvio Anno 2005

10 An  Potenza di un Alfabeto
Es. Alfabeto iniziale  A = {a,b} A0 = {ε} -> Insieme delle parole di lunghezza 0 la parola di lunghezza 0 è solo ε A1 = {a,b} -> Insieme delle parole di lunghezza 1  la parola di lunghezza 1 è solo quella formata da un solo carattere  ci sono due parole : la parola a e la parola b A2 = {aa,ab,ba,bb} -> Insieme delle parole di lunghezza 2  la parola di lunghezza 2 è solo quella formata dalla concatenazione dei due caratteri a e b  sono tante quante le combinazioni a due a due dei due caratteri = 22 = 4 A3 = {aaa,aab,aba,abb,baa,bab,bba,bbb} -> Insieme delle parole di lunghezza 2  la parola di lunghezza 2 è solo quella formata dalla concatenazione dei due caratteri a e b  sono tante quante le combinazioni due a due dei due caratteri = 238 …. An = {aaa…aaa,…,bbb…bbb} -> Insieme delle parole di lunghezza n  la parola di lunghezza n è solo quella formata dalla concatenazione dei due caratteri a e b  sono tante quante le combinazioni n a n dei due caratteri = 2n… Prof. Ionta Silvio Anno 2005

11 A+  Chiusura Positiva di un Alfabeto
È l’insieme di tutte le parole, non nulle e lunghezza finita, che si possono formare unendo i caratteri dell’alfabeto A+ = A1  A2  A3  …  An w  A+  |w| > 0 Prof. Ionta Silvio Anno 2005

12 A+  Chiusura Positiva di un Alfabeto
Alfabeto iniziale  A = {a} A+ = {a,aa, aaa,…,aaa..aa} n Alfabeto iniziale  A = {a,b} A+ = {a,b,aa,ab,ba,bb, aaa,aab,aba,abb,baa,bab,bba,bbb, …,aaa..aa,… ,bbb…bbb} n Prof. Ionta Silvio Anno 2005

13 A*  Chiusura di un Alfabeto
È l’insieme di tutte le parole, anche nulle e di lunghezza finita, che si possono formare unendo i caratteri dell’alfabeto A* = A0  A1  A2  …  An w  A+  |w|  0 A* = A0  A+ = {ε}  A+ Prof. Ionta Silvio Anno 2005

14 A*  Chiusura di un Alfabeto
Alfabeto iniziale  A = {a} A* = {ε , a, aa, aaa, …, aaa..aa} n Alfabeto iniziale  A = {a,b} A* = { ε , a,b, aa,ab,ba,bb, aaa,aab,aba,abb,baa,bab,bba,bbb, …, aaa..aa,… ,bbb…bbb} n Prof. Ionta Silvio Anno 2005

15 Linguaggi Unità didattica n° 2

16 L Linguaggio sull’alfabeto A
È un sottoinsieme di A* È l’insieme delle parole, di lunghezza finita anche nulla, che si possono formare a partire dai caratteri dell’alfabeto concatenandoli fra loro e che soddisfa un particolare insieme di REGOLE Es. il linguaggio Italiano è l’insieme di parole che si possono formare a partire dall’alfabeto Italiano e che soddisfano le regole della grammatica (sintassi) Italiana Nota : Il linguaggio Italiano si può formare anche dall’alfabeto Inglese basta che soddisfi le regole della grammatica Italiana Prof. Ionta Silvio Anno 2005

17 L Linguaggio sull’alfabeto A
Alfabeto iniziale  A = {a} L = { w  A*  |w|  A* } =   Linguaggio formato da nessuna Parola L = { w  A*  |w| = 0 } = {ε}  Linguaggio formato dalla Parola Vuota  parola di lunghezza zero L = { w  A*  |w| = 1 } = {a}  Linguaggio formato dalla Parola di lunghezza 1 Prof. Ionta Silvio Anno 2005

18 L Linguaggio sull’alfabeto A
Alfabeto iniziale  A = {a} L = { w  A*  a2n+1 n0 } = {a,aaa,aaaaa,…} Linguaggio formato dalle parole con un numero dl lettere a dispari L = {wA*  a2n n>0 }={aa,aaaa,aaaaa,…}  Linguaggio formato dalle parole con un numero dl lettere a pari Prof. Ionta Silvio Anno 2005

19 L Linguaggio sull’alfabeto A
L = { w  A*  R(w)= Vero } Metodo DISCORSIVO L = insieme delle Parole formate con lettere dell’alfabeto A, di lunghezza anche nulla ma finita, che soddisfano la particolare Regola R Metodo ENUMERATIVO L = { elenco completo delle parole } Metodo MATEMATICO L = formula matematica sui linguaggi Prof. Ionta Silvio Anno 2005

20 L Linguaggio sull’alfabeto A
Es : L = {w{0,1}*  Inizi con zero} Metodo DISCORSIVO L = Insieme delle Parole formate con lettere dell’alfabeto A cioè I numeri 0 e 1, che soddisfano la particolare Regola che la parola inizi con il numero 0 che può essere seguito da una qualsiasi combinazione, anche nulla, di 0 e 1 a piacere di lunghezza finita Metodo ENUMERATIVO L = { 0, 00, 01, 000, 001, 010, 011, 0000, 0001, 0010, 0011,…. } Metodo MATEMATICO L = 0(0+1)* Prof. Ionta Silvio Anno 2005

21 Algebra dei Linguaggi Unità didattica n° 3

22 Algebra dei Linguaggi A = {a,b}
 Alfabeto formato da 2 simboli (caratteri) ε  Parola vuota formata non prendendo nessun carattere dell’alfabeto a  parola di lunghezza 1 formata dal 1° carattere dell’alfabeto b  parola di lunghezza 1 formata dal 2° carattere dell’alfabeto Prof. Ionta Silvio Anno 2005

23 Algebra dei Linguaggi aa, ab, ba, bb aaa, aab, aba, abb, baa, bab,
 parole di lunghezza 2 formate concatenando due caratteri dell’alfabeto aaa, aab, aba, abb, baa, bab, bba, bbb  parole di lunghezza 3 formate concatenando tre caratteri dell’alfabeto Prof. Ionta Silvio Anno 2005

24 Algebra dei Linguaggi ( a + b )  Unione (a◦b)  (ab)  Congiunzione a
Posso prendere 1 solo carattere a scelta fra “a” e “b” (a◦b)  (ab)  Congiunzione ab devo prendere obbligatoriamente entrambi i caratteri nello stesso ordine in cui sono indicati ( prima la “a” e poi la “b” Prof. Ionta Silvio Anno 2005

25 Algebra dei Linguaggi (..)+  Chiusura Positiva
Sequenza non vuota di (..) Posso prendere i caratteri in ripetizione in un numero qualsiasi ma obbligatoriamente almeno 1 o prendo un solo carattere (..)  o posso prendo una sequenza di caratteri (..) lunga a piacere (..) (..)(..) (..)(..)(..) (..)(..)(..)(..) Prof. Ionta Silvio Anno 2005

26 Algebra dei Linguaggi (..)*  Chiusura – Operatore stella
Sequenza anche vuota di (..) Posso prendere i caratteri in ripetizione in un numero qualsiasi anche nessuno o non prendo nessun (..) o posso prendo una sequenza di caratteri (..) lunga a piacere ε (..) (..)(..) (..)(..)(..) (..)(..)(..)(..) Prof. Ionta Silvio Anno 2005

27 Algebra dei Linguaggi a+  Chiusura Positiva
Sequenza non vuota di caratteri “a” Posso prendere i caratteri in ripetizione in un numero qualsiasi ma obbligatoriamente almeno 1 o prendo un solo carattere “a”  o posso prendo una sequenza di caratteri “a” lunga a piacere a aa aaa aaaa Prof. Ionta Silvio Anno 2005

28 Algebra dei Linguaggi a*  Chiusura – Operatore stella
Sequenza anche vuota di caratteri “a” Posso prendere i caratteri in ripetizione in un numero qualsiasi anche nessuno o non prendo nessun carattere “a”  o posso prendo una sequenza di caratteri “a” lunga a piacere ε a aa aaa aaaa Prof. Ionta Silvio Anno 2005

29 Sequenza di combinazioni non vuota di caratteri “a” e “b”
Algebra dei Linguaggi (a+b)+  Chiusura Positiva a,b aa,ab,ba,bb aaa,aab,aba,abb,baa,bab,bba,bbb aaaa,… Sequenza di combinazioni non vuota di caratteri “a” e “b” Posso prendere i caratteri in ripetizione in un numero qualsiasi scegliendoli a piacere ma obbligatoriamente almeno 1  o prendo un solo carattere “a” o un solo caratere “b”  o posso prendo una sequenza di caratteri lunga a piacere Prof. Ionta Silvio Anno 2005

30 Sequenza di combinazioni non vuota di coppie di caratteri “ab”
Algebra dei Linguaggi (ab)+  Chiusura Positiva ab abab ababab Sequenza di combinazioni non vuota di coppie di caratteri “ab” Posso prendere i caratteri in coppia in ripetizione in un numero qualsiasi ma obbligatoriamente almeno 1 coppia  o prendo una sola coppia di caratteri “ab”  o posso prendo una sequenza di caratteri “ab” lunga a piacere Prof. Ionta Silvio Anno 2005

31 Sequenza di combinazioni anche vuota di caratteri “a” e “b”
Algebra dei Linguaggi (a+b)*  Chiusura – operatore Stella ε a,b aa,ab,ba,bb aaa,aab,aba,abb,baa,bab,bba,bbb aaaa,… Sequenza di combinazioni anche vuota di caratteri “a” e “b” Posso prendere i caratteri in ripetizione in un numero qualsiasi, anche nessuno, scegliendoli a piacere o nessuno  o prendo un solo carattere “a” o un solo caratere “b”  o posso prendo una sequenza di caratteri lunga a piacere Prof. Ionta Silvio Anno 2005

32 Sequenza di combinazioni non vuota di coppie di caratteri “ab”
Algebra dei Linguaggi (ab)*  Chiusura – operatore Stella ε ab abab ababab Sequenza di combinazioni non vuota di coppie di caratteri “ab” Posso prendere i caratteri in coppia in ripetizione in un numero qualsiasi , anche nessuno o nessuno  o prendo una sola coppia di caratteri “ab”  o posso prendo una sequenza di caratteri “ab” lunga a piacere Prof. Ionta Silvio Anno 2005

33 Alfabeto iniziale  A = {a.b}
Esempi di Linguaggio Alfabeto iniziale  A = {a.b} Metodo MATEMATICO  ab*a Metodo DISCORSIVO L = { w  A* (tutte le parole formate da lettere dell’alfabeto di partenza “a” e “b”) t.c. |w|  2 (tali che siano formate da almeno 2 caratteri) e che iniziano e terminano con “a” con interposto una sequenza anche vuota di “b”} Metodo ENUMERATIVO L = { aa, aba, abba, abbba, abbbba, abbbbba, … } Prof. Ionta Silvio Anno 2005

34 Alfabeto iniziale  A = {a.b}
Esempi di Linguaggio Alfabeto iniziale  A = {a.b} Metodo MATEMATICO  a(a+b)+a Metodo DISCORSIVO L = { w  A* (tutte le parole formate da lettere dell’alfabeto di partenza “a” e “b”) t.c. |w|  3 (tali che siano formate da almeno 2 caratteri) e che iniziano e terminano con “a” con interposto una sequenza non vuota di caratteri a scelta fra “a” e “b”} Metodo ENUMERATIVO L = { aaa, aba, aaaa, aaba, abaa, abba, aaaaa, aaaba, aabaa, aabba, … } Prof. Ionta Silvio Anno 2005

35 Alfabeto iniziale  A = {a.b}
Esempi di Linguaggio Alfabeto iniziale  A = {a.b} Metodo MATEMATICO  a(ab)*a Metodo DISCORSIVO L = { w  A* t.c. |w|  2 e che iniziano e terminano con “a” con interposto una sequenza anche vuota di coppie di caratteri a scelta “ab”} Metodo ENUMERATIVO L = { aa, aaba, aababa,aabababa, … } Prof. Ionta Silvio Anno 2005

36 Alfabeto iniziale  A = {0,1}
Esempi di Linguaggio Alfabeto iniziale  A = {0,1} Metodo MATEMATICO  0(0+1)* Metodo DISCORSIVO L = { w  A* t.c. |w|  1 e che iniziano con “0” seguito da una sequenza anche vuota di caratteri a scelta “0”e “1”} Metodo ENUMERATIVO L = {0,00,01,000,001,010,011,0000,0001,0010,0011,0100,0101,0110,0111, … } >5 Prof. Ionta Silvio Anno 2005

37 Automi Unità didattica n° 4

38 a Automa Un Automa riconoscitore di un Linguaggio è una Macchina che ogni volta che si inserisce una parola del linguaggio partendo da uno Stato Iniziale qi e passando, attraverso opportune regole, in un insieme finito di Stati Intermedi qn ogni volta che legge un carattere della parola riesce a raggiungere uno degli Stati Finali qf Prof. Ionta Silvio Anno 2005

39 a Automi a = < A, Q, , qi = q0, F > (quintupla)
A  Alfabeto di Partenza Q  Insieme degli Stati {q0, q1, q2 , q3 , …, qf1, qf2,… ,}   Regole di Transizione (Produzioni) qi  Stato Iniziale q0 F  Insieme degli Stati Finali { qf1, qf2,…} Prof. Ionta Silvio Anno 2005

40 a Automi Automa Deterministico
Quando le regole permettono la transizione da uno Stato ad un altro in modo univoco Quando le regole non permettono di stabilire con esattezza in quale stato porterà la Transizione Prof. Ionta Silvio Anno 2005

41 Automa Deterministico Automa non Deterministico
Si parte dallo stato iniziale e utilizzando la tabella di transizione si costruisce un automa equivalente ma deterministico. Gli stati non determinati si raggruppano in un unico nuovo stato. Pertanto le transazioni vanno effettuate considerando gli stati come se fossero raggruppati I nuovi stati che contengono stati finali diventano stati finali Infine si rinominano gli stati Prof. Ionta Silvio Anno 2005

42 Automa che riconosce il Linguaggio L = a
a = <A={a} , Q ={q0,q1}, , qi = q0, F={q1} > a q0 q1 - q0 q1 Stato Iniziale Stato Finale a Prof. Ionta Silvio Anno 2005

43 Automa che riconosce il Linguaggio L = b
a = <A={b} , Q ={q0,q1}, , qi = q0, F={q1} > b q0 q1 - q0 q1 Stato Iniziale Stato Finale b Prof. Ionta Silvio Anno 2005

44 Operazioni sugli Automi
Unità didattica n° 5

45 Unione fra automi Si crea un nuovo Stato Iniziale.
Da esso si fanno uscire tante frecce quante sono quelle che uscivano dagli stati iniziali degli altri automi e che vanno finire negli stessi stati Gli stati Iniziali Vecchi e le frecce ad esso collegate spariscono Prof. Ionta Silvio Anno 2005

46 Unione fra automi a a b b L = a + b  Unione degli Automi L1=a e L2=b
a b q0 q1 q2 - q0 a q1 Nuovo Stato Iniziale q0 a b q0 b q2 q1 Prof. Ionta Silvio Anno 2005

47 Concatenazione fra automi
Si scrive il 1° automa senza l’indicazione degli stati finali Si sovrappone lo stato iniziale ad ogni stato finale del primo Automa e si costruisce da questi stati (ex finali) il 2° automa Da essi si fanno uscire tante frecce quante sono quelle che uscivano dallo stato iniziale del 2°automa e che vanno finire negli stessi stati del 2° automa Prof. Ionta Silvio Anno 2005

48 Unione fra automi L = ab  Concatenazione degli Automi L1=a e L2=b a a
a b q0 q1 - q2 q1 q0 a q1 q0 a q2 q1 b q1 q0 b Prof. Ionta Silvio Anno 2005

49 Unione fra automi L = ba  Concatenazione degli Automi L1=b e L2=a b b
a b q0 - q1 q2 q1 q0 b q1 q0 b q2 q1 a q1 q0 a Prof. Ionta Silvio Anno 2005

50 Chiusura positiva Da ogni Stato Finale dell’Automa si fanno uscire tante frecce quante sono quelle che escono dallo Stato Iniziale che vanno a finire sempre negli stessi Stati Prof. Ionta Silvio Anno 2005

51 Chiusura positiva L = a+  Chiusura positiva di L1= a a a a  a q0 q1
Prof. Ionta Silvio Anno 2005

52 Chiusura positiva L = b+  Chiusura positiva di L1= b b b b  b q0 q1
Prof. Ionta Silvio Anno 2005

53 Chiusura positiva L = (a + b)+  Chiusura positiva di L = a+b a a a a
a b q0 q1 q2 a q1 a a a q0 b a b b b q2 b Prof. Ionta Silvio Anno 2005

54 Chiusura positiva L = (ab)+  Chiusura positiva di L = ab a a a b  a
q0 q1 - q2 a q1 q0 a a q2 q1 b Prof. Ionta Silvio Anno 2005

55 Chiusura positiva L = (ba)+  Chiusura positiva di L = ba a b b a  a
q0 - q1 q2 a q1 q0 b b q2 q1 a Prof. Ionta Silvio Anno 2005

56 Operazione Stella Si effettua la Chiusura Positiva
Da ogni Stato Finale dell’Automa si fanno uscire tante frecce quante sono quelle che escono dallo Stato Iniziale che vanno a finire sempre negli stessi Stati Lo Stato Iniziale diventa Stato Finale Prof. Ionta Silvio Anno 2005

57 Operazione Stella L = a*  Operazione Stella di L1= a a a a  a q0 q1
Prof. Ionta Silvio Anno 2005

58 Operazione Stella L = b*  Operazione Stella di L1= b b b b  b q0 q1
Prof. Ionta Silvio Anno 2005

59 Operazione Stella L = (a + b)+  Operazione Stella di L = a+b a a a a
a b q0 q1 q2 a q1 a a a q0 q0 b a b b b q2 b Prof. Ionta Silvio Anno 2005

60 Operazione Stella L = (ab)*  Operazione Stella di L = ab a a a b  a
q0 q1 - q2 a q1 q0 a a q2 q1 b q0 Prof. Ionta Silvio Anno 2005

61 Operazione Stella L = (ba)*  Operazione Stella di L = ba b b b a  a
q0 - q1 q2 b q1 q0 b b q2 q1 a q0 Prof. Ionta Silvio Anno 2005

62 Grammatica Unità didattica n° 6

63 Esempi Unità didattica n° 7

64 Esempio n°1 L = 0(0+1)*11 1 1 L1= 0 q0 q1 q0 q1 L2= 1 L3= 11 q0 q2 q1
q2 q0 L1= 0 q0 q1 q0 q1 1 L2= 1 L3= 11 1 q0 q2 q1 L6= 0 (0 + 1)* q2 1 q3 q1 q0 q1 q0 1 q2 L4= 0 + 1 Lf= 0 (0 + 1)*11 q5 q3 q2 1 q1 q0 q4 Prof. Ionta Silvio Anno 2005

65 Automa non Deterministico
Esempio n°1 L = 0(0+1)*11 Lf= 0 (0 + 1)*11 q2 1 1 q0 q1 - q2 q3,q4 q3 q4 q5 1 q0 q1 1 q4 q5 1 q3 1 1 1 Automa non Deterministico Ci sono dei passaggi di stato non definiti univocamente Es : se mi trovo nello stato q3 e leggo il carattere 1 in quale stato devo andare? Ancora nello Stato q3 o vado nello stato q4 ? Prof. Ionta Silvio Anno 2005

66 Automa Deterministico Automa non Deterministico
Esempio n°1 L = 0(0+1)*11 Automa Deterministico Automa non Deterministico Si parte dallo stato iniziale e utilizzando la tabella di transizione si costruisce un automa equivalente ma deterministico. Gli stati non determinati si raggruppano in un unico nuovo stato. Pertanto le transazioni vanno effettuate considerando gli stati come se fossero raggruppati I nuovi stati che contengono stati finali diventano stati finali Infine si rinominano gli stati 1 q0 q1 - q2 q3,q4 q3 q4 q5 1 q0 q1 - q2 q3,q4 q3,q4,q5 q0 q1 q2 1 1 q3,q4 1 q3,q4,q5 1 Prof. Ionta Silvio Anno 2005

67 Automa Deterministico
Esempio n°1 L = 0(0+1)*11 Automa Deterministico 1 q0 q1 - q2 q3 q4 q0 q1 q2 q3 1 q4 Prof. Ionta Silvio Anno 2005


Scaricare ppt "Alfabeti Linguaggi Automi Grammatiche e Compilatori"

Presentazioni simili


Annunci Google