Link Search Menu Expand Document

Compiler Design

Spring 2024 @ NYCU with Prof. Yi-Ping You

Assignment 3 is now released!

Apr 18 · 1 min read

Dear students, we’re thrilled to announce that the third assignment is now released! :boom: The deadline for submission is May 5, at 23:59 (Sun.).

As mentioned by the professor at the beginning of the semester, this assignment is more challenging than the previous ones, as we’re going to build our own abstract syntax tree for further analysis, but we’re confident that you can do it. Good luck! :four_leaf_clover:

We recommend diving into this assignment as early as possible. :flight_departure: If you have any questions, don’t hesitate to ask on the forum or send us an email if you need to disclose some code. :nerd_face:

Assignment 2 is now released!

Mar 28 · 1 min read

Dear all, we’re excited to share with you the second assignment of the course. 🎉 The deadline for submission is April 14 at 23:59 (Sun.).

For this assignment, we will describe the syntax of our simple language, showing you how a program should look. You are kindly requested to write a parser that can parse the input program (although we are not yet building an abstract syntax tree). 💪

If you have any questions or if you’re unsure about the definitions, don’t hesitate to ask for our clarification or help. 🤗

Assignment 1 is now released!

Mar 7 · 1 min read

Hi, folks! We’re excited to announce that the first assignment is now released. Roll up your sleeves and embark on this journey! 🥳 The deadline for submission is March 21, at 23:59 (Thurs.).

For this assignment, we’ve given you the character set of our simple programming language, and your task is to write a lexer to tokenize the input program. 🤩

If you encounter any unclear definitions or have questions, don’t hesitate to reach out to us in the Discussion repo. We’re here to assist you every step of the way!

All announcements

Overview

This course is intended to explore the principal ideas and techniques of compiler construction. Topics include lexical analysis, syntax analysis including LL and LR parsers, type checking, run-time environments, symbol tables, code generation, and compiler-construction tools.

This course aims to give you a solid foundation in the theory of compiler construction as well as the experience of building a compiler. Much of what you have learned about algorithms and data structures will come to bear as you study and implement the various components of a compiler. In a sense, compiler construction is a showcase for many other disciplines of computer science.

Goals

  • To learn structure of compilers.
  • To learn basic techniques used in compiler construction such as lexical analysis, top-down and bottom-up parsing, context-sensitive analysis, and intermediate code generation.
  • To learn basic data structures used in compiler construction such as abstract syntax trees, symbol tables, three-address code, and stack machines.
  • To learn software tools used in compiler construction such as lexical analyzer generators (Lex), and parser generators (Yacc).
  • To construct a compiler for a small language using the above techniques and tools.

Back to top

This website is built using Kevin Lin's Just the Class Jekyll template.