LINGUAGGI E GRAMMATICHE FORMALI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LINGUAGGI E GRAMMATICHE FORMALI"

Transcript

1 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 al problema dell'appartenenza di una stringa a un linguaggio GRAMMATICHE FORMALI Metodo di costruzione delle stringhe del linguaggio basato sulla riscrittura. Approccio generativo alla descrizione dei linguaggi Axel Thue studia i primi problemi di riscrittura Emil Post definisce sistemi di produzione (lavori del 1920) Markov definisce algoritmi basati su regole di riscrittura N. Chomsky introduce le grammatiche formali nell'ambito degli studi sul linguaggio naturale J. W. Backus e P. Naur introducono la BNF per descrivere la sintassi del linguaggio Algol. tipo 0 tipo 1 - Context Sensitive tipo 2 Context Free lineari tipo 3 - Regolari

2 Le Grammatiche di Chomsky Def. Una grammatica formale è un sistema G = <V T,V N, P, S> caratterizzato da: V T alfabeto finito di simboli detti terminali V N alfabeto finito di simboli detti non terminali (categorie sintattiche) Se indichiamo con V l insieme V T V N P detto insieme di produzioni, e un sottoinsieme finito del prodotto cartesiano: (V * V N V * ) x V * Un elemento < α, β > P si indica con α β S V N è detto assioma. Il linguaggio generato da una grammatica è l'insieme delle stringhe di terminali ottenibili, a partire dall assioma, con una sequenza finita di passi di riscrittura consistenti nell'applicazione delle regole di produzione. Es. La grammatica G = <{a, b, c},{s, B, C}, P, S> con P insieme delle seguenti produzioni: S as S B B bb B bc C cc C c genera il linguaggio: L(G) = {a n b m c h n 0, m, h 1} In forma più sintetica (derivata dalla BNF) si usa indicare: α β 1 con... α β n α β 1... β n Le produzioni precedenti si indicano allora con: S as B B bb bc C cc c

3 Def. Sia <φ, ψ> un elemento in (V * V N V * ) x V *. Si dice che ψ è derivabile direttamente (in un solo passo) da φ (e si scrive φ ψ ) se esistono in V * parole α, β, γ, δ tali che φ = γαδ, ψ = γβδ e si ha che α β P. Si parla di derivazione diretta (in un solo passo). Def. Sia <φ, ψ> un elemento in (V * V N V * ) V *. Si dice che ψ è derivabile da φ (e si scrive φ * ψ ) se esiste una sequenza di stringhe φ 1,..., φ n V * tali φ i φ i+1, i=1,..,n-1, con φ 1 = φ e φ n = ψ. Si parla di derivazione di ψ da φ. Inoltre per qualsiasi stringa φ V *, φ * φ. Def. Una stringa x V * tale che S *x è detta forma di frase. Def. Il linguaggio generato da G è l'insieme delle forme di frase costituite di soli terminali cioè: L(G) = {x x V T * e S *x }. N. B. Non è detto che una derivazione porti ad una stringa del linguaggio; essa può portare ad una forma di frase in cui non si può più applicare alcuna produzione. Def. Due grammatiche G1 e G2 si dicono equivalenti se L(G1 ) = L(G2). Es. La grammatica G = < {a, b},{s, A}, P, S > con le produzioni: S aa b A as e la grammatica G = < {a, b},{s, A}, P, S > con le produzioni: S Ab b A aaa aa e la grammatica G = < {a, b},{s, A}, P, S > con le produzioni: S Ab A Aaa ε generano lo stesso linguaggi {an b n 0 e pari} e quindi sono equivalenti. Es. G = <{a, b, c},{s, A, B, C}, P, S> con le produzioni: 1 S asbc 2 S abc 3 CB BC 4 ab ab 5 bb bb 6 bc bc 7 cc cc genera il linguaggio {a n b n c n n 1}.

4 La seguente derivazione genera 'aaabbbccc' : S (1) asbc (1) aasbcbc (2) aaabcbcbc (3) aaabcbbcc (3) aaabbcbcc (3) aaabbbccc (4) aaabbbccc (5) aaabbbccc (5) aaabbbccc (6) aaabbbccc (7) aaabbbccc (7) aaabbbccc N.B. se non si completano gli scambi si può arrivare alla forma di frase aaabcbbcc alla quale non si applica alcuna produzione. Es. La grammatica G = <{a, b, c},{s, A}, P, S> con le produzioni: S asc aac A bac ε genera {a n b m c n+m n 1, m 0}. Es. La grammatica G = <{a, b, c},{s, A}, P, S> con con le produzioni: S Ab A Sa genera Λ. CLASSI DI GRAMMATICHE DI CHOMSKY di tipo 0 di tipo 1 contestuali (context sensitive: CS) di tipo 2 non contestuali (context free: CF) di tipo 3 regolari

