Available from January 26, 2020 until July 3, 2020

Course: CSE2120 Edition: 2019-2020

Enroll
One can enroll until Thu, Apr 2, 2020 12:00:00
Course staff
Lecturers
  • Casper Poulsen
  • Eelco Visser
Assistants
  • Ali Al-Kaswan
  • Yana Angelova
  • Wesley Baartman
  • Kirti Biharie
  • Philippos Boon Alexaki
  • Luc Everse
  • Boris Janssen
  • Rembrandt Klazinga
  • Mirco Kroon
  • Chris Lemaire
  • Sterre Lutz
  • Yaniv Oren
  • Wouter Polet
  • Thijs Raijmakers
  • Jim van Vliet
  • Yoshi van den Akker
  • Paul van der Stel
  • Eric van der Toorn
2.2. Literature

The required reading for the course is:

Programming Languages: Application and Interpretation (Second Edition) by Shriram Krishnamurthi, 2012. The book is available online for free in HTML and PDF format

We will also be using:

“Object-Oriented Programming Languages: Application and Interpretation” by Eric Tantér, 2018. The booklet is freely available online

As programming language, we use Scala. Recommended book for learning Scala:

“Programming in Scala, Third Edition” by Odersky, Spoon, Venners. Publisher: Artima. http://www.artima.com/shop/programming_in_scala_3ed

PLAI Reading

We will use the following chapters from http://cs.brown.edu/courses/cs173/2012/book/:

  • Chapter 2 Everything (We Will Say) About Parsing
  • Chapter 3 A First Look at Interpretation
  • Chapter 4 A First Taste of Desugaring
  • Chapter 5 Adding Functions to the Language
  • Chapter 6 From Substitution to Environments
  • Chapter 7 Functions Anywhere
  • Chapter 8 Mutation: Structures and Variables
  • Chapter 9 Recursion and Cycles: Procedures and Data
  • Chapter 10 Objects
  • Chapter 13 Desugaring as a Language Feature
  • Chapter 15 Checking Program Invariants Statically: Types
  • Chapter 17 Alternate Application Semantics