11. LINGUAGGI CONTEXT FREE

Размер: px
Начинать показ со страницы:

Download "11. LINGUAGGI CONTEXT FREE"

Транскрипт

1 11. LINGUAGGI CONTEXT FREE

2 Linguaggi di tipo 2, non contestuali, context free (CF) I linguaggi non contestuali o context free: - sono generati da grammatiche di tipo 2 - sono riconosciuti da automi a stati finiti non deterministici con l ausilio di una pila (automi a pila) - contengono i linguaggi di programmazione (anzi i linguaggi di programmazione appartengono a classi di linguaggi context free deterministici molto particolari).

3 Molte frasi in linguaggio naturale hanno una struttura sintattica non contestuale; Ad esempio abbiamo che una frase è costituita da un soggetto seguito da un complemento; un soggetto è un articolo seguito da un sostantivo; il complemento è un verbo o un verbo seguito da un complemento oggetto. FRASE SOGGETTO COMPLEMENTO. SOGGETTO ART SOST COMPLEMENTO VERBO VERBO COMP-OGGETTO COMP-OGGETTO ART SOST ART il SOST gatto topo VERBO mangia il gatto mangia. il gatto mangia il topo.

4 La BNF (Forma di Backus-Naur), utilizzata per definire la struttura sintattica dei linguaggi di programmazione non è altro che una grammatica di tipo 2, scritta in modo più suggestivo: <frase-if> ::= if <predicato> then <istruzione>

