Programming Languages (2006/2007)

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
1st quadrimester (for 2nd and 3rd years of degrees in IT, for the 2nd year of degrees in applied mathematics and for the 4th and 5th years of specialised degrees) dal Oct 2, 2006 al Dec 1, 2006.
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) 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. Abstract machines: interpreters and compilers. Description of a programming language: syntax and semantics. Structured operational semantics: transition systems. The ML language. Environment: identifiers, types, 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. Advanced topics on the object-oriented paradigm (optional). Basic elements of concurrent and distributed programming in ML or Java (optional).

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 Riferimento principale per il linguaggio ML
Maurizio Gabbrielli, Simone Martini Linguaggi di programmazione: principi e paradigmi (Edizione 2) McGraw Hill 2011 88-386-626 Testo di ulteriore riferimento generale
Lawrence C. Paulson ML for the Working Programmer (Edizione 2) Cambridge University Press 1996 0-521-5654 Altro libro per il linguaggio ML
Guy Cousineau, Michel Mauny The functional approach to programming (Edizione 1) Cambridge University Press 1998 0-521-5768 Per il linguaggio OCAML

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 2006, given that the class is taught in the Fall term. In this mode, the exam is made of two written tests in class of two hours each (C1 and C2) and some homeworks (A). The grade is determined as follows: 40% C1 + 40% C2 + 20% A. After the exam at the end of the Fall term, C1, C2 and A have no value whatsoever for the later exams. Students who take the exam in this form must register for the exam of December 2006.

Single-test exam: in this mode, the exam is made of a single written test (E), whose difficulty is equivalent to that of C1 + C2 + A, and whose grade determines the grade in the exam. This form of exam applies to all exam sessions, including the one at the end of the class. However, if a student who has taken C1 + C2 + A, takes also test E, the grade determined by 40% C1 + 40% C2 + 20% A no longer applies. In other words, students are not allowed to take both C1 + C2 + A and E and choose the best grade.

Remarks: homeworks will be assigned in class together with the date they are due; test C1 will be held on October 31st, 2006; 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. The day when the grades are annotated on the students' booklets will be announced in the ads for students. All grades will be registered and transmitted to the Office of the Registrar independent of annotation on the students' booklets.

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.