In this course, we explore a very powerful technique. We will develop our own interpreters and compilers for small domains.
Screencasts, Whiteboards, and Slides produced to help you learn
Parts of courses on specific topics
We modify the compiler to add static scope information. Even though we don’t know the value of variables until runtime, we do know the names of the variables at compile time. We can use that to make missing variables a compiler error.
We take our trusty Crisp evaluator (interpreter) and step-by-step convert it into a compiler using a common and simple compiler technique.
We add more compile-time optimizations and use tests to drive them.
We begin converting our Hiccup interpreter to a Hiccup compiler. That allows us to do compile-time optimizations.
We define the terms Interpreter and Compiler, and build a model of how they work.