5 Anche la descrizione della struttura di un documento espressa in XML è sostanzialmente una grammatica di tipo 2: <!DOCTYPE nota [ <!ELEMENT nota ( messaggio+ )> <!ELEMENT messaggio (#PCDATA)> <!ATTLIST messaggio numero CDATA da CDATA> ]> <nota> <messaggio numero="a1" da= Pippo"> Ricordati di comprare il latte tornando a casa</messaggio> <messaggio numero="a2" da= Pluto">Ho bisogno di aiuto per i compiti a casa </messaggio> </nota>

6 Per i linguaggi di Tipo 2 abbiamo una immediata corrispondenza tra derivazioni e alberi (alberi sintattici). Esempio. Data la grammatica A BC Def B b BC C c cc D d la derivazione della stringa può essere rappresentata con un albero A B B C B C c C b c c

7 Analisi sintattica ("parsing"): dato un programma ricostruirne l'albero sintattico per poter effettuare la traduzione (o, nel caso di un interprete, eseguire direttamente le istruzioni) Problemi: non ambiguità del "parsing", cioè possibilità di ricostruire in modo univoco il "significato" di una stringa efficienza del "parsing", cioè possibilità di ricostruire il "significato" di una stringa con una sola scansione del testo

8 11.1 PROPRIETA DI CHIUSURA E PUMPING LEMMA Lemma. Data una grammatica non contestuale possiamo decidere se essa genera il linguaggio vuoto Dim. Supponiamo VN =k Per verificare la producibilità di una stringa di soli terminali è sufficiente considerare l'insieme di tutti gli alberi di derivazione con tutti i terminali a profondità k (NB: la radice di un albero ha profondità 0 e se un nodo ha profondità p i suoi figli hanno profondità p+1) Infatti, se una stringa di soli terminali è generata con almeno un terminale y a profondità >k, allora sul cammino da y alla radice c'è un nonterminale ripetuto 2 volte L'albero può quindi essere "potato"

9 Dopo la potatura produce ancora una stringa di soli terminali.

10 Sia la stringa uvwxy, sia la stringa uwy appartengono al linguaggio (NB Anche tutte le stringhe uviwxiy)

11 Teorema. Data una grammatica non contestuale G, è decidibile stabilire se L(G) è infinito Dim. Supponiamo VN = k Basta considerare l'insieme di tutte le derivazioni che generano stringhe terminali in cui il ramo più lungo ha lunghezza tra k e 2k se tale insieme è vuoto, allora il linguaggio è finito se no, tali derivazioni hanno almeno un non terminale ripetuto 2 volte Allora l'albero di derivazione può essere ampliato indefinitamente continuando a produrre stringhe terminali e quindi il linguaggio è infinito

12 "Pumping lemma" per i linguaggi non contestuali Usando lo stesso ragionamento che abbiamo usato per decidere se un linguaggio CF è vuoto, finito o infinito, possiamo dimostrare il seguente risultato. Teorema. Se L è un linguaggio non contestuale allora esiste una costante n tale che se z L e z n allora esistono u,v,w,x,y tali che 1. uvwxy=z 2. vx 1 3. vwx n 4. i 0 uviwxiy L

13 Corollario 1. {anbncn n 1} non è di tipo 2. Dim. Sia anbncn = uvwxy = z se v (oppure x) contiene almeno due simboli diversi (es. v=ab) allora la stringa uv2wx2y contiene un'alternanza di simboli incompatibile con anbncn (es. uababwx2y) se v è composta da simboli tutti uguali fra loro (es. v=aa) e x è composta da simboli tutti uguali fra loro (es. x=cc) allora uv2wx2y contiene un numero diverso di a, b e c

14 Corollario 2. I linguaggi non contestuali non sono chiusi rispetto all'intersezione (e quindi neanche rispetto alla complementazione). Dim. il linguaggio L1={anbncm m,n 1} è di tipo 2 il linguaggio L2={ambncn m,n 1} è di tipo 2 il linguaggio intersezione di L1 ed L2 è {anbncn n 1} che invece non è di tipo 2

15 NOTA BENE. Avevamo dimostrato la decidibilità dell'equivalenza tra linguaggi regolari usando la chiusura rispetto all'intersezione; la tecnica non è estendibile ai linguaggi non contestuali. In realtà il problema della equivalenza di grammatiche non contestuali è indecidibile.

16 Proprietà di chiusura Teorema. I linguaggi non contestuali sono chiusi rispetto all'unione, alla concatenazione ed alla iterazione. Dim. Siano <Σ,V N1,P 1,S 1 > e <Σ,V N2,P 2,S 2 > due linguaggi non contestuali unione aggiungiamo S' S 1 S 2 e usiamo S' come nuovo assioma, otteniamo un linguaggio non contestuale che genera l'unione dei due linguaggi concatenazione aggiungiamo S' S 1 S 2 e usiamo S' come nuovo assioma iterazione aggiungiamo S' S 1 S' ε e usiamo S' come nuovo assioma

17 11.2 FORME NORMALI PER I LINGUAGGI CONTEXT FREE Grammatica in forma ridotta. 1. non contiene ε-produzioni, oppure l assioma può dar luogo ad una ε-produzione ma in tal caso l assioma non compare mai a destra in una produzione 2. non contiene produzioni unitarie (es. A B) 3. non contiene simboli inutili, cioè inutilizzabili per produrre terminali o perchè non sono raggiungibili dall assioma o perchè non sono fertili, non generano stringhe di soli terminali

18 Teorema. Data una grammatica non contestuale esiste una grammatica equivalente in forma ridotta Dim. 1. Rimozione delle ε-produzioni che non sono sull'assioma. Se ad esempio abbiamo A BC bab B B ε ad possiamo trasformare le due produzioni così: A BC B bab C ba ε B ad Tale procedimento può essere iterato finchè le ε-produzioni vengono portate sull assioma.

19 2. Eliminazione delle produzioni unitarie: Se esiste G con una produzione U V allora possiamo costruire G' in cui per ogni produzione del tipo V α aggiungiamo la produzione U α e quindi eliminiamo la produzione U V. Si può dimostrare per induzione sulla lunghezza di una derivazione che la grammatica G genera x se e solo se anche G' genera x.

20 3. Eliminazione dei simboli inutili: Perchè un simbolo A sia utile è necessario che (a) sia fecondo, cioè da A siano generabili stringhe di terminali (b) che A sia raggiungibile da S La condizione (a) è verificabile controllando che non sia vuoto il linguaggio generato dalla grammatica in cui A si assume come assioma. In alternativa si può procedere creando una lista dei non terminali fecondi secondo la seguente regola ricorsiva: - A è fecondo se esiste una produzione A α in cui α contiene solo terminali - A è fecondo se esiste una produzione A α in cui α contiene solo terminali o simboli fecondi

21 La condizione (b) (raggiungibilità dall assioma) è verificabile ricorsivamente a partire dall'assioma S; si può procedere creando una lista dei non terminali che soddisfano la condizione (b) secondo la seguente regola: - S soddisfa la condizione (b) - A soddisfa la condizione (b) se B soddisfa la condizione (b) ed esiste una produzione del tipo B αaα'.

22 NOTA BENE. Consideriamo la seguente grammatica: S AB a A a Dopo il primo passo abbiamo S a A a Dopo il secondo passo abbiamo S a

23 Se avessimo applicato i due passi in ordine inverso avremmo avuto: S AB a e poi S a A a A a che contiene ancora un simbolo non raggiungibile. Quindi dobbiamo prima eliminare i simboli non fecondi e poi quelli non raggiungibili.

24 Esempio. Riduciamo la grammatica 1 S auvb TZ 5 V ay 2 Z az 6 Y by b 3 U bu b 7 W cwd cd 4 V W 8 T tt tz Eliminazione delle produzioni unitarie: via la 4 ed aggiungiamo le produzioni V cwd cd Eliminazione dei simboli non fecondi: via la 2 e la 1bis Eliminazione dei simboli non raggiungibili: via la 8 1 S auvb 2 U bu b 3 V cwd cd ay 4 Y by b 5 W cwd cd

25 Forma Normale di Chomsky Def. Una grammatica di tipo 2 è in forma normale di Chomsky (CNF) se tutte le produzioni sono del tipo A BC oppure A a Teorema. Data una grammatica G di tipo 2 tale che ε L(G) esiste una grammatica G' equivalente in CNF. Dim. Supponiamo che G sia in forma ridotta. Per ogni produzione p: A β1β2...βn ( βi V N ), se p non è in CNF sono possibili due casi: (caso 1) per ogni i {1,...,n} (n 3), β i V N (caso 2) per qualche i {1,...,n} (n 2) β i V T.

26 (caso 1) per ogni i {1,...,n} (n 3) β i V N Aggiungiamo n-2 nuovi non terminali Z 1..Z n-2 e sostituiamo p con una catena di produzioni A β 1 Z 1 Z 1 β 2 Z 2 Z 2 β 3 Z 3... Z n-2 β n-1 β n (caso 2) per qualche i {1,...,n} (n 2) β i V T Per ogni β i V T aggiungiamo un non terminale Z i, sostituiamo Z i a β i in p ed aggiungiamo la produzione Z i β i Se n=2, allora non è necessario lavorare ulteriormente sulla produzione, altrimenti ci riconduciamo al (caso 1)

27 Esempio. Trasformazione in CNF della grammatica S asb S ab sostituiamo S ab con S AB, A a e B b sostituiamo S asb con S ASB sostituiamo S ASB con S AZ e Z SB

28 Forma Normale di Greibach Def. Una grammatica di tipo 2 è in forma normale di Greibach (GNF) se tutte le produzioni sono del tipo A aβ con β V N * NOTA BENE. La forma normale di Greibach ha varie applicazioni: ci permette di costruire l'automa che riconosce il linguaggio, ci permette di caratterizzare le classi di Grammatiche di Tipo 2 per le quali l'analisi sintattica è più efficiente.

29 Def. Chiamiamo A-produzioni tutte le produzioni del tipo: A β 1 β 2... β n Lemma (Sostituzione). Data una grammatica G le cui produzioni includono A α1bα2 B β 1 β 2... β n (α1, α2 V*) e non esistono altre B-produzioni, essa è equivalente alla grammatica G' in cui la produzione A α 1 Bα 2 è sostituita con A α 1 β 1 α 2 α 1 β 2 α 2... α 1 β n α 2

30 Dim. Banale; ogni stringa generata usando la derivazione A α 1 Bα 2 α 1 β i α 2 può essere generata con la derivazione A α 1 β i α 2 Esempio. Data la grammatica A abbc ceb B ad bb D dd d essa è equivalente alla grammatica A abadc cead abbbc cebb D dd d

31 Lemma (eliminazione della ricursione sinistra). Data una grammatica G le cui A-produzioni sono: A Aα 1... Aα m β 1... β n ed in cui nessuna delle β i inizia con A ad essa è equivalente la grammatica G' in cui la produzione A Aα 1... Aα m β 1... β n è sostituita con A β 1 B... β n B β 1... β n B α 1 B... α m B α 1... α m e

32 Dim. Ogni derivazione della G del tipo A Aα 1 Aα 2 α 1... Aα m...α 2 α 1 β j α m...α 2 α 1 è rimpiazzata da una derivazione della G' A β j B β j α m B β j α m α m-1 B... β j α m...α 2 B β j α m...α 2 α 1 e, viceversa, ogni derivazione della G' può essere rimpiazzata da una derivazione della G.

33 Teorema. Data una grammatica G di tipo 2 tale che ε L(G) esiste una grammatica G' in GNF con L(G)=L(G') Dim. Supponiamo che G sia in CNF. Procediamo nel seguente modo: stabiliamo arbitrariamente un ordinamento A 1,...,A m sui non terminali di G, eseguiamo, varie volte, le operazioni di sostituzione e di eliminazione della ricursione sinistra.

34 Algoritmo 0. Mettere la grammatica in CNF 1. Numerare i nonterminali A1,..., Am 2. begin for k:=1 to m do begin for j:=1 to k-1 do per ogni produzione del tipo A k A j α applica il Lemma di sostituzione end end date le A k -produzioni del tipo A k A k α1... A k αr β1... βs applica il Lemma di eliminazione della ricursione introducendo la corrispondente B k end

35 3. for k:=m-1 downto 1 do for j:=m downto k do per ogni produzione del tipo A k A j α applica il Lemma di sostituzione end end 4. for k:=1 to m for j:=1 to m do per ogni produzione del tipo B k A j α applica il Lemma di sostituzione end end

36 NOTA BENE. Al termine del Passo 2 avremo tutte produzioni dei seguenti tipi: a) A k A j γ con j>k b) A k aγ c) B k γ in cui a Σ, γ (VN {B1,...,Bk})* e γ non può iniziare per B. Inoltre, - se k = m le A k -produzioni sono tutte del tipo b, - se k = m-1 le A k -produzioni sono tutte del tipo b oppure del tipo A m-1 A m γ - se k = m-2 le A k -produzioni sono del tipo b oppure del tipo A m-2 Amγ o A m-2 A m-1 γ e così via.

