INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.

Slides:



Advertisements
Presentazioni simili
I VETTORI.
Advertisements

I Linguaggi di programmazione
Automi temporizzati.
Sistemi dinamici discreti e computabilità intrinseca
Macchine di Turing e ricorsività generale
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Sintassi (prima parte)
LR Parser Giuseppe Morelli. La maggior parte dei parser Bottom-Up è costituita dai cosiddetti parser LR(k) dove: L indica il verso dellanalisi della stringa.
Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Linguaggi Regolari e Linguaggi Liberi
Costruzione delle tabelle di parsing LR canoniche
Precorsi di Informatica Dott. Antonio Cisternino Settembre 2003
INSIEMI INSIEME= gruppo di oggetti di tipo qualsiasi detti elementi dell’insieme. Un insieme è definito quando viene dato un criterio non ambiguo che.
1 Linguaggi di Programmazione - elementi Corso di Laurea in Informatica (AA 2005/2006) Gabriella Pasi e Carla Simone
Deduzione naturale + Logica & Calcolabilità
Strategie per la progettazione di algoritmi:
Il ragionamento classico
Sistemi basati su conoscenza Comunicazione basata sul linguaggio naturale Prof. M.T. PAZIENZA a.a
Macchine non completamente specificate
Analisi e Sintesi di circuiti sequenziali
Liceo Scientifico "A.Volta" Reggio Calabria
Funzioni, Rappresentazioni e Coscienza
Modelli simulativi per le Scienze Cognitive
Modelli simulativi per le Scienze Cognitive
Analisi e Sintesi di circuiti sequenziali. Definizione Una macchina sequenziale é un sistema nel quale, detto I(t) l'insieme degli ingressi in t, O(t)
Unità Didattica 2 I Linguaggi di Programmazione
Fondamenti di Informatica1 Linguaggi Classificati rispetto alle caratteristiche principali: –potere espressivo che influenza lo stile di programmazione.
Il concetto di insieme è un assioma, possiamo dire che è un raggruppamento di oggetti di cui è possibile stabilire con certezza se appartengono o no.
RAPPRESENTAZIONE DELL’INFORMAZIONE
PROBLEMI RISOLUBILI E COMPUTABILITÀ
L’AUTOMA ESECUTORE Un automa capace di ricevere dall’esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio.
LINGUAGGI DI PROGRAMMAZIONE
AN FI Concetti. Linguaggi di alto livello u Hanno capacita' espressive superiori a quelle del linguaggio macchina u Suggeriscono concetti e modi.
Comunicazione e agire sociale
Chomsky La grammatica/sintassi è una proprietà della mente Distinta dalla capacità di comunicare E una facoltà autonoma ed innata La comunicazione è solo.
Elementi di Informatica di base
Automi LAVORO SVOLTO DA MARIO GERMAN O
Il modello ER Proposto da Peter Chen nel 1976 rappresenta uno standard per la progettazione concettuale (in particolare per le basi di dati) Ha una rappresentazione.
Corso di Laurea Specialistica in Ingegneria Informatica Model Drive Applicazione per il pilotaggio di veicoli Esame di Linguaggi e Modelli computazionali.
Lo sviluppo del software e i linguaggi di programmazione
LA MACCHINA DI TURING Nel 1936 il matematico inglese A. M. Turing propose una definizione del concetto di algoritmo tramite un modello matematico di macchina.
Introduzione ai linguaggi formali e alle stringhe
TEORIA DEGLI INSIEMI INIZIO.
Grammatiche, Linguaggio e Automi R. Basili TAL - a.a
Università degli Studi di Bologna Facoltà di Ingegneria Anno Accademico 2007/2008 Laurea Specialistica in Ingegneria Informatica Linguaggi e Modelli Computazionali.
Università degli studi di Lecce
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Modelli computazionali e macchine astratte
Informatica 3 V anno.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 3 - Modelli di fase d’analisi Ernesto Damiani Università degli Studi.
Linguaggi e Modelli Computazionali LS Anno Accademico 2007/2008 Alessio Della Motta Un linguaggio per descrivere partite di Maraffone: il gioco più popolare.
Linguaggi di programmazione: panoramica Linguaggi di programmazione ad alto livello: – –Programmazione procedurale – –Programmazione object oriented –
Automi a pila (1) Un automa a pila (PDA) è M = (Q, S, G, d, q0, Z0, F) dove: Q insieme finito di stati S alfabeto finito di input 3. G alfabeto di pila.
Grammatiche Grammatiche libere da contesto Grammatiche regolari
Macchine di Turing (1) Il modello di base ha un controllo finito, un nastro di input diviso in celle e una testa di lettura che esamina una cella alla.
L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.
Automi temporizzati.
In generale, con il termine di grammatica si intende un formalismo che permette di definire un insieme di stringhe mediante l’imposizione di un particolare.
Problemi, algoritmi e programmazione
Modello di Automa (Q, I, U, t, w)
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Indecidibilità Limiti della calcolabilità Pigreco-day 14 marzo 2014 Matematica e Incertezza Prof. Antonio Iarlori Mathesis Lanciano-Ortona.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
TEORIA ELEMENTARE DEGLI INSIEMI
LA TEORIA DEGLI INSIEMI. Il concetto di insieme è un concetto primitivo La parola insieme (o comunità, gregge, raccolta,...) la usiamo molto spesso: l’insieme.
Linguaggi e Grammatiche Alfabeto : insieme non vuoto di elementi detti simboli A = { a, b, c } Stringa : sequenza di simboli di un alfabeto ab abc abcab.
Linguaggi, stringhe e alfabeti. Linguaggi e grammatiche Un linguaggio è un sistema di comunicazione tra persone che permette di trasmettere informazioni.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
PROBLEMI RISOLUBILI E COMPUTABILITÀ se neanche la macchina di Turing riesce a risolvere un problema, quel problema non è risolubile! Secondo la Tesi di.
Transcript della presentazione:

INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede una funzione biettiva f: N ® S che mette in corrispondenza i numeri naturali con gli elementi dell’insieme.

INSIEMI NUMERABILI Insiemi che possiedono una funzione biettiva f: N ® S che mette in corrispondenza i numeri naturali con gli elementi dell’insieme. 1 3 2 4

INSIEMI RICORSIVAMENTE ENUMERABILI La nozione di computabilità porta a intro-durre un concetto più forte: quello di insieme ricorsivamente enumerabile (o semidecidibile)

INSIEMI RICORSIVAMENTE ENUMERABILI Un insieme S è ricorsivamente enumera-bile (o semidecidibile) se esiste un procedimento effettivo per costruirlo ossia se esiste una Macchina di Turing T capace di computare la funzione di corrispondenza f: N ® S.

INSIEMI RICORSIVAMENTE ENUMERABILI Quindi, la funzione f: N ® S non deve soltanto esistere... 1 2 3 4

INSIEMI RICORSIVAMENTE ENUMERABILI Quindi, la funzione f: N ® S non deve soltanto esistere... ...deve essere computabile! 1 2 3 4

INTERPRETAZIONE Dire che la funzione f: N ® S è computabile significa dire che l’insieme S può essere effettivamente costruito (per enumerazione) appunto calcolando elemento per elemento la funzione f.

INSIEMI RICORSIVAMENTE ENUMERABILI ATTENZIONE Il fatto che l’insieme S possa essere costruito NON SIGNIFICA AFFATTO che si possa decidere se un elemento appartiene all’insie-me stesso. Quello è tutto un altro problema!!!

INSIEMI RICORSIVI (o DECIDIBILI) Il problema di decidere dell’appartenenza di un elemento a un insieme porta a introdurre un ultimo concetto: quello di insieme ricorsivo (o decidibile)

INSIEMI RICORSIVI (o DECIDIBILI) Un insieme S è ricorsivo (o decidibile) se la sua funzione caratteristica è computabile ossia... f (x) = 1, se x  S 0, se x  S

INSIEMI RICORSIVI (o DECIDIBILI) ossia... se esiste una Macchina di Turing capace di rispondere sì o no, senza entrare in un ciclo infinito, alla domanda se un qualsiasi elemento appartiene all’insieme.

