Spring 2023
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 B05
Thursday 10:30 -11:45 @ College of Electronics Information and Applied Science B05
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 30, 2023
Link: Handout
Instructions
Connect to the course server as announced before.
Copy the assignment folder to your home folder by executing the following command in the terminal.
cp -r /opt/cse322/as0 ~
Read the handout and complete the tasks.
Submit task1.sml and task2.sml on LMS.
Assignment 1. Lexical Analysis ✂️
Deadline: April 27, 2023 April 30, 2023
Link: Handout
Instructions
Connect to the course server.
Copy the assignment folder to your home folder by executing the following command in the terminal.
cp -r /opt/cse322/as1 ~
Read the handout and complete the tasks.
Submit fun.lex on LMS.
Assignment 2. Syntax Analysis 📜
Deadline: June 2, 2023 June 4, 2023
Link: Handout
Instructions
Connect to the course server.
Copy the assignment folder to your home folder by executing the following command in the terminal.
cp -r /opt/cse322/as2 ~
Read the handout and complete the tasks.
Submit fun.grm on LMS.
Assignment 3. Type Checking
Deadline: June 20, 2023 June 23, 2023
Link: Handout
Instructions
Connect to the course server.
Copy the assignment folder to your home folder by executing the following command in the terminal.
cp -r /opt/cse322/as3 ~
Read the handout and complete the tasks.
Submit typecheck.sml on LMS.
Evaluation
The grade will be given according to the following grading percentages.
Midterm Exam 30%
Date: April 25, 2023 10:30 - 11:45
Format: Written exam, open book
Coverage: Chapter 1 Introduction - Chapter 5 Semantic Analysis
Final Exam 40%
Date: June 15, 2023 10:30 - 11:45
Format: Written exam, open book
Coverage: Chapter 1 Introduction - Chapter 12 Putting It All Together
Assignment 20%
Attendance 10%
Literature
Andrew W. Appel and Maia Ginsburg: Modern Compiler Implementation in ML. Cambridge University Press. 2004.