Fondamenti - LINGUAGGI (2014/2015)

Codice insegnamento
4S02789
Docente
Massimo Merro
crediti
6
Settore disciplinare
INF/01 - INFORMATICA
Lingua di erogazione
Italiano
Periodo
I sem. dal 1-ott-2014 al 30-gen-2015.
Pagina Web
http://profs.sci.univr.it/~merro/linguaggi.html

Per visualizzare la struttura dell'insegnamento a cui questo modulo appartiene, consultare * organizzazione dell'insegnamento

Orario lezioni

I sem.
Giorno Ora Tipo Luogo Note
lunedì 11.30 - 13.30 lezione Aula I  
mercoledì 10.30 - 12.30 lezione Aula I  
giovedì 8.30 - 10.30 lezione Aula I  

Obiettivi formativi

L'obiettivo del corso è quello di presentare le basi teoriche dei linguaggi di programmazione. A tale scopo verranno introdotti vari linguaggi sequenziali paradigmatici, anche di ordine superiore. Tutto il corso sarà incentrato sui concetti di semantica operazionale e di sistema di tipo. Verranno introdotte alcune tecniche formali per la verifica del comportamento dei programmi.

Programma

Induzione:
(i) Induzione matematica sui numeri naturali;
(ii) Induzione strutturale;
(iii)Induzione su un sistema di inferenza.

Semantica operazionale:
Semantica big step e small step per semplici linguaggi sequenziali, tra cui:
(i) Exp, Bool, linguaggi per espressioni aritmetiche e booleane.
(ii) Il linguaggio imperativo While dei comandi while
(iii)I linguaggi funzionali Fun e Lambda e loro variazioni; semantiche call-by-name e call-by-value.

Sistemi di tipo
(i) Assegnamenti di Tipo per i linguaggi funzionali Fun e Lambda
(ii) Le proprieta' di Progress and preservation.
(iii) Per il linguaggio Lambda lo studente dovra' conoscere le conseguenze computazionali dell'uso dei tipi; in particolare la necessita' di usare operatori espliciti di punto fisso.

Modalità d'esame

L'esame consiste in una prova scritta e una eventuale prova orale, a discrezione del docente.