Advanced Topics in Programming Languages

Tuesday 09-12, Orenstein 110
Instructor: Mooly Sagiv TA: Shachar Itzhaky

This is an advanced course which covers many of the fundamental areas in the programming languages design and implementations. The topics include: operational and denotational program semantics, programming concepts such as higher order functions, lazy and eager evaluation, normal forms such as continuation passing style, polymorphism, type theory, dependent types, and monads. Techniques such as program verification, abstract interpretation, and partial evaluation. Applications such as domain specific programming languages. The course is inspired by the programming language course in Stanford university

Prerequisites: Compilation or programming languages course.

The grade of the course will be based on 20% course notes, 30% homework assignments, and 50% exam. There are two options for exam: home exam and class exam which is easier. The date for both is 26/6

Reading Material

Tentative Schedule

  1. 6/3 Introduction
    Original Slides
    Class notes by Ghila Castelnuovo and Omer Tripp
  2. 13/3 Javascript
    Original Slides
    Class notes by Omri Gindi and Roi Becker
  3. 20/3 Haskel
    Original Slides
    Class notes by Tomer Weiss and Yotam Feldman
  4. 27/3 No Class
  5. 6/4 Operational Semantics
    Original Slides
  6. 17/4 Denotational Semantics
    Class notes by Alexander Matveev and Ariel Jarovsky
    Original Slides
  7. 23/4 Axiomatic Semantics
    Class notes by Michal Balas and Yair Asa
    Original Slides
  8. 1/5 Type Checking and Type Inference
    Class notes by Dvir Netanely and Guy Rozendorn
    Original Slides
    Revised version of Chapter 6 from Concepts in Programming Languages
  9. 8/5 Typed Lambda Calculus
    Class notes by Guy Golan-Gueta and Shachar Itzhaky
    Haskel Code for Type Checking by Guy Golan-Gueta and Shachar Itzhaky
    Original Slides
  10. 15/5 Extensions to Typed Lambda Calculus (Revised)
    Class notes by Orr Tamir and Bar Avidan
    Original Slides
  11. 21/5 Subtyping
    Class notes by Roman Kecher and Anna Itin
    Original Slides
  12. 28/5 Featherweight Java
    Class notes by Adam Morrison
    Original Slides
  13. 4/6 Control in Sequential Languages
    Original Slides
  14. 19/6 IO Monads
    Original Slides

Homework Assignments

  1. Assignment 1:Due April 17
  2. Assignment 2:Due June 26

Computer Forum

Please register into course forum

Important Message

If your POWERPOINT does not show certain mathematical characters use fonts in a zip file, by clicking here. Make sure to extract
them to the appropriate directory,

Alternatively, you can extract them anywhere, and install them via the control panel