18--Programmi Guida 2011-12 _F.Peluso, 3 programmi_
Transcript
18--Programmi Guida 2011-12 _F.Peluso, 3 programmi_
LINGUAGGI DI PROGRAMMAZIONE E AUTOMI NUMERO DI CREDITI (CFU): 6 SETTORE SCIENTIFICO-DISCIPLINARE: INF/01 TIPOLOGIA DELL’INSEGNAMENTO: Attività caratterizzante. DOCENTE: Prof. Giuseppe SALVI FINALITÀ DEL CORSO: Gli automi permettono di descrivere le computazioni in modo generale, indipendentemente dalle macchine e dal software. L'obiettivo del corso è quello di comprendere come descrivere una computazione e, più precisamente, un modello di calcolatore. ARTICOLAZIONE DIDATTICA: lezioni: 34 h esercitazioni: laboratorio: 14 h seminari: PROGRAMMA DEL CORSO: AUTOMI A STATI FINITI: Introduzione alla teoria degli automi. I concetti centrali della teoria degli automi: alfabeti, stringhe, linguaggi. Automi a stati finiti deterministici e non deterministici. Automi a stati finiti con epsilon-transizioni. ESPRESSIONI E LINGUAGGI REGOLARI: Espressioni e Linguaggi regolari. Proprietà dei Linguaggi Regolari. Teorema di Kleene. Il problema di string matching e i relativi algoritmi basati su automi a stati finiti. Esempi: Strumenti di manipolazione dei testi basati su automi a stati finiti ed espressioni regolari: grep e programmi derivati (awk, sed, perl). GRAMMATICHE E LINGUAGGI LIBERI DA CONTESTO: Grammatiche e linguaggi liberi da contesto. Alberi sintattici. Automi a pila deterministici e non deterministici. Caratterizzazione dei linguaggi liberi da contesto mediante automi a pila. Proprietà di chiusura dei linguaggi liberi da contesto. Forma normale di Chomsky. Algoritmo di riconoscimento di Cocke-Kasami-Young. Esempi: Proprietà del linguaggio XML legate ai linguaggi liberi da contesto: regole di annidamento e documenti ben formati. Strumenti per la creazione di analizzatori lessicali e parser: JLex e Cup. TEORIA DELLA COMPLESSITÀ: Macchine di Turing. Complessità e Teoria della NP-completezza: Le classi P e NP. Riducibilità tra linguaggi. La classe dei linguaggi NP-completi. Teorema di Cook-Levin. NP-completezza di 3SAT, Clique, Vertex Cover, Grafi Hamiltoniani. PRE-REQUISITI: E’ necessaria la conoscenza degli argomenti svolti nei corsi di Programmazione I, Programmazione II, Algoritmi e Strutture dati. MODALITÀ DI ACCERTAMENTO DEL PROFITTO: Esame scritto-orale TESTI DI RIFERIMENTO JOHN E. HOPCROFT, RAJEEV MOTWANI AND JEFFREY D. ULLMAN: “Automi, Linguaggi e calcolabilità”, Addison Wesley. MATERIALE DIDATTICO FORNITO: Le presentazioni multimediali (formato .pdf) di tutte le lezioni sono disponibili sul sito internet del corso (servizio di dispense online: http://informatica.uniparthenope.it). Appunti a cura del docente del corso.