37 A questo punto interviene il passo 3 nel quale sostituiamo A m nelle A m-1 -produzioni, A m ed A m-1 nelle A m-2 -produzioni e così via, ripetendo a ritroso le sostituzioni fino al nonterminale A1.

38 Infine, per quanto riguarda il passo 4, esaminiamo le produzioni dei nuovi non terminali B i. Il fatto che G sia in CNF ci garantisce che ogni produzione abbia a destra o un terminale o due non terminali. Quindi, quando effettuiamo il passo di eliminazione della ricursione, in cui per ogni produzione del tipo A k A k α aggiungiamo B k α e B k αb k α non è mai vuoto e non può iniziare con un nonterminale di tipo B. Infine, nel passo 4, per far comparire un terminale all'inizio della parte destra, possiamo riapplicare il passo di sostituzione alle B i -produzioni per ogni i.

39 Esempio. Data una grammatica in CNF determinare la grammatica equivalente in GNF S AB b A BS b B BA AS a Ordinamento: S,A,B Sostituiamo B AS con B bs e B BSS e l'insieme delle produzioni e' il seguente: S AB b A BS b B a bs BA BSS

40 A questo punto le sostituzioni previste dal passo 2 non sono più applicabili. Ci troviamo però dinanzi alla necessità di eliminare la ricursione a sinistra nelle B-produzioni. Introduciamo il nuovo nonterminale B'. L'insieme delle produzioni diventa: S AB b A BS b B a bs ab' bsb' B' A SS AB' SSB' in cui le produzioni sono del tipo a) Ak Ajγ con j>k S AB A BS b) Ak aγ S b A b B a bs ab' bsb' c) Bk γ B' A SS AB' SSB'