5 Def. Def. Le grammatiche di Chomsky di tipo 0 sono basate sulle produzioni più generali, del tipo: α β con α V * V N V * β V * N.B. Le produzioni di tipo 0 possono accorciare le forme di frase. Def. I linguaggi di tipo 0 sono i linguaggi generati da grammatiche di tipo 0. Def. Le grammatiche di Chomsky di tipo 1 sono basate su produzioni del tipo: α β con α V * V N V * β V + e con α β N.B. Le produzioni di tipo 1 non riducono la lunghezza delle forme di frase. Def. I linguaggi di tipo 1 (contestuali) sono i linguaggi generati da grammatiche di tipo 1. - Es. Il linguaggio appena generato {a n b n c n n 1} con una grammatica di tipo 1può anche essere generato dalla seguente grammatica di tipo 0 con produzioni: S asbc CB BC SB bf FB bf FC cg GC cg G ε Il linguaggio è anche di tipo 1 perchè la precedente grammatica è di tipo 1. Non è invece generabile con grammatiche di tipo 2 (ma non lo dimostremo). Def. Le grammatiche di Chomsky di tipo 2 sono basate su produzioni del tipo: A β con A V N β V + Def. I linguaggi di tipo 2 (context free o non contestuali) sono i linguaggi generati da grammatiche di tipo 2. Una derivazione in questo tipo di grammatiche è rappresentabile con un albero di derivazione.

6 Es. Il linguaggio {a n b n n 1} è di tipo 2 in quanto può essere generato dalla grammatica con le produzioni: S asb ab Es. Grammatica CF che genera il linguaggio delle parentesi ben bilanciate: B () BB (B) Dare una derivazione per la stringa di parentesi: ()((()())). Es. Grammatica CF che genera tutte le stringhe palindrome sull'alfabeto {0, 1}. P P0 1P1 Es. Grammatica che genera semplici espressioni aritmetiche, con operatori in {+, }, parentesi tonde, ed operandi scritti con caratteri in {a,b,0,1} e che iniziano con la lettera a oppure b: E I E+E E E (E) I a b Ia Ib I0 I1 Bastano due variabili (E per rappresenta le espressioni, I gli identificatori). Il linguaggio di I è il linguaggio definito dalll espressione regolare: (a+b)(a+b+0+1)* Derivazione ( a sinistra ) della stringa a (a + b00): E E E I E a E a (E) a (E+E) a (I+E) a (a+e) a (a+i) a (a+i0) a (a+i00) ) a (a+b00) Esiste anche una derivazione a destra, che è la seguente: E E E E (E) E (E+E) E (E+I) E (E+I0) E (E+I00) E (E+b00) E (I+b00) E (a+b00) I (a+b00) a (a+b00) Una derivazione individua un albero sintattico. Le due precedenti individuano lo stesso albero. L esistenza di derivazioni distinte per una stessa stringa non comporta di per sè un male per la grammatica se gli alberi sintattici sono identici. Ma se in una grammatica esistono alberi sintattici distinti con lo stesso prodotto (la grammatica viene detta ambigua) questo è problematico. Ad es. la forma sentenziale E +E E ha due alberi sintattici distinti: E E + E E + E E E E E E + E E

7 Una grammatica non ambigua (e non è affatto evidente che lo sia) che genera le espressioni di quest'ultimo esempio ha le prime produzioni sostituite dalle seguenti: E E+T T T T F F F (E) I (T non è più scomponibile per il +, F non lo è per il * ed il +, Vedi HMU). Non esiste un algoritmo che dice se una grammatica CF è ambigua. Esistono linguaggi CF che sono inerentemente ambigui, cioè ogni grammatica CF che li genera è ambigua. In grammatiche non ambigue le derivazioni non sono necessariamente uniche ma si può dimostrare che le derivazioni sinistre ( e quelle destre) sono uniche. Prima di definire le grammatiche di tipo 3 riconsideriamo quelle di tipo 1. Nell'originaria formulazione data da Chomsky le grammatiche di tipo 1 sono definite con produzioni della forma più restrittiva (contestuale secondo Chomsky): α β con α = φ1α φ2, β = φ1γφ2, Α V N, φ1, φ2 V *, γ V + Quindi, se φ1 1 o φ2 1, la produzione esprime il fatto che il non terminale A viene rimpiazzato dalla stringa γ solo se appare nel contesto delle stringhe φ1 e φ2. Da qui l origine del nome. Oss. Nella grammatica di tipo 1 che genera il linguaggio {a n b n c n n 1} le produzioni: ab ab, bb bb, bc bc, cc cc e le produzioni: S asbc abc sono contestuali secondo Chomsky, mentre CB BC non lo è. Teorema. Le grammatiche di tipo 1 e le grammatiche con produzioni contestuali secondo Chomsky generano la stessa classe di linguaggi. Dim. i) Le produzioni contestuali di Chomsky sono di tipo 1. ii) Le produzioni di tipo 1 possono essere trasformate in produzioni contestuali di Chomsky. Prima occorre ridursi ad una grammatica con produzioni senza simboli terminali a sinistra (sostituendo simboli terminali con non terminali ed opportune produzioni, come ad es. sostituendo a con A e poi aa b con AA b e A a).