INSIEMI RICORSIVI (o DECIDIBILI) TEOREMA 1 Se un insieme è ricorsivo (decidibile) è anche ricorsivamente enumerabile (semidecidibile) ma non viceversa

INSIEMI RICORSIVI (o DECIDIBILI) TEOREMA 2 Un insieme S è ricorsivo (decidibile) se e solo se sia S sia il suo complemento N-S sono ricorsivamente enumerabili (semidecidibili)

VA BENE, PERÒ…. ... perché ci interessa tanto??

INSIEMI & LINGUAGGI I linguaggi di programmazione sono costruiti a partire da un certo alfabeto e ogni linguaggio è caratterizzato dall’insieme delle sue frasi lecite.

INSIEMI & LINGUAGGI I linguaggi di programmazione sono costruiti a partire da un certo alfabeto e ogni linguaggio è caratterizzato dall’insieme delle sue frasi lecite. Non ci basta che l’insieme delle frasi sia ricorsivamente enumerabile, cioè possa essere generato ... (ossia, che si possano generare le frasi “previste”)

INSIEMI & LINGUAGGI I linguaggi di programmazione sono costruiti a partire da un certo alfabeto e ogni linguaggio è caratterizzato dall’insieme delle sue frasi lecite. … è indispensabile anche poter decidere se una frase è giusta o sbagliata senza entrare in ciclo infinito e ciò richiede che l’insieme delle frasi del linguaggio sia ricorsivo (decidibile).

INSIEMI & LINGUAGGI Se così non fosse… il compilatore (o interprete) che deve tradurre le istruzioni del linguaggio in linguaggio macchina potrebbe non rispondere (entrando in un ciclo infinito) nel caso incontrasse una frase errata mentre noi vogliamo che si fermi e segnali l’errore!

LINGUAGGI E PROPRIETÀ Un linguaggio è un insieme di frasi Una frase è una sequenza di simboli appartenenti a un certo alfabeto Un linguaggio deve essere effettivamente generabile Un linguaggio di programmazione deve essere decidibile

ALCUNE DEFINIZIONI Alfabeto V (o vocabolario o lessico) È l’insieme dei simboli con cui si costruiscono le frasi Universo linguistico V* di un alfabeto V È l’insieme di tutte le frasi (sequenze finite di lunghezza arbitraria) di elementi di V. Linguaggio L su un alfabeto V È un sottoinsieme di V*.

LINGUAGGI & GRAMMATICHE Problema: Come specificare il sottoinsieme di V* che definisce il linguaggio? Risposta: Specificando il modo formale e preciso la sintassi delle frasi del linguaggio tramite una grammatica formale

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 è un insieme finito di produzioni, ossia di regole di riscrittura S è un particolare simbolo non-terminale detto simbolo iniziale o scopo della grammatica.

GRAMMATICA B.N.F. Una Grammatica B.N.F. è una grammatica in cui le produzioni hanno la forma X ::= A dove: X Î VN è un simbolo non terminale, e: A è una stringa, ossia una sequenza di simboli ciascuno appartenente all’alfabeto V = VN È VT.

FORMA B.N.F. COMPATTA Nel caso di più regole con la stessa parte sinistra: X ::= A1 .... X ::= AN Per comodità si stabilisce allora di poterle compattare in un’unica regola: X ::= A1 | A2 | .. | AN dove il simbolo | indica l’alternativa.

GRAMMATICA & LINGUAGGIO Una Grammatica B.N.F. definisce quindi un linguaggio sull’alfabeto terminale VT mediante un meccanismo di derivazione (o riscrittura) .

GRAMMATICA & LINGUAGGIO Data una grammatica G, si dice perciò Linguaggio LG generato da G l’insieme delle frasi di V derivabili dal simbolo iniziale S applicando le produzioni P

GRAMMATICHE, LINGUAGGI & AUTOMI RICONOSCITORI Grammatiche di diversa struttura comportano linguaggi con diverse proprietà e implicano automi di diversa “potenza computazionale” per riconoscere tali linguaggi.

