Textbooks

In the first half of the course, we will look at a toy implementation of a programming language, called Lox. We will go through parts I and II of Crafting Interpreters (the java interpreter). The textbook is free in its HTML form, which is excellent. You can also buy a PDF or hard copy.

The first half of the course will also introduce Scala, which is an industrial-strength language. We will look at functional programming in Lox and Scala, with an emphasis on understanding higher-order functions and closures.

In the second half of the course, we will look at additional language features in Lox, Scala, Javascript, and other languages. In particular, we will look at how Lox and Scala integrate object-oriented features. The Scala text we use is excellent -- it describes the language from the point of view of a programming language theorist.

Software

General Resources

Please report broken links to the instructor.

Online Editors/Compilers/Interpreters