8 Poi si procede come illustrato nel seguente esempio dove la produzione: CBA EFGHT puo' essere trasformata nella sequenza: CBA CBX CBX EBX EBX EFX EFX EFGHT Def. Le grammatiche di Chomsky di tipo 3 sono basate su produzioni del tipo: con a VT, A, B VN. A ab oppure A a Def. I linguaggi di tipo 3 (regolari) sono quelli generati da grammatiche di tipo 3. Le grammatiche di tipo 3 sono lineari destre (LD). Lineari perchè nel lato destro di ogni produzione compare al più un solo metasimbolo; destre perchè il metasimbolo compare a destra dell'unico simbolo terminale. Si possono anche definire grammatiche di tipo 3 lineari sinistre (LS) con produzioni del tipo: A Ba oppure A a con a VT, A, B VN. Es. Il linguaggio {a n b n 0} è di tipo 3 in quanto è generato dalla grammatica (LD) con le produzioni: S as b Es. Il linguaggio {a n b n 0} puo' essere anche generato da una grammatica lineare sinistra con le seguenti produzioni: S Tb b T Ta a Teorema. I linguaggi generabili con grammatiche LD e LS coincidono con la classe dei linguaggi regolari.

9 LINGUAGGI LINEARI I linguaggi lineari sono linguaggi CF generati da grammatiche lineari, cioè grammatiche dove la parte destra di ogni produzione contiene al più un metasimbolo. Es. La grammatica S asb c che genera {a n cb n n 0} è lineare. I linguaggi lineari sono un sottoinsieme di quelli CF e un soprainsieme di quelli regolari. Def. Un linguaggio è strettamente di Tipo n se esiste una grammatica di tipo n che lo genera e non esiste nessuna grammatica di tipo m>n che lo genera. Es. Il linguaggio {a n b n c n n 1} è strettamente di tipo 1. Il linguaggio {a n b n n 1} è strettamente di tipo 2. N.B.. La dimostrazione dei suddetti risultati richiede tecniche che discuteremo più avanti. Anche per mostrare linguaggi strettamente di tipo 0 abbiamo bisogno di introdurre ulteriori concetti. Vedremo anche che se L è un linguaggio generato da una grammatica ambigua di tipo 3, esiste una grammatica di tipo 3 non ambigua che genera L. Basterà costruire l'automa deterministico che riconosce L; la relativa grammatica non è ambigua.

10 FORMA NORMALE DI BACKUS-NAUR (BNF) (introdotta da Backus e Naur per dare la definizione sintattica dell Algol) La BNF è una notazione per grammatiche CF resa più espressiva e succinta con alcuni accorgimenti, vagamente ispirati alle espressioni regolari. Le seguenti produzioni con la notazione delle grammatiche CF: <sequenza istruzioni> <istruzione> <istruzione> ; <sequenza istruzioni> <istruzione if> if <predicato> then <proposizione> else <proposizione> if <predicato> then <proposizione> sarebbero scritte in BNF così: <sequenza istruzioni> ::= <istruzione> {; <istruzione>} <istruzione if> ::= if <predicato> then <proposizione> [ else <proposizione> ] Altre produzioni con la notazione delle grammatiche CF: A ba a A x xy xyy xyyyy A xy y a xu xv xy sarebbero scritte in BNF così: A::= {b}a * A::= x{y} 4 <= 4 A::= [x]y A::= x (u,v,y) (Esaminare i cinque accorgimenti sul libro). 1. A <espressione_per_a> 2. ::= 3. {. } indica iterazione illimitata ( 0 o più volte) {.} n indica iterazione per al più n volte 4. [.] indica la possibilità o meno 5. (... ) indica la scelta

11 Es. Identificatori del Pascal <identificatore>::=<alfabetico> {<alfanumerico>} n-1 <alfanumerico>::=<alfabetico> <cifra> <cifra>::= <alfabetico>::=a B... Z a... z Es. Frammenti del linguaggio Pascal 1. <programma_pascal> ::= <intestazione> ; <blocco> 2. <intestazione> ::= program <identificatore> [<lista par>] 3. <lista par> ::= <lista identif> 4. <lista identif> ::= <identificatore> {;<identificatore>} 5. <blocco> ::= [<sezione dichiarazione etichette>] [<sezione definizione costanti>] [<sezione definizione tipi>] [<sezione dichiarazione variabili>] [<sezione dichiarazione procedure e funzioni>] [<sezione istruzioni>]... <sezione definizione tipi>::= type <identificatore> =<tipo> {;<identificatore> = <tipo>} <proposizione-while> ::= while <predicato> do <proposizione> <proposizione-if> ::= if <predicato> then <proposizione> else <proposizione>... <predicato>::=<espressione-booleana> <proposizione>::=<proposizione-semplice> <proposizione-composta> <proposizione-composta>::= begin <proposizione>{;<proposizione>} end <proposizione-semplice>::= <assegnazione> <proposizione-while> <proposizione-if> <assegnazione>::= <identificatore> := <espressione>

