Linguaggi di programmazione (2008/2009)

Corso disattivato non visibile

Codice insegnamento
4S00042
Docente
Maria Paola Bonacina
crediti
5
Altri corsi di studio in cui è offerto
Settore disciplinare
INF/01 - INFORMATICA
Lingua di erogazione
Italiano
Sede
VERONA
Periodo
1° Q dal 2-ott-2008 al 19-dic-2008.
Pagina Web
http://profs.sci.univr.it/~bonacina/teachingUniVR/LingProg2008-09.html

Orario lezioni

Obiettivi formativi

Il corso insegna i concetti fondamentali dei linguaggi di programmazione, quali funzioni, tipi, gestione della memoria e controllo. L'obbiettivo è dare agli studenti una comprensione approfondita dei problemi e dei compromessi che si incontrano nella progettazione di linguaggi di programmazione. Questa comprensione permette agli studenti di cogliere vantaggi e svantaggi dei linguaggi che usano, in modo da saper valutare la scelta del linguaggio di programmazione rispetto all'applicazione che si vuole realizzare. Prerequisiti: qualche conoscenza di almeno un linguaggio di programmazione a oggetti (e.g., Java, C++) e procedurale (e.g., C), e qualche esperienza con semplici analisi di algoritmi e strutture di dati.

Programma

Funzioni. Un esempio storico: cenni al linguaggio Lisp. Macchine virtuali: interpreti e compilatori. Descrizione di un linguaggio di programmazione: sintassi e semantica. Semantica operazionale strutturata: sistemi di transizione. Il linguaggio ML. Sistema dei tipi, inferenza di tipo e polimorfismo in ML. Gestione della memoria: regole di visibilità, funzioni e procedure, passaggio di parametri. Controllo: strutturazione ed astrazione, eccezioni in ML. Dati: astrazione e modularità, il sistema dei moduli in ML.

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
John C. Mitchell Concepts in Programming Languages (Edizione 1) Cambridge University Press 2003 0-521-7809 Testo adottato
Jeffrey D. Ullman Elements of ML Programming (Edizione 2) Prentice Hall 1998 0-13-79038 Testo di supporto per il linguaggio ML
Lawrence C. Paulson ML for the Working Programmer (Edizione 2) Cambridge University Press 1996 0-521-5654 Testo di supporto per il linguaggio ML
Guy Cousineau, Michel Mauny The functional approach to programming (Edizione 1) Cambridge University Press 1998 0-521-5768 Testo di supporto per il linguaggio ML

Modalità d'esame

Esame mediante prove parziali: vale solo per il primo appello dopo la fine delle lezioni, ovvero per la sessione di dicembre, essendo il corso nel I quadrimestre. L'esame consta di due compiti in classe (C1 e C2) e di alcuni compiti a casa (A). Il voto d'esame è dato da: 20% A + 40% C1 + 40% C2. Passato il primo appello dopo la fine delle lezioni, le prove parziali non valgono più. Chi sostiene l'esame mediante prove parziali si iscrive all'esame della sessione di dicembre.

Esame senza prove parziali: l'esame consta di un unico compito scritto (E), di difficoltà tale da uguagliare A + C1+C2, il cui voto determina il voto d'esame. Questa modalità vale per tutti gli appelli.

Nota: il secondo compito in classe (C2) si terrà nella stessa data, ora e luogo dell'esame E della sessione di dicembre (naturalmente contenuto e durata di C2 ed E saranno diversi).

Registrazione: a ogni sessione la data dell'esame è la data dello scritto (E); per registrare il voto basta iscriversi allo scritto. Tutti i voti vengono registrati. Lo studente insoddisfatto dell'andamento dell'esame può ritirarsi: per questo è sufficiente non consegnare C2 o E.

Regolamento: tutti gli elaborati sono individuali; è severamente vietato copiare e scambiare, passare o condividere codice. Tutti gli elaborati che mostrano di essere stati copiati ricevono voto 0, senza distinzione tra chi copia e chi fa copiare.

Condividi