41 Ora applichiamo il passo 3 e sostituiamo B nella produzione A BS ottenendo A as bss ab's bsb's e quindi sostituiamo A nella produzione S AB ottenendo S asb bssb ab'sb bsb'sb bb

42 infine (passo 4) possiamo sostituire A ed S nella produzione B' A SS AB' SSB' ottenendo B' as bss ab's bsb's b asbs bssbs ab'sbs bsb'sbs bbs bs asb' bssb' ab'sb' bsb'sb' bb' asbsb' bssbsb' ab'sbsb' bsb'sbsb' bbsb' bsb' La grammatica in GNF sara' dunque: S asb bssb ab'sb bsb'sb bb A as bss ab's bsb's B a bs ab' bsb' B' as bss ab's bsb's b asbs bssbs ab'sbs bsb'sbs bbs bs asb' bssb' ab'sb' bsb'sb' bb' asbsb' bssbsb' ab'sbsb' bsb'sbsb' bbsb' bsb'

43 11.3 Automi a pila Che dispositivo occorre per riconoscere un linguaggio non contestuale? Introduciamo a tal fine un nuovo modello di calcolo non deterministico: l'automa a pila (o automa "push-down", PDA) Def. Automa a pila non deterministico (PDA) M=<Σ,Γ,Z 0,Q,q 0,F,δ> Σ alfabeto di input Γ alfabeto dei simboli della pila Z 0 Γ simbolo di pila iniziale Q insieme finito di stati q 0 Q stato iniziale Q F insieme di stati finali δ : Q (Σ {ε}) Γ P(Q Γ*) funzione di transizione.

44 Se abbiamo una regola di transizione δ(qi,a,a)={(qj,ba),(qh,ε)} essa significa che se nello stato interno q i, leggiamo a sul nastro ed A è il simbolo affiorante sulla pila, si realizzano, non deterministicamente, due transizioni; la prima sostituisce il simbolo affiorante sulla pila con la stringa di caratteri BA e si porta nel nuovo stato interno q j, la seconda sostituisce il simbolo affiorante sulla pila con la stringa vuota ε, in altre parole cancella A dalla pila, e si porta nel nuovo stato interno q h. NOTA BENE. La testina sul nastro di ingresso può anche non spostarsi. Questa situazione è espressa dicendo che la testina legge ε sul nastro di ingresso. Convenzione: se metto BA in pila, B è il nuovo simbolo affiorante.

45 Esempio. Automa a pila M che riconosce anbn M = <{a,b},{z 0,A 0,A},Z 0,{q 0,q 1,q2},q 0,{q2},δ> - il simbolo A serve a ricordare la presenza delle a - nello stato q 0 si memorizzano le a, nello stato q 1 si confrontano le b con ciò che si è memorizzato, lo stato q 2 è lo stato finale. NOTA BENE. In questo caso l'automa ha un comportamento sostanzialmente deterministico

46 q 0 A 0 Z 0 A 0 A a b a b a b AA 0 AA ε q 0 q 0 q 1 q 0 A 0 q 2 q 1 A 0 q 2 q 2 ε q 1

