Link Search Menu Expand Document

Introduction to Compiler Design

Fall 2023 @ NYCU with Prof. Yi-Ping You

Thanks and Farewell

Jan 14 · 1 min read

Dear Students,

As we reach the culmination of our journey through the “Introduction to Compiler Design” course, we, the TAs, want to express our heartfelt gratitude for your active participation and enthusiasm.

The path of compiler design is undoubtedly challenging, and we appreciate the effort and dedication each one of you has put into mastering the concepts. Your engagement, questions, contributions, and valuable feedback have played a crucial role in shaping the course and enhancing the learning experience for everyone. :smile:

Together, we’ve navigated through the intricacies of compiler design, and your commitment to the subject has not gone unnoticed. As TAs, we are grateful for the opportunity to assist you on this academic adventure. 🥰

As the semester concludes, we bid you farewell. We hope the knowledge and skills gained during this course will serve as a strong foundation for your future endeavors. Remember that the learning journey doesn’t end here; it’s a continuous process of growth and discovery.

Thank you once again for being an integral part of this course. We wish you success in all your future academic and professional pursuits. :muscle:

Farewell and best wishes! :wave:

TAs

Assignment 5 is now released!

Dec 26 · 0 min read

Welcome to the final assignment of the Compiler Design Adventure! The submission deadline is January 12th, 2024, at 23:59 (Fri.).

For this assignment, your task is to generate RISC-V assembly code that can be executed on a RISC-V simulator. :joystick:

If you encounter any challenges during the setup process, don’t hesitate to reach out to our TAs. :grinning:

Assignment 4 is now released!

Dec 6 · 1 min read

We are excited to announce the availability of Assignment 4! :nerd_face: The submission deadline is December 24th, at 23:59 (Sun.).

Similar to the previous assignment, this task also requires a substantial amount of work. Once again, we encourage you to start early. While the road ahead may not be easy, we assure you that by tackling this assignment, you will not only gain valuable insights into how compilers utilize the symbol table for type checking but also learn software practices for implementing interactions between objects. :muscle:

Should you face any challenges while working on this assignment, please don’t hesitate to reach out to us, the teaching assistants. :grin:

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.