Fondamenti dei linguaggi di programmazione: automi
Breve descrizione del corso La teoria degli automi e dei linguaggi formali è alla base della descrizione dei linguaggi di programmazione, della costruzione dei loro riconoscitori e traduttori, della realizzazione di strumenti di elaborazione testuale. Applicazioni si hanno oggi in molti campi, includendo la biologia, la botanica e lo studio dei sistemi concorrenti e distribuiti. Il corso fornirà definizioni di base e proprietà.
Programma del corso Automi a stati finiti. Espressioni regolari. Proprietà degli insiemi regolari. (8 ore) Grammatiche non contestuali. Automi a pila. Proprietà dei linguaggi non-contestuali. (8 ore) Linguaggi contestuali. Grammatiche non ristrette. Relazioni tra classi di linguaggi. Gerarchia di Chomsky. (6 ore) L sistemi. (4 ore) Automi temporizzati. Automi gerarchici. Automi concorrenti. (16 ore) Strumenti software di specifica e verifica. (6 ore)
Riferimenti Hopcroft, J.E., Ullman J.D., Introduction to Automata Theory, Languages, and Computation, Addison Wesley, Reading, Mass., Hopcroft, J.E., Motwani, R., Ullman, J.D., Automi, linguaggi e calcolabilità, Addison Wesley, Pearson Education Italia, Salomaa, A., Formal Languages, Academic Press, New York, 1987.