47 Def. Configurazione di automa a pila: tripla <q,x,γ> con q Q stato interno, x Σ* stringa da leggere in input e γ Γ* stringa attualmente in pila relazione di transizione per automa a pila: relazione binaria sulle configurazioni se vale: <q,x,γ> <q',x',γ'> ((x=ax' γ=zη γ'=ζη <q',ζ> δ(q,a,z)) (x=x' γ=zη γ'=ζη <q',ζ> δ(q,ε,z))) computazione: chiusura transitiva e riflessiva di, indicata con *

48 Def. Linguaggio accettato dall'automa a pila: due definizioni alternative accettazione per pila vuota: una stringa è accettata da un automa a pila M se e solo se al termine della scansione della stringa la pila è vuota N(M) = {x <q0,x,z0> *<q,ε,ε>} accettazione per stato finale: una stringa è accettata da un automa a pila M se e solo se al termine della scansione della stringa M si trova in uno stato finale L(M) = {x <q0,x,z0> *<q,ε,γ>,q F,γ Γ*} NOTA BENE. Si può dimostrare che le due definizioni sono equivalenti.

49 q0 A q0 q1 Z 0 A a b a b AA ε q0 q1 ε q1

50 Esempio. Automa a pila che riconosce wwr con w in (0+1)+ M=<{0,1},{R,Z,U},R,{q1,q2},q1,,δ> δ(q1,0,r)={<q1,zr>} δ(q1,1,r)={<q1,ur>} δ(q1,0,z)={<q1,zz>,<q2,ε>} δ(q1,0,u)={<q1,zu>} δ(q1,1,z)={<q1,uz>} δ(q1,1,u)={<q1,uu>,<q2,ε>} δ(q2,0,z)={<q2,ε>} δ(q2,1,u)={<q2,ε>} δ(q1,ε,r)={<q2,ε>} δ(q2,ε,r)={<q2,ε>}

51 Def. Automa a pila deterministico: M=<Σ,Γ,Z0,Q,q0,F,δ> è deterministico se σ Σ,Z Γ,q Q δ(q,σ,z) + δ(q,ε,z) 1 La condizione impone che 1. δ(q,σ,z) 1 2. se è definita una ε-transizione per un certo stato q e per un certo simbolo di pila Z, non deve essere definita un'altra transizione per q, Z NOTA BENE. La 2. impone che se M riconosce ε, allora è non deterministico. Si può ovviare a questa limitazione chiudendo tutte le strighe con un carattere speciale "$"

52 Automi a pila e linguaggi non contestuali Teorema. Se L(G) è non contestuale esiste un automa a pila M tale che L(G)=N(M) Dim. Sia G=<Σ,VN,P,S> tale che ε L(G) e supponiamo G in GNF. In questo caso il PDA ha un solo stato e i non terminali della grammatica possono essere usati come simboli di pila. Costruiamo M=<Σ,Γ,Z 0,Q,q 0,F,δ> Γ=VN, Z 0 =S, Q={q}, q 0 =q, F= Per ogni A aγ con γ VN* abbiamo che <q,γ> δ(q,a,a)

53 Per completare la dimostrazione dobbiamo mostrare che <q,x,s> *<q,ε,ε> se e solo se S *x (1) Dimostriamo per induzione su i che se <q,xu,s> i <q,u,α> allora S i xα i=1 se <q,xu,s> 1 <q,u,α> allora x Σ e dobbiamo avere una regola di transizione δ(q,x,s) = {<q, α>}, quindi, per costruzione, deve esistere in P una produzione S xα

54 i>1 x Σ*, x=ya, a Σ se <q,xu,s> i <q,u,α>, allora β tale che <q,yau,s> i-1 <q,au,β> 1 <q,u,α> Per ipotesi induttiva S i-1 yβ, inoltre <q,au,β> 1 <q,u,α> implica che in P esista una produzione A aη con β=aγ e α=ηγ Quindi S * yβ = yaγ yaηγ = yaα = xα

55 Vediamo ora che vale anche il viceversa (2) Dimostriamo per induzione su i che se S i xα allora <q,xu,s> i <q,u,α> i=1 se S 1 xα allora x Σ ed esiste in P una produzione S xα e quindi, per costruzione, esiste una regola di transizione δ(q,x,s) = {<q, α>} e quindi <q,xu,s> 1 <q,u,α> i>1 x Σ*, x=ya, a Σ Se S i xα allora esiste A aη in P tale che S i-1 yaγ yaηγ con x=ya e α=ηγ (derivazione sinistra). Per ipotesi induttiva <q,yv,s> i-1 <q,v,aγ>e e, in particolare, se v=au, <q,yau,s> i-1 <q,au,aγ>;

56 ma poiche' A aη allora <q,η> δ(q,a,a) <q,yau,s> i-1 <q,au,aγ> <q,u,ηγ>=<q,u,α>

57 (3) Rimuoviamo la limitazione che ε L(G). Aggiungiamo un nuovo stato q 0 iniziale definiamo la transizione δ(q 0,ε,Z 0 )=<q 0,ε> e la transizione δ(q 0,a,Z 0 )={<q,γ> <q,γ> δ(q,a,z 0 )}

58 S A B a b a b a b q SA SB ε ε q q q q A q B q

59 Possiamo anche dimostrare il risultato simmetrico. Teorema. Se un linguaggio è accettato da un automa a pila M mediante pila vuota, esiste una grammatica non contestuale G che lo genera, tale cioè che L(G) = N(M) Sia la costruzione della grammatica G a partire dal PDA M, sia la dimostrazione che L(G) = N(M) sono molto laboriosi. In sostanza si tratta di costruire una grammatica che "simula" un automa a pila. Noi non dimostreremo il risultato suddetto ma ne vedremo uno analogo successivamente, quando mostreremo come si può costruire una grammatica di Tipo 0 che "simula" una Macchina di Turing.

60 11.4 AMBIGUITA Problema fondamentale per i linguaggi di programmazione. Def. Una grammatica non contestuale G è ambigua se esiste una stringa x in L(G) derivabile con due diversi alberi di derivazione. Esempio. Data la grammatica E E+E E*E a la stringa a+a*a può essere derivata con alberi di derivazione diversi. NOTA BENE. Ci sono vari metodi per evitare l'ambiguità: introduzione di parentesi uso di notazione prefissa precedenza tra gli operatori

61 Esempio. La grammatica precedente può essere modificata in E (E+E) (E*E) a Esempio. La grammatica precedente può essere modificata in E + E E * E E a Esempio. La grammatica delle espressioni aritmetiche utilizza il concetto di precedenza e le parentesi quando le precedenze devono essere violate E E+T E-T T T T*F T/F F F (E) a

62 Def. Un linguaggio di tipo 2 è inerentemente ambiguo se tutte le grammatiche che lo generano sono ambigue. Esempio. Il linguaggio generato dalla grammatica: E E+E E*E a non è inerentemente ambiguo poichè ha una grammatica equivalente non ambigua: E a+e a*e a Esempio. Il linguaggio: {anbncm n,m 1} {ambncn n,m 1} è inerentemente ambiguo, infatti, qualunque grammatica per tale linguaggio genera le stringhe anbncn in due modi diversi.

63 NOTA BENE Il problema dell ambiguità di una grammatica e il problema della ambiguità di un linguaggio sono indecidibili.

64 Confronto tra linguaggi regolari e linguaggi non contestuali. Proprietà di chiusura. REG CF unione si si concatenazione si si stella si si intersezione si no complementazione si no Problemi di decisione. REG CF w in L? DEC DEC L=? DEC DEC L =? DEC DEC L1=L2? DEC INDEC L1 L2=? DEC INDEC

65 Linguaggi non contestuali deterministici Def. I linguaggi CF deterministici sono quelli riconosciuti da automi a pila deterministici. Perchè sono importanti i CF deterministici? I linguaggi CF possono essere analizzati in tempo lineare solo con PDA non deterministici. Se si utilizzano metodi deterministici il tempo può essere (nel caso generale) O(n3). I linguaggi di programmazione si vuole che siano analizzabili in tempo lineare (anzi, con una sola scansione) con metodi deterministici. Pertanto è necessario che i linguaggi di programmazione siano CF deterministici. NOTA BENE. Il problema della decidibilità dell'equivalenza degli automi a pila deterministici (e dei linguaggi relativi) è stato risolto positivamente dopo 40 anni.

Pumping lemma per i linguaggi Context-free

Pumping 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=

Подробнее

Linguaggi 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 Linguaggi di Programmazione Corso C Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali Nicola Fanizzi ([email protected]) Dipartimento di Informatica Università degli Studi di Bari Grammatiche

Подробнее

Linguaggi e Grammatiche Liberi da Contesto

Linguaggi e Grammatiche Liberi da Contesto N.Fanizzi-V.Carofiglio Dipartimento di Informatica Università degli Studi di Bari 22 aprile 2016 1 Linguaggi Liberi da Contesto 2 Grammatiche e Linguaggi Liberi da Contesto G = (X, V, S, P) è una grammatica

Подробнее

Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach

Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach Forme Normali A partire da una grammatica Context-free G è sempre possibile costruire una grammatica equivalente G ovvero L(G) = L(G ) che abbiano le produzioni in forme particolari, dette forme normali.

Подробнее

Definizione di Grammatica

Definizione 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

Подробнее

Forma Normale di Chomsky

Forma Normale di Chomsky 2. Eliminazione delle produzioni unitarie Forma Normale di Chomsky Una produzione si dice unitaria se è della forma A! B. Le produzioni unitarie in pratica consistono in una ridenominazione di variabili,

Подробнее

Le grammatiche formali

Le 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

Подробнее

PROLOG 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 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

Подробнее

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice l linguaggio universale Il linguaggio universale L u e l insieme delle stringhe binarie che codificano una coppia (M,w) dove w L(M). Esiste una TM U, detta TM universale, tale che L u = L(U). U ha tre

Подробнее

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 richiami teorici sulle grammatiche di Chomsky esercizivari esercizi su grammatiche ed espressioni regolari

Подробнее

Linguaggi Regolari e Linguaggi Liberi

Linguaggi 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

Подробнее

Espressività e limitazioni delle grammatiche regolari

Espressività 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

Подробнее

Grammatiche. 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 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

Подробнее

Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini

Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini 04 Giugno 2014 Indice 0.1 Automi.................................

Подробнее

Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis

Corso 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

Подробнее

LINGUAGGI E GRAMMATICHE FORMALI

LINGUAGGI E GRAMMATICHE FORMALI LINGUAGGI E GRAMMATICHE FORMALI I LINGUAGGI IN INFORMATICA Presenti in tutte le applicazioni Fondamentali nel software di sistema Paradigmatici nella teoria molti importanti problemi teorici son riconducibili

Подробнее

DAI NUMERI NATURALI AI NUMERI RAZIONALI

DAI NUMERI NATURALI AI NUMERI RAZIONALI DAI NUMERI NATURALI AI NUMERI RAZIONALI 1. L insieme dei numeri naturali Nel sistema assiomatico ZF, l Assioma dell infinito stabilisce che: Esiste un insieme A, i cui elementi sono insiemi e tale che

Подробнее

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

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

Подробнее

Linguaggi Regolari e Linguaggi Liberi

Linguaggi 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

Подробнее

Grammatiche context-free

Grammatiche 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

Подробнее

Proprieta dei Linguaggi regolari

Proprieta dei Linguaggi regolari Proprieta dei Linguaggi regolari Pumping Lemma. Ogni linguaggio regolare soddisfa il pumping lemma. Se qualcuno vi presenta un falso linguaggio regolare, l uso del pumping lemma mostrera una contraddizione.

Подробнее

Verificare 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

Verificare 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

Подробнее

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) DISPENSA N. 4 Sommario. Dimostriamo il Teorema di Completezza per il Calcolo dei Predicati del I ordine. 1. Teorema di Completezza Dimostriamo il Teorema

