Programming Languages (2008/2009)

Course Not running, not visible

Course code
Name of lecturer
Maria Paola Bonacina
Number of ECTS credits allocated
Other available courses
Academic sector
Language of instruction
1° Q dal Oct 2, 2008 al Dec 19, 2008.
Web page

Lesson timetable

Learning outcomes

This class teaches fundamental concepts in programming languages, such as functions, types, memory management and control. The objective is to give students a thorough understanding of the issues and trade-offs in programming languages design. Such an understanding allows them to appreciate advantages and disadvantages of the various languages, so that they can choose the appropriate language for the application they are working on. Prerequisites: some knowledge of at least one object-oriented language (e.g., Java, C++) and at least one procedural language (e.g., C), and some exposure to simple analyses of algorithms and data structures.


Functions. A historical example: some elements of the Lisp language. Virtual machines: interpreters and compilers. Description of a programming language: syntax and semantics. Structured operational semantics: transition systems. The ML language. Type system, type inference and polymorphism in ML. Memory management: scope, functions and procedures, parameter passing. Control: structure and abstraction, exceptions in ML. Data: abstraction and modularity, modules in ML.

Reference books
Author Title Publisher Year ISBN Note
John C. Mitchell Concepts in Programming Languages (Edizione 1) Cambridge University Press 2003 0-521-7809 Testo adottato
Jeffrey D. Ullman Elements of ML Programming (Edizione 2) Prentice Hall 1998 0-13-79038 Testo di supporto per il linguaggio ML
Lawrence C. Paulson ML for the Working Programmer (Edizione 2) Cambridge University Press 1996 0-521-5654 Testo di supporto per il linguaggio ML
Guy Cousineau, Michel Mauny The functional approach to programming (Edizione 1) Cambridge University Press 1998 0-521-5768 Testo di supporto per il linguaggio ML

Assessment methods and criteria

Partial-tests exam: this mode applies only to those students who take the exam right at the end of the class, that is, in December, given that the class is taught in the Fall. The exam consists of two written tests in class (C1 and C2) and a few homeworks (A). The grade is determined as follows: 20% A + 50% C1 + 50% C2. After the exam at the end of the Fall term, A, C1 and C2 have no value for the later exams. Students who take the exam in this form register for the December session.

Single-test exam: the exam consists of a single written test (E), whose difficulty is equivalent to that of C1+C2, and whose grade determines the final grade. This form of exam applies to all exam sessions.

Remarks: test C2 will be held in the same date, hour and room of test E of the December session (of course, duration and contents of C2 and E will be different).

Registration: at each session the date of the exam is the date of the written test (E) and therefore it is sufficient to register for that date. All grades will be registered. Students who are dissatisfied with their performance can withdraw by not handing-in C2 or E.

Rules: all assignments are strictly individual; it is severely forbidden to copy, exchange, share code or other keys to the questions. All assignments that show signs of cheating will receive grade 0, with no distinction between those who copy and those who let them copy.