Instructor: Mooly Sagiv
TA: Yotam Feldman
This is a basic which covers some of the main programming languages and also some 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 30% homework assignments, and 70% exam.
|27-28/2 No recitation|
|04/3 Overview PPTX & Principles of Induction PPTX||6-7/3 Inductive Definitions (revised)|
|11/3 Natural Operational Semantics PPTX||13-14/3 Natural Operational Semantics||Ex. 1 - Syntax, Induction, NOS
|18/3 Structural Operational Semantics PPTX|| 18/3 Natural & Structural Operational Semantics
|25/3 Lambda Calculus PPTX|| 27-28/3 Structural Operational Semantics +
Untyped Lambda Calculus
|Ex. 2 - NOS & SOS
|1/4 Simply Typed Lambda Calculus PPTX|| 3-4/4 Untyped Lambda Calculus 2
Lambda Calculus Evaluation Orders Handout
|8/4 An Introduction to ML PPTX||10-11/4 Untyped & Simply Typed Lambda Calculus||
Ex. 3 - Lambda Calculus
|29/4 Advanced Issues in ML PPTX||1-2/5 OCaml 1|
In the course's Moodle page.