Подробнее

Espressioni regolari

Espressioni regolari spressioni Regolari Un FA (NFA o DFA) e una macchina a stati finiti che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo (o algebrico) per descrivere un linguaggio regolare.

Подробнее

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari Esercizi di Fondamenti di Informatica per la sicurezza tefano Ferrari 23 dicembre 2003 2 Argomento 1 Grammatiche e linguaggi Esercizi Es. 1.1 Definiti i linguaggi: L 1 = {aa, ab, bc, c} L 2 = {1, 22, 31}

Подробнее

Linguaggi formali e compilatori

Linguaggi formali e compilatori POLITECNICO DI MILANO Linguaggi formali e compilatori Appunti Stefano Invernizzi Anno accademico 2010-2011 Corso del prof. Angelo Morzenti Sommario Introduzione ai linguaggi... 5 Terminologia di base...

Подробнее

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi 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

Подробнее

GRAMMATICA FORMALE. Albero sintattico

GRAMMATICA 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

Подробнее

Grammatiche Parse trees Lezione del 17/10/2012

Grammatiche 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,

Подробнее

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

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

Подробнее

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

GRAMMATICHE 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

Подробнее

IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE.

IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE. IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE. PH. ELLIA Indice Introduzione 1 1. Divisori di un numero. 1 2. Il Teorema Fondamentale dell Aritmetica. 2 3. L insieme dei numeri primi è