12 ε-produzioni Con grammatiche di tipo 1, 2, 3 non è possibile generare la parola vuota ε. Come possiamo generare ε, se necessario? Basta aggiungere S ε, ma solo se S non compare a destra di alcuna produzione. Se invece S compare a destra di qualche produzione bisogna essere più accorti perchè potrebbero venir generate parole nuove. Ad es. le produzioni seguenti generano stringhe del tipo ab*bb. S Ub U ab S Se aggiungessimo S ε genereremmo, oltre alla stringa vuota, anche quelle del tipo bb*. Vedremo che possiamo adottare una classifica delle grammatiche di Chomsky così modificata: nelle grammatiche di tipo 1 la presenza di ε-produzioni è consentita solo sull assioma, a patto che non appaia a destra di una produzione. nelle grammatiche di tipo 2 e 3 è consentita la presenza di ε-produzioni su qualunque metasimbolo. Th. Se L(G) è di tipo 1, 2 o 3 è possibile modificare G in modo che: ci sia un'unica ε-produzione applicabile all'assioma S generi L {ε} le altre produzioni rimangano rispettivamente di tipo 1, 2 o 3. Dim. Se G è di tipo 1 o 2 basta aggiungere alle sue produzioni le produzioni S' ε, S' S e considerare S' come nuovo assioma di G. Se G è di tipo 3 basta aggiungere la produzione S' ε, considerare S' come nuovo assioma di G ed aggiungere per ogni produzione del tipo S ab la produzione S' ab. Es. - Data la grammatica di tipo 2 G = <VT, V N, P, S> S asb ab abbiamo G' = <V T, V N {S'}, P', S'> S' ε S S asb ab

13 - Data la grammatica di tipo 3 G = <V T, V N, P, S> S as b abbiamo G '= <V T, V N {S'}, P', S'> S' ε as b S as b Cosa accade se le ε-produzioni sono ammesse non solo sull assioma ma anche in posizione più generale? Nel caso di grammatiche di tipo 1 esse diventano strettamente più potenti, equivalenti alle grammatiche di tipo 0. Esempio. Sia G di tipo 0 con una sola produzione α β con α > β, ad esempio la produzione AB C; usando un nuovo simbolo non terminale X si può sostituire la produzione con AB CX, X ε ottenendo una grammatica G' di tipo 1 con una ε-produzione su X, equivalente a G. Teorema. Data una grammatica G di tipo 0 esiste una grammatica G equivalente a G ottenuta estendendo una grammatica di tipo 1 con opportune ε-produzioni. Dim. Da G=<V T, V N, P,S> di tipo 0 ricaviamo una grammatica equivalente G'=<V T,V N {X}, P', S> con X V N e P' uguale a P ma con in più, al posto di ogni produzione α β con α > β, la produzione α βx...x, con X ripetuta α - β volte, ed infine la produzione X ε. Al contrario delle grammatiche di tipo 1, per le grammatiche di tipo 2 e 3 l aggiunta di ε-produzioni non modifica il potere generativo delle grammatiche, cioè non si amplia la classe di linguaggi che possono essere generati con produzioni di tipo 2 e 3, rispettivamente, e l'eventuale uso di ε-produzioni. Il prossimo teorema dimostra infatti che data una grammatica di tipo 2 o 3 estesa con ε-produzioni, ne possiamo costruire una equivalente, dello stesso tipo, che usa ε- produzioni solo a partire dall assioma (nel caso che ε appartenga al linguaggio) o non ne usa affato (in caso contrario). Esempi su cui riflettere. 1- La grammatica regolare S bx ab B cx X ε si può modificare in S b ab B c

14 2- La grammatica regolare S ba A aa ε si può modificare in S ba b A aa a In entrambi i casi il linguaggio non contiene ε. 3- Nella grammatica CF S AB ab B A ab ab B cx X X ε abbiamo S AB ab B A ab ab B c ε e successivamente S AB A ab a B ε A ab ab a B c In questo caso il linguaggio contiene ε. Negli esempi illustratile ε-produzioni migrano verso l'assioma e possono verificarsi due casi: o una ε-produzione sopravvive (ed allora il linguaggio generato contiene ε) oppure ogni ε-produzione scompare (e quindi il linguaggio non contiene ε). Teorema 2.3 (2.2). Se G è grammatica di tipo 3 (risp. 2) estesa con ε produzioni, esiste una grammatica G di tipo 3 (risp. 2) tale che L(G ) = L(G) {ε}. Dim.(completa sul libro a pag 70 (tipo3) e 67 (tipo 2)). Dim. (tipo 3). Osserviamo subito che ε L(G) S ε è una produzione di G (una qualunque altra produzione genererebbe un carattere terminale). Allora le produzioni di G includono tutte le produzioni non vuote di G; poi, per ogni produzione vuota A ε (con A diverso da S) consideriamo tutte le produzioni di G del tipo B aa ed inseriamo nelle produzioni di G la produzione B a. Dim. (tipo 2). - si determina l insieme N di variabili dalle quali si può derivare ε. - si nota che ε L(G) S N - per ogni produzione non vuota A α di G, si inserisce la produzione in quelle di G' e poi si procede così:

