LINGUAGGI DI PROGRAMMAZIONE
Obiettivi formativi
Obiettivi generali: Il corso illustra i fondamenti dei linguaggi di programmazione. Particolare attenzione viene dedicata alla semantica statica e dinamica dei linguaggi (teoria dei tipi, semantica operazionale ed assiomatica) ed agli strumenti formali per la specifica e la verifica del software. Obiettivi specifici: Approfondimento sulle algebre induttive come fondamento di sintassi astratta, strutture dati e semplici logiche (equazionali) di programmi. Cenni sulla co-induzione come fondamento di analisi di processi concorrenti e strutture lazy. Confronto fra linguaggi lazy e eager, statici e dinamici, nel contesto di diversi paradigmi di programmazione: imperativo, funzionale, ad oggetti. Teoria dei tipi, con particolare attenzione al polimorfismo parametrico (alla ML) e di sottoclasse (alla Java). Conoscenze e comprensione: Alla fine del corso lo studente avrà acquisito conoscenze fondazionali relative ai linguaggi di programmazione e ai principali paradigmi di programmazione, e sarà in grado di inquadrare in una mappa concettuale coerente alcuni fra le principali aree di studio dell’informatica teorica, comprendendone le interconnessioni. Applicazione di conoscenza e comprensione: Alla fine del corso lo studente sarà in grado di orientarsi fra i diversi paradigmi della programmazione, con particolare attenzione alla programmazione funzionale. Avrà acquisito una conoscenza di base del linguaggio funzionale SML e della sua teoria dei tipi, nonchè dell’uso dei metodi formali. Capacità di giudizio: Gli studenti acquisiranno strumenti culturali per sviluppare software di qualità e per comprendere ed inquadrare le tendenze emergenti dei linguaggi moderni. Capacità di comunicazione: Gli studenti impareranno ad usare il linguaggio della matematica e della logica per descrivere, sviluppare ed analizzare il software, e ad integrare l’approccio formale con un’esposizione intuitiva delle idee. Capacità di apprendimento: L’uso di strumenti matematici nella teoria e nella pratica della programmazione sviluppa capacità logiche e consapevolezza della complessità della materia di studio.
- Codice insegnamento1022264
- Anno accademico2025/2026
- CorsoInformatica
- CurriculumTecnologico
- Anno3º anno
- Semestre1º semestre
- SSDINF/01
- CFU6