Spring 2024
CSE322 Compiler
Course Description
Welcome to CSE322 Compiler! 🐉 Can you imagine programming without a compiler? No way. This implies the importance of compilers in computer engineering. This course will teach you the basic concepts of compilers from front-end compilation to back-end compilation. Additionally, you will have a chance to implement a tiny compiler in this course.
Time & Location
Tuesday 10:30-11:45 @ College of Electronics Information and Applied Science B06
Thursday 10:30 -11:45 @ College of Electronics Information and Applied Science B06
Objectives
Learn how compilers translate a program
Understand the role of compilers
Know the basic algorithms used in modern compilers
Structure
This course consists of three parts:
Lecture will be given by the instructor, covering the core concepts of compilers in depth.
Exercise will be conducted before midterm and final exams where sample questions are shared and discussed with students.
Assignment will be released at the end of a corresponding part where students will be asked to complete a given code. The details of each assignment will be given at the time of its release.
Schedule
Assignment
Assignment 0. Your First Functional Programming 🏁
Deadline: March 29, 2024 March 31, 2024
Link: Handout
Instructions
Download as0.zip on LMS
Read the handout and complete the tasks
Submit your as0.zip on LMS
Please do "dune clean" before you zip the folder!
Assignment 1. Lexical Analysis ✂️
Deadline: April 19, 2024 April 28, 2024
Link: Handout
Instructions
Download as1.zip on LMS
Read the handout and complete the tasks
Submit your as1.zip on LMS
Important! Zip the files inside the as1 folder rather than zip the entire as1 folder
Please do "dune clean" before you zip the folder!
Assignment 2. Syntax Analysis 📜
Deadline: May 24, 2024 May 31, 2024
Link: Handout
Instructions
Download as2.zip on LMS
Read the handout and complete the tasks
Submit your as2.zip on LMS
Important! Zip the files inside the as2 folder rather than zip the entire as2 folder
Please do "dune clean" before you zip the folder!
Assignment 3. Type Checking
Deadline: June 21, 2024
Link: Handout
Instructions
Submit your as3.zip on LMS
Important! Zip the files inside the as3 folder rather than zip the entire as3 folder
Please do "dune clean" before you zip the folder!
Evaluation
The grade will be given according to the following grading percentages.
Midterm Exam 35%
Date: April 25, 2024 10:30 - 11:45
Format: Written exam, open book
Coverage: Chapter 1. Introduction - Chapter 5. Semantic Analysis
Final Exam 35%
Date: June 20, 2024 10:30 - 11:45
Format: Written exam, open book
Coverage: Chapter 1. Introduction - Chapter 11. Register Allocation
Assignment 20%
Attendance 10%
Literature
Andrew W. Appel and Maia Ginsburg: Modern Compiler Implementation in ML. Cambridge University Press. 2004.