Concepts in Programming Languages

Monday 10-12, Dan David, 001
Instructor: Mooly Sagiv TA: Or Tamir

This is a basic which covers some of the main programming languages and also sone 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. Applications such as domain specific programming languages. The course is inspired by the programming language course in Stanford university

Prerequisites: Computer Models and Software Project.

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

Reading Material

Tentative Schedule

  1. 17/2 Overview
  2. 24/2 Javascript
  3. 3/3 Haskel
  4. 10/3 Logic Programming
  5. 17/3 Syntax Analysis
    Natural Operational Semantics
    Prolog Code
  6. 24/3 Structural Operational Semantics
  7. 31/3-6/4 Axiomatic Semantics Revised
  8. 28/4 Static Analsis
  9. 11/5 Type Inference
    Reading Material
  10. 19/5 Control in Sequential Languages
  11. 26/5 Lua Revised
  12. 26/5 Ruby
  13. 02/6 Scala
  14. 09/6 Recap

Computer Forum

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