Principles of Programming Languages

This is the main page of the Principles of Programming Languages course. It contains the course motivation, contents, links to bibliography resources and course descriptions (romanian and english).

For their weekly activities, students are advised to access this page:

Fall 2021.

Quick links


Motivation & Description

1. How often do you need to learn/design a new programming language?

Description. This course attempts to answer exactly to this challenge, by covering the main concepts that a language designer needs to know. Moreover, the course is also useful for programmers, since it facilitates switching from one programming language to another.

2. Have you ever wondered why sometimes programs behave in a completely unexpected way?

Description. In this course, we address the problem of designing new programming languages by defining their semantics formally. This enables a series of analyses that can be done over programs, including detection of undefined behavior.

3. How important is semantics for programming languages?

Description. In this course, we go through the process of defining both the syntax and the semantics of programming languages. We will see how tricky aspects can be captured by the semantics of a programming language and we will try out various tools proposed by the research community.

[Go to top]

Useful links and Bibliography

[1] Practical Foundations of Programming Languages, Robert Harper; Cambridge University Press, 2016. Online book

[2] Software Foundations - Vol 2, Benjamin C. Pierce, Arthur Azevedo de Amorim, Chris Casinghino, Marco Gaboardi, Michael Greenberg, Cătălin Hriţcu, Vilhelm Sjöberg, Andrew Tolmach, Brent Yorgey. Online book

[3] Programming Languages: Principles and Paradigms, Maurizio Gabbrielli, Simone Martini; Springer-Verlag London Limited, 2010. Online book.

[4] The formal semantics of Programming Languages – An Introduction, Glynn Winskell, 1993. The MIT Press, Cambridge, Massachusetts, ISBN 978-0-262-23169-5. Online book.

[Go to top]