Compiler Construction

Instructor: Mooly Sagiv
TA: Yotam Feldman

Lecture: Recitations:

This is a basic course in Programming Language Implementations. It covers basic topics such fundamentals of compilers and interpreters; symbol tables; lexical analysis, syntax analysis, semantic analysis, code generation, and optimizations for general purpose programming languages. It also covers advanced topics such compilation infrastructures and static analysis

The course is inspired by courses such as CIS 341 at Upenn taught by Steve Zdancewic. Our course and the projects are taught in Java. A lot of material is taken from the K31 Compiler Course at the University of Athens taught by Yanis Smardakis Finally, we also follow some of the lessons learned in the university of Washington Compiler course taught by Hal Perkins

Prerequisites: Computer Models and Operating Systems.

The grade of the course will be based on 70% homework assignments, and 30% exam.

Reading Material

Course Material

Material for the recitation and exercises is available here.

Lecture Recitation Exercise
20/10 Overview PPTX
Abstract Syntax PPTX Lecture Video
22/10 MiniJava and AST
27/10 Assembler/Linker and Loader PPTX
X86 PPTX
Lecture Video
29/10 Visitor patterns and resolving method names Ex. 1 - Variable and method renaming
Due 19/11/2020
3/11 Intermediate Representation PPTX 5/11 Symbol Tables
10/11 LLVM PPTX 12/11 LLVM
17/11 Code Generation PPTX 19/11 LLVM Code Generation Ex. 2 - LLVM Code Generation
Due 10/12/2020
24/11 Object Oriented Code Generation PPTX 26/11 LLVM Object Oriented Code Generation
1/12 Semantic Analysis PPTX 3/12 Semantic Analysis and Type Checking
8/12 Static Analysis PPTX 10/12 Static Analysis
Ex. 3 - Semantic Analysis
Due 30/12/2020
15/12 Lexical Analysis PPTX 17/12 Lexical Analysis
22/12 Top Down Parsing PPTX 24/12 Top-Down Parsing
29/12 Bottom-Up Parsing PPTX 31/12 Bottom-Up Parsing Ex. 4 - Lexing and Parsing
Due 14/1/2021
5/1 Dynamic Memory Allocation and Garbage Collection PPTX 7/1 x86 Code Generation and Activation Records
12/1 Course Summary PPTX 14/1 Exam Reversals

Course Forum

In the course's Moodle page.

Past Exams

A directory with old exams ignore the IC language