“This course presents an introduction to creating language processors, like compilers. The techniques and tools of the course are not limited to compilers, but can be applied to transpilers, interpreters, domain-specific languages (DSLs) and other applications. In the seven weeks of the term you will learn about the phases of a compiler, the basic techniques and tools of lexical analysis (scanners), syntactic analysis (parsing), semantic analysis, and code generation. You will also implement a full compiler for a small programming language.”
CS 4533 went over the steps for making a compiler from scratch, which was implemented during the term. The custom language, WPL, was a simplified version of C. It included mathematical operations, functions, variables, types, loops, and arrays. Each step was implemented one at a time, with tests supporting each of the parts to ensure that the language was valid for various uses and edge cases.