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.

Canale 1
PIETRO CENCIARELLI Scheda docente
PIETRO CENCIARELLI Scheda docente
  • Codice insegnamento1022264
  • Anno accademico2025/2026
  • CorsoInformatica
  • CurriculumMetodologico
  • Anno3º anno
  • Semestre1º semestre
  • SSDINF/01
  • CFU6