Info sul Corso IN490

Anno Accademico 2020/2021
Docente: Flavio Lombardi

Programma Provvisorio:
Il corso di Linguaggi di Programmazione ha come obiettivo quello di presentare i principali concetti della teoria dei linguaggi formali e la loro applicazione alla classificazione dei linguaggi di programmazione. Introdurre le principali tecniche per l'analisi sintattica dei linguaggi di programmazione. Imparare a riconoscere la struttura di un linguaggio di programmazione e le tecniche per implementarne la macchina astratta. Conoscere il paradigma orientato agli oggetti ed un altro paradigma non imperativo.

Argomenti (Programma Indicativo del Corso)

[-] Macchine Astratte. Interpreti e Compilatori.
[-] Costrutti dei linguaggi.
[-] Programmazione Object Oriented.
[-] Programmazione Funzionale.

Valutazione

La valutazione prevede una prova scritta sugli argomenti del corso più la implementazione di un progetto software e della relativa documentazione concordato con il docente

Final Syllabus:

Objectives

Topics

Evaluation

TESTI


[1] Maurizio Gabbrielli, Simone Martini, Linguaggi di programmazione - Principi e para- digmi, 2/ed. McGraw-Hill, (2011).
[2] Dean Wampler, Alex Payne, Programming Scala: Scalability = Functional Programming + Objects, 2 edizione. O’Reilly Media, (2014).
[3] David Parsons, Foundational Java Key Elements and Practical Programming. Springer- Verlag, (2012).
Bibliografia supplementare
[4] Kip R Irvine, Assembly Language for X86 Processors. Pearson, (2015).
[5] Bruce Tate, Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Program- ming Languages Pragmatic Bookshelf . (2010).
[6] Daniel P. Friedman, Mitchell Wand, Essentials of Programming Languages. MIT Press, (2008).
Modalita` d’esame
- valutazione in itinere (“esoneri”) SI
- esame finale scritto SI orale NO
- altre prove di valutazione del profitto NO

L’esame consiste di due parti: un esame scritto e della discussione di una progetto di programmazione assegnato per gruppi e da implementare in uno dei linguaggi Rust, Java, Scala, Python. Le due prove di esonero sostituiscono la prova scritta. Il voto finale si compone al 33% del voto del primo esonero, al 33% del voto del secondo esonero, ed al 34% dal voto del progetto di programmazione. Nel caso di prova scritta complessiva (no esoneri) questa vale per il 66% del voto complessivo.

2018-09-27