Подробнее

Logica proposizionale

Logica proposizionale Logica proposizionale Proposizione: frase compiuta che è sempre o vera o falsa. Connettivi Posti in ordine di precedenza: not, and, or, implica, doppia implicazione Sintassi Le proposizioni sono costituite

Подробнее

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29 Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,

Подробнее

9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY

9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY 9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY Linguaggi e informatica @ Presenti in tutte le applicazioni e in tutte le fasi di uso di un computer: linguaggi di specifica, di programmazione, di scripting

Подробнее

Parser Bottom UP. Giuseppe Morelli

Parser Bottom UP. Giuseppe Morelli Parser Bottom UP Giuseppe Morelli Parser Bottom UP Un parser Bottom Up lavora costruendo il corrispondente albero di parsing per una data stringa di input partendo dalle foglie (bottom) e risalendo via

Подробнее

Introduzione ad alcuni sistemi di logica modale

Introduzione ad alcuni sistemi di logica modale Introduzione ad alcuni sistemi di logica modale Laura Porro 16 maggio 2008 1 Il calcolo proposizionale Prendiamo come primitivi i simboli del Calcolo Proposizionale (PC) tradizionale a due valori 1 : un

Подробнее

Linguaggi regolari e automi a stati finiti

Linguaggi regolari e automi a stati finiti utomi a stati finiti Gli automi a stati finiti sono usati come modello per Software per la progettazione di circuiti digitali. Analizzatori lessicali di un compilatore. Ricerca di parole chiave in un file

Подробнее

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Подробнее

Precorsi di matematica

Precorsi di matematica Precorsi di matematica Francesco Dinuzzo 12 settembre 2005 1 Insiemi Il concetto di base nella matematica moderna è l insieme. Un insieme è una collezione di elementi. Gli elementi di un insieme vengono

Подробнее

Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità

Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità Eserciziario per il corso di Verona, Settembre 24 Fondamenti dell Informatica: Linguaggi Formali e Calcolabilità Dott.ssa Isabella Mastroeni Dipartimento di Informatica Università degli Studi di Verona

Подробнее

ALGEBRE DI BOOLE. (d) x, y X x y oppure y x.

ALGEBRE DI BOOLE. (d) x, y X x y oppure y x. ALGEBRE DI BOOLE Un insieme parzialmente ordinato è una coppia ordinata (X, ) dove X è un insieme non vuoto e " " è una relazione binaria definita su X tale che (a) x X x x (riflessività) (b) x, y, X se

Подробнее

ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI

ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI ALGEBRA I: ASSIOMI DI PEANO E PROPRIETÀ DEI NUMERI NATURALI 1. GLI ASSIOMI DI PEANO Come puro esercizio di stile voglio offrire una derivazione delle proprietà elementari dei numeri naturali e delle operazioni

Подробнее

Unità Didattica 2 I Linguaggi di Programmazione

Unità Didattica 2 I Linguaggi di Programmazione Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche

Подробнее

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Analizzatore lessicale o scanner Dispensa del corso di Linguaggi e Traduttori A.A. 2005-2006 Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner,

Подробнее

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5.

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5. A.A. 2015-2016. CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5. Esercizio 5.1. Determinare le ultime tre cifre di n = 13 1625. (Suggerimento. Sfruttare il Teorema di Eulero-Fermat)

Подробнее

NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE

NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE ROBERTO GIAMBÒ 1. DEFINIZIONI E PRIME PROPRIETÀ In queste note saranno presentate alcune proprietà principali delle funzioni convesse di una variabile

Подробнее

LINGUAGGI 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 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

Подробнее

Maiuscole e minuscole

Maiuscole e minuscole Maiuscole e minuscole Abilità interessate Distinguere tra processi induttivi e processi deduttivi. Comprendere il ruolo e le caratteristiche di un sistema assiomatico. Riconoscere aspetti sintattici e