15 .. se nessun simbolo di α appartiene ad N non si fa altro;.. se invece α contiene k simboli di N, nelle produzioni di G vanno inserite tutte le produzioni A β, con β ottenuto cancellando in α uno dei sottoinsiemi dei k simboli (tranne quando k = α e si genererebbe A ε). Ad es. se esiste in P la produzione A BCBA ed N ={S, A, B} allora vanno inserite in P' le produzioni : A BCBA CBA BCA BCB CA CB BC C Es G ha produzioni: S A SSa A B Ab ε B S ab aa G ha N = { A, S, B} e produzioni: S A SSa Sa a A B Ab b B S ab aa a. Una grammatica equivalente a G è dunque una con in più le produzioni: T ε S ed assioma T. Le due dimostrazioni precedenti (per induzione sulla lunghezza delle derivazioni) si basano sul fatto che per ogni A V N e ω V + A G * ω A G' ω In conclusione possiamo adottare una classifica delle grammatiche di Chomsky con la seguente modifica: nelle grammatiche di tipo 1 la presenza di ε-produzioni è consentita solo sull assioma, a patto che non appaia a destra di una produzione. nelle grammatiche di tipo 2 e 3 è consentita la presenza di ε-produzioni su qualunque metasimbolo.

16 RICONOSCIMENTO DI LINGUAGGI In generale il problema del riconoscimento di un linguaggio L su un alfabeto è il problema decisionale di riconoscere se data una stringa x * essa appartiene ad L oppure no. I linguaggi di tipo 3 sono riconosciuti in tempo lineare da dispositivi con memoria costante (automi a stati finiti). I linguaggi di tipo 2 (CF) sono riconosciuti in tempo lineare da dispositivi nondeterministici dotati di una memoria gestita come una pila (automi a pila non deterministici). I linguaggi di tipo 1 (CS) sono riconosciuti da dispositivi nondeterministici con memoria che cresce linearmente con la lunghezza della stringa da esaminare (automi "linear bounded" non deterministici ). Per alcuni linguaggi strettamente di tipo 0 è invece possibile che non esista un algoritmo di riconoscimento ma esiste comunque una procedura che riconosce le stringhe del linguaggio ma se una stringa non fa parte del linguaggio non è detto che la procedura termini riconoscendo al non appartenenza. I dispositivi che consentono di riconoscere o di attuare un procedimento di semiriconoscimento per i linguaggi di tipo 0 sono le macchine di Turing. Ricordiamoci che esistono infiniti linguaggi cui non corrisponde alcuna grammatica! Diciamo che un linguaggio è decidibile se ha un algoritmo che lo riconosce, cioè un algoritmo che calcola la sua funzione caratteristica. Diciamo che un linguaggio è semidecidibile se ha una procedura di semiriconoscimento. Proposizione. Un linguaggio di tipo 1 è decidibile. Proposizione. Un linguaggio di tipo 0 è semidecidibile (vale anche l'inverso). DECIDIBILITA DI PROBLEMI Un problema decisionale definito su un insieme di istanze, alcune dotate di una proprietà (istanze yes) altre no (istanze no), è detto decidibile se esiste un algoritmo che per ogni istanza del problema sa decidere correttamente se è una istanza yes oppure una istanza no. In caso contrario il problema è detto indecidibile. E detto semidecidibile se esiste un algoritmo che sulle istanze yes del problema sa rispondere correttamente.

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI PARTE I RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI Linguaggi regolari Linguaggi non contestuali Automi 1 1.1 I LINGUAGGI IN INFORMATICA @ Presenti a vari livelli di applicazione linguaggi di

Dettagli

Quiz sui linguaggi CF

Quiz 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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Corso 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

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

Dettagli

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

Dettagli

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.

Dettagli

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

Dettagli

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 (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Grammatiche

Dettagli

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,

Dettagli

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,

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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=

Dettagli

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.

L 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,/}

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

Espressioni Regolari

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

Dettagli

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

Dettagli

Università degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java

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

Dettagli

Informatica Teorica. linguaggi non contestuali

Informatica Teorica. linguaggi non contestuali Informatica Teorica linguaggi non contestuali di tipo 2 context free (CF) 1 linguaggi non contestuali molte frasi in linguaggio naturale hanno una struttura sintattica non contestuale esempio: soggetto

Dettagli

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

Dettagli

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese

LA 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

Dettagli

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. I linguaggi formali. Giacomo PISCITELLI

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. I linguaggi formali. Giacomo PISCITELLI Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2011-2012 Linguaggi Formali e Compilatori I linguaggi formali Giacomo PISCITELLI Traduttori Un traduttore è un programma che effettua la traduzione

Dettagli

Proprietà dei linguaggi regolari

Proprietà dei linguaggi regolari Proprietà dei linguaggi regolari Argomenti della lezione Relazione tra automi, grammatiche ed espressioni regolari Pumping lemma per i linguaggi regolari Equivalenza di automi a stati finiti Le seguenti

Dettagli

Linguaggi Sintassi e Semantica

Linguaggi Sintassi e Semantica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 4 Linguaggi Sintassi e Semantica Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Linguaggi - Sintassi

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

L elaborazione del linguaggio naturale

L elaborazione del linguaggio naturale L elaborazione del linguaggio naturale fondamenti teorici dell intelligenza artificiale: la capacità di elaborare simboli è alla base del comportamento intelligente. L esempio di elaborazione simbolica

Dettagli

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

Dettagli

Propedeutico di matematica Centro Multimediale Montiferru. Lezione 1. Gli insiemi

Propedeutico di matematica Centro Multimediale Montiferru. Lezione 1. Gli insiemi Lezione 1 Gli insiemi Definizione: Un insieme è una collezione di oggetti aventi certe caratteristiche in comune. Gli oggetti si definiscono elementi dell insieme. Esempi: Insieme delle lettere dell alfabeto,

Dettagli

Un po di storia sui linguaggi

Un po di storia sui linguaggi 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

Dettagli

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

Dettagli

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 proprietà delle grammatiche non contestuali pumping lemma forme normali notazioni sul livello degli

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

Linguaggi di Markup. Violetta Lonati. Dipartimento Scienze dell Informazione Università degli Studi di Milano

Linguaggi di Markup. Violetta Lonati. Dipartimento Scienze dell Informazione Università degli Studi di Milano Linguaggi di Markup Violetta Lonati a Dipartimento Scienze dell Informazione Università degli Studi di Milano a E garantito il permesso di copiare, distribuire e/o modificare i materiali cont enuti in

Dettagli

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}

