Skip to content
Mark Probst edited this page Apr 21, 2017 · 16 revisions

Course - How to write interpreters and compilers

SimpLang intro video

Book recommendations

You shouldn't need a book for this course, but since somebody asked, here are recommendations:

Modern Compiler Implementation

This is a good, reasonably modern book, that touches on many topics but doesn't go super deep. You'll probably be happy with this.

Engineering a Compiler

I have not read this book, but it comes highly recommended and looks great. It seems quite detailed when it comes to code generation and optimization, but, unlike the book above, it barely talks about object-oriented programming languages, and garbage collection, for instance.

Calls

Monday, January 30th, 7am PST

Video 1

Video 2

Intro to the course, what we're trying to do, and why. Assignment 1.1, writing a scanner. Short talk on how to write a scanner by hand, and longer talk about the state machines that scanner generators produce. Preliminary book recommendations.

Friday, February 3rd, 2pm PST

Video

Implementing assignment 1.1. Explaining assignment 1.2, writing a parser for integers and if expressions.

Sunday, February 26th, 2pm PST

Video

Implementing assignment 1.2. Explaining assignment 1.3, writing an interpreter for integer and if expressions.

Friday, March 3rd, 2pm PST

Video

Implementing assignment 1.3. Explaining assignment 1.4, writing a parser for unary and binary expressions.

Monday, March 6th, 7am PST

Video

Implementing assignment 1.4. Explaining assignment 1.5, interpreting operator expressions.

Monday, March 20th, 7am PST

Video

Implementing assignment 1.5. Explaining assignment 1.6, parsing let expressions and identifiers.

Sunday, March 26th, 2pm PST

Video

Implementing assignment 1.6. Explaining assignment 1.7, interpreting let and identifiers.

Wednesday, April 5th, 10am PST

Video

Implementing assignment 1.7. Explaining assignment 1.8, parsing loop and recur.

Saturday, April 15th, 1:30pm PST

Video

Implementing assignment 1.8. Explaining assignment 1.9, interpreting loop/recur.

Friday, April 21st, 2pm PST

Video

Implementing assignment 1.9. Explaining assignment 1.10, operator precedence.

Clone this wiki locally