Подробнее

Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo.

Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo. Capitolo 3 Il campo Z n 31 Introduzione Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo 32 Le classi resto Definizione

Подробнее

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive

Подробнее

Grafi e gruppo fondamentale di un grafo

Grafi e gruppo fondamentale di un grafo Grafi e gruppo fondamentale di un grafo Note per il corso di Geometria IV (relative alla parte dei 6 crediti) Milano, 2010-2011, M.Dedò Come trovare un grafo omotopicamente equivalente all'oggetto 3d raffigurato

Подробнее

Capitolo 2 Linguaggi e Grammatiche

Capitolo 2 Linguaggi e Grammatiche Università degli Studi di Bologna Scuola di Ingegneria e Architettura Capitolo 2 Linguaggi e Grammatiche Corso di Laurea Magistrale in Ingegneria Informatica Anno accademico 2014/2015 Prof. ENRICO DENTI

Подробнее

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di rappresentazione per descrivere programmi e specifiche. ω-automi:

Подробнее

Sviluppi e derivate delle funzioni elementari

Sviluppi e derivate delle funzioni elementari Sviluppi e derivate delle funzioni elementari In queste pagine dimostriamo gli sviluppi del prim ordine e le formule di derivazioni delle principali funzioni elementari. Utilizzeremo le uguaglianze lim

Подробнее

L aritmetica degli insiemi infiniti Parte I

L aritmetica degli insiemi infiniti Parte I L aritmetica degli insiemi infiniti Parte I Stefano Baratella Versione L A TEX realizzata in collaborazione con Tullio Garbari 1 Prerequisiti La relazione di equipotenza tra insiemi. Definizione 1. Si

Подробнее

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia Insiemi, Numeri, Terminologia Prof. Simone Sbaraglia Corso Rapido di Logica Matematica La logica formale definisce le regole cui deve obbedire qualsiasi teoria deduttiva. Una proposizione e` una affermazione

Подробнее

TEN Radici quadrate modulo p e modulo p k. Radici quadrate modulo p, con p > 2.

TEN Radici quadrate modulo p e modulo p k. Radici quadrate modulo p, con p > 2. TEN 2008. Radici quadrate modulo p e modulo p k. Radici quadrate modulo p, con p > 2. Lemma 1. Sia n Z. Sia p > 2 un numero primo. (a) n è un quadrato modulo p se e solo se n p 1 2 1 mod p; (b) Sia n 0

Подробнее

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria. Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo

Подробнее

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Подробнее

Macchine di Turing: somma di due numeri

Macchine di Turing: somma di due numeri Informatica Teorica 2/2 M.Di Ianni Macchine di Turing: somma di due numeri Vogliamo definire una macchina di Turing che, presi in input due numeri n e m espressi in notazione binaria, calcola il valore

Подробнее

ESERCIZI SUI PUNTI DI NON DERIVABILITÀ TRATTI DA TEMI D ESAME

ESERCIZI SUI PUNTI DI NON DERIVABILITÀ TRATTI DA TEMI D ESAME ESERCIZI SUI PUNTI DI NON DERIVABILITÀ TRATTI DA TEMI D ESAME a cura di Michele Scaglia FUNZIONI DERIVABILI Sia f : domf R una funzione e sia 0 domf di accumulazione per domf Chiamiamo derivata prima di

Подробнее

IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero

IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero IL TEOREMA DEGLI ZERI Una dimostrazione di Ezio Fornero Il teorema degli zeri è fondamentale per determinare se una funzione continua in un intervallo chiuso [ a ; b ] si annulla in almeno un punto interno

Подробнее

Giovanna Carnovale. October 18, Divisibilità e massimo comun divisore

Giovanna Carnovale. October 18, Divisibilità e massimo comun divisore MCD in N e Polinomi Giovanna Carnovale October 18, 2011 1 Divisibilità e massimo comun divisore 1.1 Divisibilità in N In questa sezione introdurremo il concetto di divisibilità e di massimo comun divisore

Подробнее

Forme bilineari simmetriche

Forme bilineari simmetriche Forme bilineari simmetriche Qui il campo dei coefficienti è sempre R Definizione 1 Sia V uno spazio vettoriale Una forma bilineare su V è una funzione b: V V R tale che v 1, v 2, v 3 V b(v 1 + v 2, v 3

Подробнее

Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari.

Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari. Espressioni regolari descrivono i linguaggi regolari Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo per descrivere

Подробнее

La macchina universale

La macchina universale La macchina universale Una immediata conseguenza della dimostrazione è la seguente Corollario il linguaggio L H = {M (w) M rappresenta una macchina di Turing che si ferma con input w} sull alfabeto {0,1}*

Подробнее

Alcune Tracce dei Precedenti Esami del Dottorato di Siena in Logica Matematica ed Informatica Teorica

Alcune Tracce dei Precedenti Esami del Dottorato di Siena in Logica Matematica ed Informatica Teorica Alcune Tracce dei Precedenti Esami del Dottorato di Siena in Logica Matematica ed Informatica Teorica Raccolti e curati da Luca Spada Indice 1 Temi 1 1.1 Logica Matematica.......................... 1 1.2

Подробнее

Algoritmi e Strutture Dati. HeapSort

Algoritmi e Strutture Dati. HeapSort Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene

Подробнее