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
- Class 1.1: Programming Languages (Monday 17 August)
- Class 1.2: Language Specification (Wednesday 19 August)
- Class 1.3: LLVM intro (Monday 24 August)
- Class 1.4: Scanning "by hand" in Java (Wednesday 26 August)
Homeworks
Labs
- Lab 1.1: Specifications for language with Just Strings (due 23:59 on Wednesday 26 August)