PRINCIPLES AND PARADIGMS OF PROGRAMMING LANGUAGES
Students will be provided with a deeper and more critical knowledge of programming languages, through the learning of theoretical foundations and the comparison of different paradigms.
Gaining a deeper and more critical knowledge of programming languages, through the learning of theoretical foundations and the comparison of different paradigms.
- Foundations: small-step semantics, type systems, soundness
- Functional paradigm: lambda calculus, call-by-value and call-by-name, simply-typed lambda-calculus, polymorphism, Hindley-Milner inference. Functional programming in Haskell, lazy evaluation, type classes.
- Effects: extensions of lambda-calculus with imperative features and exceptions, Haskell monads
- Object-oriented paradigm: subtyping, Featherweight Java
- Logic paradigm: Prolog syntax, model-theoretic semantics, SLD resolution.
Benjamin Pierce, Types and Programming Lannguages
Ricevimento: On request. In addition, on aulaweb there will be a discussion forum for questions and answer of general interest for all students.
ELENA ZUCCA (President)
DAVIDE ANCONA (Substitute)
The exam will consist of an oral test and possibly the development of a small project.
|23/07/2021||09:00||GENOVA||Esame su appuntamento|
|17/09/2021||09:00||GENOVA||Esame su appuntamento|
|11/02/2022||09:00||GENOVA||Esame su appuntamento|