Dettagli

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

Dettagli

Corso di Programmazione Linguaggi di Programmazione

Corso 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

Dettagli

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,

Dettagli

INSIEMI E RELAZIONI. 1. Insiemi e operazioni su di essi

INSIEMI E RELAZIONI. 1. Insiemi e operazioni su di essi INSIEMI E RELAZIONI 1. Insiemi e operazioni su di essi Il concetto di insieme è primitivo ed è sinonimo di classe, totalità. Sia A un insieme di elementi qualunque. Per indicare che a è un elemento di

Dettagli

Linguaggi formali e compilazione

Linguaggi 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:

Dettagli

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

Dettagli

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione Problemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa uello che ci aspettiamo. E facile vedere che il programma Ma il programma in Fig. 8.2 del libro?

Dettagli

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

Dettagli

3. OPERAZIONI TRA CLASSI 2

3. OPERAZIONI TRA CLASSI 2 INSIEMI 1. Elementi e Classi Lo scopo di questo primo capitolo è di introdurre in maniera rigorosa le nozioni di classe e insieme, e di studiarne le principali proprietà. Nel seguito useremo il termine

Dettagli

Cenni di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B)

Cenni di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B) Cenni di programmazione ricorsiva Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B) Corso di Laurea in Informatica Università di Pisa A.A. 2009/10 R. Barbuti, P. Mancarella Indice

Dettagli

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

Dettagli

Insiemi. Esempio1: i ragazzi del corso di agraria nati nel 1990 formano un insieme.

Insiemi. Esempio1: i ragazzi del corso di agraria nati nel 1990 formano un insieme. Insiemi Definizione: Definizione: Un Un insieme insieme è è una una collezione collezione di di oggetti oggetti individuati individuati da da una una Determinata Determinata specificazione. specificazione.

Dettagli

Corso di Laurea in Fisica. Geometria. a.a Canale 3 Prof. P. Piazza Magiche notazioni

Corso di Laurea in Fisica. Geometria. a.a Canale 3 Prof. P. Piazza Magiche notazioni Corso di Laurea in Fisica. Geometria. a.a. 23-4. Canale 3 Prof. P. Piazza Magiche notazioni Siano V e W due spazi vettoriali e sia T : V W un applicazione lineare. Fissiamo una base B per V ed una base

Dettagli

Forme differenziali lineari e loro integrazione

Forme differenziali lineari e loro integrazione Forme differenziali lineari e loro integrazione Integrazione di una forma differenziale in due variabili Siano L(, ) e ( ) consideriamo l espressione M, due funzioni definite e continue in un insieme connesso

Dettagli

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2015/2016 Linguaggi formali e compilazione Che cosa è un compilatore Un compilatore è un traduttore. Questo vuol dire un programma che:

Dettagli

Concentriamo la nostra attenzione sull insieme dei numeri razionali Q. In Q sono definite

