Objectives:
This class teaches the fundamental concepts behind the design and implementation of programming languages. It emphasizes the central role played by types and semantic - both operational and denotational semantics - in the concept and design of a programming language. The student learns how to derive systematically interpreters and abstract machines from a formally correct definition of the language. Prerequisites include all courses of the I and II years. The course is a prerequisite for the class on compilers ("Compilatori").
Program:
Interpreters and abstract machines;
Formal description of a programming language: syntax and semantics;
Introduction to the ML (OCAML) programming language;
The environment: names and types;
Memory management;
Control: structures and abstractions;
Data: structures and abstractions;
Review of the object-oriented paradigm (optional);
Hints at the functional and logic paradigms (optional).
Author | Title | Publisher | Year | ISBN | Note |
Jeffrey D. Ullman | Elements of ML Programming (Edizione 2) | Prentice Hall | 1998 | 0-13-79038 | Libro di riferimento per il linguaggio ML |
Maurizio Gabbrielli, Simone Martini | Linguaggi di programmazione: principi e paradigmi (Edizione 2) | McGraw Hill | 2011 | 88-386-626 | Adottato |
Lawrence C. Paulson | ML for the Working Programmer (Edizione 2) | Cambridge University Press | 1996 | 0-521-5654 | Libro di riferimento per il linguaggio ML |
Guy Cousineau, Michel Mauny | The functional approach to programming (Edizione 1) | Cambridge University Press | 1998 | 0-521-5768 | Libro di riferimento per il linguaggio ML |
Xavier Leroy et al. | The Objective Caml System | 2004 | Sito del linguaggio OCAML |
******** CSS e script comuni siti DOL - frase 9957 ********p>