Languages and compilers - LINGUAGGI (2015/2016)

Course code
4S02726
Name of lecturer
Roberto Giacobazzi
Number of ECTS credits allocated
6
Academic sector
INF/01 - INFORMATICS
Language of instruction
Italian
Location
VERONA
Period
I semestre dal Oct 1, 2015 al Jan 29, 2016.
Web page
http://profs.scienze.univr.it/~giaco/styled-16/index.html

To show the organization of the course that includes this module, follow this link * Course organization

Lesson timetable

Learning outcomes

The course introduces the basic concepts of programming languages, such as functions, types, memory management, and control. The aim is to give a thorough understanding of the problems encountered in the design of programming languages. With this knowledge, students will be able to understand the advantages and disadvantages in using certain kinds of programming languages and to choose the most appropriate one for a given application.

Syllabus

Virtual machines: interpreters and compilers. Syntactical descriptions of programming languages: context free grammars. Structured operational semantics.
Memory management: scoping rules, functions, procedures, parameter passing, stack of activation records, heap.
Control: structuring of statements, abstraction, exceptions.
Data and types: data types, base types, structured types, type systems, type inference and polymorphism.
Examples of programming paradigms.

Reference books
Author Title Publisher Year ISBN Note
Maurizio Gabbrielli, Simone Martini Linguaggi di programmazione: principi e paradigmi (Edizione 2) McGraw Hill 2011 88-386-626
T.W. Pratt e M.V. Zelkowitz Programming languages: Design and implementation (Edizione 3) Prentice Hall 1999

Assessment methods and criteria

Written exam with optional oral exam (mandatory for evaluations greater than 26/30).

STUDENT MODULE EVALUATION - 2015/2016