Concentriamo la nostra attenzione sull insieme dei numeri razionali Q. In Q sono definite Lezioni del 22 e 24 settembre. Numeri razionali. 1. Operazioni, ordinamento. Indichiamo con N, Z, Q gli insiemi dei numeri naturali, interi relativi, e razionali: N = {0, 1, 2,...} Z = {0, ±1, ±2,...}

Dettagli

Parole note, nuovi significati: linguaggio, determinismo e infinito

Parole note, nuovi significati: linguaggio, determinismo e infinito Parole note, nuovi significati: linguaggio, determinismo e infinito Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario Filosofico

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del

Dettagli

Presentazioni di gruppi: generatori e relazioni

Presentazioni di gruppi: generatori e relazioni Presentazioni di gruppi: generatori e relazioni Note per il corso di Geometria 4 (relative alla parte dei 6 crediti) Milano, 2011-2012, M.Dedò N.B. Quanto segue si appoggia fortemente al testo [M] consigliato

Dettagli

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Descrizione 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

Dettagli

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

Dettagli

Università degli Studi di Palermo Facoltà di Economia. Dipartimento di Scienze Economiche, Aziendali e Statistiche. Appunti del corso di Matematica

Università degli Studi di Palermo Facoltà di Economia. Dipartimento di Scienze Economiche, Aziendali e Statistiche. Appunti del corso di Matematica Università degli Studi di Palermo Facoltà di Economia Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 03 - I Numeri Reali Anno Accademico 2015/2016 M. Tumminello,

Dettagli

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar I metodi formali dell Analisi Lessicale: Le Espressioni Regolari (ER) N.Fanizzi - V.Carofiglio 6 aprile 2016 1 Introduzione 2 3 4 5 Espressioni Regolari Dato un alfabeto finito X, una espressione regolare

Dettagli

Elementi di Algebra Lineare Spazi Vettoriali

Elementi di Algebra Lineare Spazi Vettoriali Elementi di Algebra Lineare Spazi Vettoriali Antonio Lanteri e Cristina Turrini UNIMI - 2015/2016 Antonio Lanteri e Cristina Turrini (UNIMI - 2015/2016) Elementi di Algebra Lineare 1 / 37 index Spazi vettoriali

Dettagli

Le grammatiche formali

Le grammatiche formali Le grammatiche formali Le grammatiche formali costituiscono la base di numerose teorie ed applicazioni. Sul piano teorico costituiscono la base della teoria della grammatica generativa di Chomsky, come

Dettagli

DISPENSE SU TEORIA DEGLI INSIEMI E NUMERI

DISPENSE SU TEORIA DEGLI INSIEMI E NUMERI FACOLTA' DI ECONOMIA UNIVERSITA DELLA CALABRIA Corso di Modelli Matematici per l Azienda a.a. 2011-2012 DISPENSE SU TEORIA DEGLI INSIEMI E NUMERI Prof. Fabio Lamantia INSIEMI INSIEME= gruppo di oggetti

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

Massimo e minimo limite di successioni

Massimo e minimo limite di successioni Massimo e minimo limite di successioni 1 Premesse Definizione 1.1. Definiamo R esteso l insieme R = R { } {+ }. In R si estende l ordinamento tra numeri reali ponendo < a < +, a R. In base a tale definizione,

Dettagli

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

Dettagli

Nozioni introduttive e notazioni

Nozioni introduttive e notazioni Nozioni introduttive e notazioni 1.1 Insiemi La teoria degli insiemi è alla base di tutta la matematica, in quanto ne fornisce il linguaggio base e le notazioni. Definiamo un insieme come una collezione

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

2. I numeri reali e le funzioni di variabile reale

2. I numeri reali e le funzioni di variabile reale . I numeri reali e le funzioni di variabile reale Introduzione Il metodo comunemente usato in Matematica consiste nel precisare senza ambiguità i presupposti, da non cambiare durante l elaborazione dei

Dettagli

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

Dettagli

Intelligenza Artificiale. Logica proposizionale: calcolo automatico

Intelligenza Artificiale. Logica proposizionale: calcolo automatico Intelligenza Artificiale Logica proposizionale: calcolo automatico Marco Piastra Logica formale (Parte 3) - Parte 3 Calcolo automatico Forme normali ed a clausole Risoluzione e refutazione Forward chaining

Dettagli

1 IL LINGUAGGIO MATEMATICO

1 IL LINGUAGGIO MATEMATICO 1 IL LINGUAGGIO MATEMATICO Il linguaggio matematico moderno è basato su due concetti fondamentali: la teoria degli insiemi e la logica delle proposizioni. La teoria degli insiemi ci assicura che gli oggetti

Dettagli

Massimi e minimi vincolati

Massimi e minimi vincolati Massimi e minimi vincolati Vedremo tra breve un metodo per studiare il problema di trovare il minimo e il massimo di una funzione su di un sottoinsieme dello spazio ambiente che non sia un aperto. Abbiamo

