1 Informazioni sul Corso §Fondamenti dei Linguaggi di Programmazione: automi (Teoria degli Automi)...

Post on 01-May-2015

217 views 2 download

Transcript of 1 Informazioni sul Corso §Fondamenti dei Linguaggi di Programmazione: automi (Teoria degli Automi)...

1

Informazioni sul Corso

Fondamenti dei Linguaggi di Programmazione: automi (Teoria degli Automi)

6 crediti Docente: Francesca Levi

(email: levifran@di.unipi.it)

2

Nota 1

Corso Complementare della Laurea Specialistica di Informatica (vecchio ordinamento)

Parte del programma di questo corso verra’ coperto dal nuovo corso di Calcolabilita’ e Complessita’ della nuova Laurea Triennale in Informatica a partire dal prossimo anno accademico

Questo corso non fa parte di nessun piano di studi delle nuove lauree magistrali

3

Nota 2

A partire dal prossimo anno accademico il corso verra’ soppresso (non si terranno piu’ le lezioni)

Rimane la possibilita’ di svolgere gli esami per i prossimi tre anni accademici

4

Orario delle Lezioni

Mercoledi’: 11-13 B1Venerdi’: 9-11C

Eventuali variazioni d’orario possono essere valutate solo se richieste da un numero consistente di studenti, a patto di avere trovato la disponibilita’ di un’ aula

5

Informazioni sul CorsoPossibili variazioni d’orario, materiale didattico

www.di.unipi.it/~levifran/FA.html

Ricevimento: martedi’ dalle 14.00 alle 16.00

6

Modalita’ d’EsameA scelta dello studente esame orale su tutti gli argomenti del corso o seminario che approfondisca uno degli argomenti trattati a lezione

•In entrambi i casi gli esami dovranno svolgersi nei periodi di appello d’esame standard con le seguenti modalita’: (1) orale su appuntamento (2) seminario su appuntamento o in date fissate, che verranno rese note alla fine delle lezioni

Per iscriversi si prega di inviare sempre la richiesta per e-mail con almeno una settimana di anticipo

7

Contenuti del corso La Teoria degli Automi e’ uno degli argomenti di base

dell’informatica teorica Tradizionalmente, studiare dispositivi astratti di calcolo

o “macchine” Negli anni ‘30, Turing studio’ una macchina astratta

che fornisce un modello della capacita’ dei computer reali

Tali macchine permettono di distinguere i problemi decidibili e non decidibili, ed i problemi trattabili ed intrattabili

Insieme ai lavori di Cook degli anni ‘60, la base della teoria della calcolabilita’ e della complessita’

8

Linguaggi Formali Linguaggi intesi in senso sintattico come insiemi di

stringhe (inclusi quelli che definiscono i linguaggi di programmazione)

Negli anni ‘40,’50 alcuni ricercatori studiarono dei tipi particolari di macchine, dette automi a stati finiti, che

permettono di definire alcune classi di linguaggi formali

Parallelamente, Chomsky studio’ le grammatiche formali e le loro proprieta’

In questo corso ci occuperemmo dei linguaggi formali, dei vari approcci per definire e riconoscere linguaggi, delle loro proprieta’ e delle relazioni tra i vari approcci

9

Perche’ studiare TDA? Alcuni dei concetti teorici che studieremo nel corso sono

alla base di importanti tipi di software Costruzione dei riconoscitori e traduttori per i linguaggi

di programmazione (compilatori): realizzazione del parser, analisi lessicale

Software per la verifica di correttezza di circuiti o protocolli

Realizzazione di strumenti di elaborazione testuale Strumenti per la specifica e la verifica di sistemi

concorrenti, probabililistici e sistemi biologici (solo per menzionare alcune applicazioni) Non studieremo le applicazioni ma i risultati teorici Alcune applicazioni potranno per esempio essere

argomenti di seminari

10

Programma: prima parte Automi a stati finiti. Espressioni regolari. Proprietà degli insiemi regolari. Grammatiche libere dal contesto. Automi a pila. Proprietà dei linguaggi liberi dal contesto. Linguaggi contestuali. Grammatiche non ristrette. La gerarchia di Chomsky.

11

Programma: seconda parteAutomi temporizzati e probabilisticiAutomi concorrentiL-sistemiP-systemStrumenti software di specifica e verifica. Questi sono argomenti che potrebbero essere trattati

(quali dipende dal tempo, come andranno le lezioni)Potrebbero essere argomenti di seminari

12

Libri di Testo Hopcroft J.E., Ullman J.D., Introduction to Automata Theory, Languages, and

Computation, Addison Wesley, Reading, Mass., 1979.

Hopcroft J.E., Motwani, R., Ullman J.D., Automi, linguaggi e calcolabilità,

Addison Wesley, Pearson Education Italia, 2003.

Alur R., Dill D.L., A Theory of Timed Automata,

Theoretical Computer Science 126 (1994) 183-225.

Salomaa, A., Formal Languages, Academic Press, New York, 1987.