Salta al contenuto principale della pagina

PRINCIPLES AND PARADIGMS OF PROGRAMMING LANGUAGES

CODE 90546
ACADEMIC YEAR 2022/2023
CREDITS
  • 6 cfu during the 1st year of 10852 COMPUTER SCIENCE (LM-18) - GENOVA
  • SCIENTIFIC DISCIPLINARY SECTOR INF/01
    LANGUAGE English
    TEACHING LOCATION
  • GENOVA
  • SEMESTER 2° Semester
    TEACHING MATERIALS AULAWEB

    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
    • Object-oriented paradigm: subtyping, Featherweight Java
    • Logic paradigm: Prolog syntax, model-theoretic semantics, SLD resolution.
    • Coinduction and coinductive logic programming

    RECOMMENDED READING/BIBLIOGRAPHY

    Course notes

    Benjamin Pierce, Types and Programming Lannguages

     

    TEACHERS AND EXAM BOARD

    Exam Board

    ELENA ZUCCA (President)

    FRANCESCO DAGNINO

    DAVIDE ANCONA (Substitute)

    LESSONS

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    EXAMS

    EXAM DESCRIPTION

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