Linguaggi formali ed automi Turno 1/2005-2006

Da WikiDsy.

Linguaggi formali ed automi (per gli amici LFA) è un insegnamento fondamentale del secondo anno per il corso di laurea in Informatica. Può essere inserito nel piano di studi, come complementare esterno al corso di laurea, anche dagli studenti dei corsi di Informatica per le telecomunicazioni, Comunicazione digitale e dagli studenti delle lauree specialistiche che non hanno sostenuto l'esame durante la triennale.

Informazioni generali

Nome dell'insegnamento Linguaggi formali e automi
Corsi di laurea Informatica
Categoria Fondamentale
Anno Secondo
Semestre Secondo
Crediti 6.0 CFU
Turni 2
Settore disciplinare INF/01 Informatica
Ore di didattica 50
Frequenza Consigliata
Scheda del corso http://www.dico.unimi.it/occorrenza.php?z=0;id_occ=1057


Docenti

Per gli studenti del turno 1 è responsabile del corso la professoressa Beatrice Palano.

Scheda personale http://www.dico.unimi.it/persona.php?z=0;id_persona=259
E-mail palano@dsi.unimi.it
Sito web personale http://homes.dsi.unimi.it/~palano/
Telefono 0250316254
Fax 0250316276


Orario delle lezioni

Per l'A.A. 2005/2006 l'inizio delle lezioni è fissato per il 7 marzo e il termine è previsto per l'8 giugno.

Orario di ricevimento

La professoressa riceve il giovedì in orario 15.30-16.30 presso la stanza S203 (Via Comelico, II piano).

Sito web del corso

Qui il sito ufficiale del corso: http://homes.dsi.unimi.it/~palano/cur/lfa.html

Descrizione

Il corso è dedicato alla teoria dei linguaggi formali e degli automi.

Un linguaggio formale è un linguaggio (di qualunque tipo) che può essere descritto per mezzo di precise regole matematiche, utilizzando una scrittura simbolica convenzionale.

Un automa (o macchina astratta) è un modello utilizzato per descrivere e rappresentare un'entità che assume nel tempo diversi stati e configurazioni secondo una precisa sequenza (macchina a stati finiti). In altre parole è un dispositivo astratto che stabilisce una precisa relazione tra un dato di ingresso e un dato di uscita.

Gli automi sono strettamente legati ai linguaggi formali, in quanto consentono di definire algoritmi riconoscitivi, cioè procedure in grado di riconoscere le parole di un linguaggio. Gli automi, più in generale, sono utilizzati per rappresentare una qualsiasi procedura a stati finiti (0 algoritmo o computazione). Gli automi sono utili anche per rappresentare modelli astratti di calcolatori.

La teoria degli automi e dei linguaggi formali è alla base della descrizione dei linguaggi di programmazione e delle macchine calcolatrici, nonché una delle principali branche dell'informatica.

Il suo studio è utile per la costruzione di compilatori, per la progettazione di nuovi linguaggi di programmazione e, in generale, per descrivere le caratteristiche di un linguaggio esistente, nonché per studiare e realizzare modelli astratti di calcolatore.

Molti dei concetti esposti possono essere approfonditi nel corso complemantare di Linguaggi e traduttori.

Obiettivi e finalità didattiche

Apprendere i concetti fondamentali della teoria degli automi e dei linguaggi formali, nonché il loro utilizzo per l'analisi, la descrizione e la compilazione dei linguaggi di programmazione.

Comprendere come descrivere una computazione e un modello di calcolatore.

Argomenti trattati

Linguaggi regolari e linguaggi liberi da contesto. Automi deterministici e non deterministici. Teorema di Kleene. Espressioni regolari. Forma normale di Chomsky. Formalismi BNF. Macchina di Turing. Il linguaggio XML.

Programma

Il programma del corso si compone di tre parti:

  • Concetti di base sui linguaggi
    • Linguaggi ricorsivi
    • Linguaggi ricorsivamente numerabili
    • Grammatiche (come esempio di sistema generativo)
  • Linguaggi regolari e Automi a stati finiti
  • Linguaggi liberi da contesto e Automi a pila

Il programma integrale è disponibile presso il sito web del corso.

Libro di testo e materiale didattico

Non è stato consigliato alcun libro di testo.

Il materiale didattico di riferimento adottato consiste in una serie di dispense (un documento in 3 parti), disponibili presso il sito web del corso.

Nello stesso sito si consiglia il testo J.E. Hopcroft, J.D. Ullman, Introduction to automata theory, languages and computation, Addison-Wesley, 1979.

Modalità d'esame

E' prevista una sola prova orale a fine corso.

Calendario degli appelli

Qui di seguito sono riportate le sessioni d'esame per l'A.A. 2005/2006 (a partire dalla prima prova utile di giugno):

  • 19 giugno 2006
  • 10 luglio 2006
  • 18 settembre 2006
  • 15 gennaio 2007

Le date successive sono ancora da stabilire.

Prerequisiti

Sono prerequisiti per il corso di LFA i fondamenti essenziali della programmazione, le nozioni fondamentali dell'insiemistica e la conoscenza del linguaggio algebrico di base.

LFA è invece il prerequisito fondamentale per il corso di Linguaggi e traduttori.

Frequenza

La frequenza al corso non è obbligatoria, ma comunque consigliata.

Altre informazioni

  • La professoressa ha sottolineato che il corso ha un taglio molto teorico (cosa potrebbe deludere le aspettative di alcuni studenti).
  • Il programma del corso e il materiale didattico sono identici per i due turni, ed è possibile essere ricevuti indifferentemente da entrambi i docenti (nei rispettivi orari).

Link utili


Diario del corso A.A. 2005/2006

Avvisi per gli studenti