CLASSIFICAZIONE DI CHOMSKY Le grammatiche sono classificate in 4 tipi in base alla struttura delle produzioni Tipo 0: nessuna restrizione sulle produzioni

CLASSIFICAZIONE DI CHOMSKY Le grammatiche sono classificate in 4 tipi in base alla struttura delle produzioni Tipo 1 (gramm. dipendenti dal contesto): produzioni vincolate alla forma: x A y ::= x a y con x,y,a Î (VTVN)*, AÎVN, a  e

CLASSIFICAZIONE DI CHOMSKY Le grammatiche vengono classificate in 4 tipi in base alla struttura delle produzioni Tipo 2 (gramm. libere da contesto): produzioni vincolate alla forma A ::= a con AÎVN, aÎ(VTVN)*-{e}

CLASSIFICAZIONE DI CHOMSKY Le grammatiche vengono classificate in 4 tipi in base alla struttura delle produzioni Tipo 3 (grammatiche regolari): produzioni vincolate alla forma ricorsiva A ::= a | aB (ricorsiva a destra) A ::= a | Ba (ricorsiva a sinistra) con A,BÎVN, e aÎVT.

CLASSIFICAZIONE DI CHOMSKY In sintesi Tipo 0 (generiche) Tipo 1 (dipendenti da contesto) Tipo 2 (libere da contesto) Tipo 3 (regolari) Semplicità Automa riconoscitore Generalità

GRAMMATICHE & MACCHINE PER RICONOSCERE LINGUAGGI I linguaggi generati da grammatiche di tipo 1 (e quindi anche di tipo 2 e tipo 3) sono riconoscibili, ossia esiste un algoritmo per decidere se una frase appartiene o meno al linguaggio. Un tale procedimento non esiste invece, in generale, per grammatiche di tipo 0. Ma… CHI li riconosce?

GRAMMATICHE & MACCHINE PER RICONOSCERE LINGUAGGI Tipo 3 ® Automa a Stati Finiti (ASF) Tipo 2 ® Macchina a stack (ASF + stack) Tipo 1 ® Macchina di Turing con nastro limitato Tipo 0 ® SE è riconoscibile (può non esserlo), occorre una Macchina di Turing

AUTOMA A STATI FINITI Un macchina astratta molto più semplice di una Macchina di Turing niente nastro niente funzione di direzione, dfn() quindi, niente memoria illimitata! per questo si chiama “a stati finiti” gli stati sono la sua unica forma di memoria che riassume la storia passata spesso descritto con un grafo degli stati

AUTOMA A STATI FINITI Formalmente definito dalla quintupla: A, S, F, mfn, sfn dove A = insieme finito dei simboli di ingresso e uscita S = insieme finito degli stati F = insieme finito degli stati finali (F  S) mfn: A  S ® A (funzione di macchina) sfn: A  S ® S (funzione di stato)

AUTOMA A STATI FINITI: ESEMPIO Riconoscimento di un identificatore P = { <id> ::= <lettera> { <lettera> | <cifra>} <lettera> ::= A | B | C | D | ... | Z <cifra> ::= 0|1|2|3|4|5|6|7|8|9 } Un identificatore corretto deve portare l’automa in uno stato finale di accettazione Un identificatore errato deve portare l’automa in uno stato finale di errore

AUTOMA A STATI FINITI: ESEMPIO lettera stato iniziale lettera o cifra S0 S1 stato finale di accettaz. cifra o altro simbolo altro simbolo S2 stato finale di errore qualunque simbolo

SINTASSI & SEMANTICA Sintassi: dà le regole per scrivere frasi corrette Semantica: attribuisce significato alle frasi corrette Attenzione: Non tutte le frasi sintatticamente corrette hanno anche significato

SINTASSI & SEMANTICA Ad esempio, la grammatica: P = { } <frase> ::= <soggetto> <verbo> <compl-ogg> <soggetto> ::= <articolo><nome> <articolo> ::= il <nome> ::= gatto | topo | sasso <verbo> ::= mangia | beve <compl-ogg> ::= <articolo> <nome> } consente anche di generare la frase “il sasso beve il topo” sintatticam. corretta... …ma senza senso!