Dettagli

= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con

= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con Definizione di matrice Una matrice (di numeri reali) è una tabella di m x n numeri disposti su m righe e n colonne. I numeri che compaiono nella tabella si dicono elementi della matrice. La loro individuazione

Dettagli

Capitolo 1 Vettori applicati e geometria dello spazio

Capitolo 1 Vettori applicati e geometria dello spazio Capitolo 1 Vettori applicati e geometria dello spazio Marco Robutti Facoltà di ingegneria Università degli studi di Pavia Tutorato di geometria e algebra lineare Anno accademico 2014-2015 Definizione (Vettore

Dettagli

1 Principio di Induzione

1 Principio di Induzione 1 Principio di Induzione Per numeri naturali, nel linguaggio comune, si intendono i numeri interi non negativi 0, 1,, 3, Da un punto di vista insiemistico costruttivo, a partire dall esistenza dell insieme

Dettagli

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo

Dettagli

Linguaggi, grammatiche, espressioni regolari

Linguaggi, grammatiche, espressioni regolari Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Linguaggi, grammatiche, espressioni regolari Giacomo PISCITELLI Modello formale di un linguaggio Un linguaggio

Dettagli

GLI INSIEMI PROF. WALTER PUGLIESE

GLI INSIEMI PROF. WALTER PUGLIESE GLI INSIEMI PROF. WALTER PUGLIESE INSIEME DEFINIZIONE UN RAGGRUPPAMENTO DI OGGETTI RAPPRESENTA UN INSIEME IN SENSO MATEMATICO SE ESISTE UN CRITERIO OGGETTIVO CHE PERMETTE DI DECIDERE UNIVOCAMENTE SE UN

Dettagli

Università degli Studi di Milano

Università degli Studi di Milano Università degli Studi di Milano Laurea in Sicurezza dei sistemi e delle reti informatiche Note di Matematica STEFANO FERRARI Fondamenti di informatica per la sicurezza Note di Matematica Pagina 2 di 8

Dettagli

LINGUAGGI FORMALI E AUTOMI

LINGUAGGI FORMALI E AUTOMI LINGUAGGI FORMALI E AUTOMI Alberto Bertoni Beatrice Palano (DISPENSE) Capitolo 1: Linguaggi e Grammatiche 1 Monoide delle parole, linguaggi e operazioni tra linguaggi Alfabeto, parola, linguaggio In generale,

Dettagli

Funzioni derivabili (V. Casarino)

Funzioni derivabili (V. Casarino) Funzioni derivabili (V. Casarino) Esercizi svolti 1) Applicando la definizione di derivata, calcolare la derivata in = 0 delle funzioni: a) 5 b) 3 4 c) + 1 d) sin. ) Scrivere l equazione della retta tangente

Dettagli

LIMITI. 1. Definizione di limite.

LIMITI. 1. Definizione di limite. LIMITI 1. Definizione di limite. Sia A un sottoinsieme di IR; se il numero reale x 0 è di accumulazione per A in ogni intorno di x 0 si trovano elementi di A distinti da x 0. Allora ha senso chiedersi

Dettagli

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

Dettagli

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

Dettagli

01 - Elementi di Teoria degli Insiemi

01 - Elementi di Teoria degli Insiemi Università degli Studi di Palermo Scuola Politecnica Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 01 - Elementi di Teoria degli Insiemi Anno Accademico 2015/2016

Dettagli

Un insieme si dice ben definito quando si può stabilire in modo inequivocabile se un oggetto appartiene o non appartiene a tale insieme

Un insieme si dice ben definito quando si può stabilire in modo inequivocabile se un oggetto appartiene o non appartiene a tale insieme Gli insiemi In matematica usiamo la parola insieme per indicare un raggruppamento, una collezione, una raccolta di oggetti (persone, simboli, numeri, lettere, figure ) che sono detti elementi dell insieme

Dettagli

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di

Dettagli

Elaborazione di File di Dati. Uso di semplici comandi Espressioni regolari AWK

Elaborazione di File di Dati. Uso di semplici comandi Espressioni regolari AWK Elaborazione di File di Dati Uso di semplici comandi Espressioni regolari AWK Sort sort [option] file1... filen Consente di ordinare, fondere o confrontare le linee dei file in input Ha tre modalità di

Dettagli

FUNZIONI. y Y. Def. L insieme Y è detto codominio di f. Es. Siano X = R, Y = R e f : x y = 1 x associo il suo inverso). (ad un numero reale

FUNZIONI. y Y. Def. L insieme Y è detto codominio di f. Es. Siano X = R, Y = R e f : x y = 1 x associo il suo inverso). (ad un numero reale FUNZIONI Siano X e Y due insiemi. Def. Una funzione f definita in X a valori in Y è una corrispondenza (una legge) che associa ad ogni elemento X al piú un elemento in Y. X Y Def. L insieme Y è detto codominio

Dettagli