Programming languages (2020/2021)



Course code
4S02727
Credits
6
Coordinator
Isabella Mastroeni
Academic sector
INF/01 - INFORMATICS
Language of instruction
Italian
Teaching is organised as follows:
Activity Credits Period Academic staff Timetable
Teoria 5 I semestre Isabella Mastroeni

Go to lesson schedule

Laboratorio 1 I semestre Isabella Mastroeni

Go to lesson schedule

Learning outcomes

The course provide specific capabilities in the context of programming languages. In particular, it provides the necessary knowledge for operating in design, development and maintenance of software systems, starting form the right choice of the programming language dependent on the specific tasks and features of what should be developed.

At the end of the course, the student will have to show:
to know and to be able to study and understand new programming languages;
to be able to apply the acquired capabilities and knowledge for choosing the programming language depending on what he/she has to develop;
to be able to develop necessary expertise for affording the following studies with a sufficient degree of autonomy.

Syllabus

------------------------
MM: Teoria
------------------------
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.
------------------------
MM: Laboratorio
------------------------
Introduction of tools for making exercise on the techniques of interpretation of programming languages.

Assessment methods and criteria

------------------------
MM: Teoria
------------------------
Written exam (with mandatory oral exam for evaluations greater than 26/30). The task of the written exam consists in verifying the comprehension of course contents and the capability to reprocessing these contents, also in the resolution of exercises on formal semantics of programming languages. The task of the oral exam is that of verify an advanced comprehension of the course contents allowing a critic analysis and a reprocessing of the studied notions and results. This comprehension may be verified also by asking theorems and proofs. It will be evaluated the possibility of integrating the written evaluation with a project to agree with the professor and which can be made in groups of maximal two elements.
------------------------
MM: Laboratorio
------------------------
Look at the description provided for the module of theory.

Reference books
Activity Author Title Publisher Year ISBN Note
Teoria Robert W. Sebesta Concepts of Programming Languages (10th Edition) (Edizione 10) Pearson 2013 0131395319
Teoria John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman Introduction to Automata Theory, Languages and Computation (Edizione 2) Addison-Wesley 2000 0201441241
Teoria Maurizio Gabbrielli, Simone Martini Linguaggi di programmazione: principi e paradigmi (Edizione 2) McGraw Hill 2011 88-386-626
Teoria I. Mastroeni e C. Priami Semantica Operazionale: Strumenti e Applicazioni CEDAM 1999 881322138X
Laboratorio Maurizio Gabbrielli, Simone Martini Linguaggi di programmazione: principi e paradigmi (Edizione 2) McGraw Hill 2011 88-386-626