66864 - COMPLEMENTI DI LINGUAGGI DI PROGRAMMAZIONE

Anno Accademico 2011/2012

  • Docente: Simone Martini
  • Crediti formativi: 6
  • SSD: INF/01
  • Lingua di insegnamento: Italiano
  • Modalità didattica: Convenzionale - Lezioni in presenza
  • Campus: Bologna
  • Corso: Laurea Magistrale in Informatica (cod. 8028)

Conoscenze e abilità da conseguire

Al termine del modulo, lo studente: - conosce i fondamenti teorici dei sistemi di tipo usati nei linguaggi di programmazione; - conosce i principali meccanismi dei sistemi di tipo, tra cui polimorfismo universale ed esistenziale, sottotipi, tipi ricorsivi, tecniche di inferenza di tipo.

Contenuti

I  tipi nei linguaggi di programmazione. Il lambda calcolo tipizzato come strumento di analisi e progetto. Tipi semplici, poliformismo alla ML. Inferenza di tipo polimorfo e sua complessità. Sottotipi. Tipi ricorsivi: massimo punto fisso, coinduzione, sottotipo. L'ordine superiore. Generici e loro descrizione. Tipi di dato astratti e tipi esistenziali. Proof carrying code.

Testi/Bibliografia

Benjamin Pierce, Types and Programming Languages, The MIT Press (ISBN 0-262-16209-1)

Metodi didattici

Lezioni frontali

Modalità di verifica e valutazione dell'apprendimento

Esame orale.

Strumenti a supporto della didattica

http://www.cs.unibo.it/~martini/TLP/index.html

Link ad altre eventuali informazioni

http://www.cs.unibo.it/~martini/TLP/index.html

Orario di ricevimento

Consulta il sito web di Simone Martini