This unit introduces the main goals of the course and the idea of designing and implementing a programming language. Some major concepts are the distinction between syntax and semantics, the need for careful, clear specs free of underspecified behavior, and the role of intermediate languages in compiler design.

We will get an intro to the LLVM IR language and design and implement a new language that supports just basic string operations.

Classes

Homeworks

Labs