PRINCIPLES AND PARADIGMS OF PROGRAMMING LANGUAGES

PRINCIPLES AND PARADIGMS OF PROGRAMMING LANGUAGES

_
iten
Code
90546
ACADEMIC YEAR
2020/2021
CREDITS
6 credits during the 1st year of 10852 COMPUTER SCIENCE (LM-18) GENOVA
SCIENTIFIC DISCIPLINARY SECTOR
INF/01
LANGUAGE
English
TEACHING LOCATION
GENOVA (COMPUTER SCIENCE )
semester
2° Semester
Teaching materials

OVERVIEW

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. 

AIMS AND CONTENT

LEARNING OUTCOMES

Gaining a deeper and more critical knowledge of programming languages, through the learning of theoretical foundations and the comparison of different paradigms.

Teaching methods

Traditional

SYLLABUS/CONTENT

 

  • 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.

RECOMMENDED READING/BIBLIOGRAPHY

Course notes

Benjamin Pierce, Types and Programming Lannguages

 

TEACHERS AND EXAM BOARD

Ricevimento: On request. In addition, on aulaweb there will be a discussion forum for questions and answer of general interest for all students.

Exam Board

ELENA ZUCCA (President)

FRANCESCO DAGNINO

DAVIDE ANCONA (Substitute)

LESSONS

Teaching methods

Traditional

EXAMS

Exam description

The exam will consist of an oral test and possibly the development of a small project.

 

Exam schedule

Date Time Location Type Notes
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