everything.study
CSE 40243

Compilers and Language Design

(3 Credit Hours) · Undergraduate

Compilers is a challenging and fun course for students who are planning a career in advanced software development. In this class, students will design and implement a complete compiler for a C-like language from top to bottom. The course brings together many different elements of computer science, ranging from the theoretical (formal grammar classes) to the very practical (x86 assembly language) with a pinch of software engineering in the middle. After completing the course, you will be able to write programs that manipulate computer languages in different ways, ranging from simple interactive calculators to programs that translate one language to another. Students completing the course may also experience some side effects: (1) You will learn how to use pointers really well. (2) You will gain experience in engineering a complex piece of software including revision control, testing, and evolution. (3) You will understand the C language inside and out, which will make you a better programmer all around.

Fall 2025

Topics

  • Lexical scanning
  • Parsing
  • Pretty printing
  • Type checking
  • Code generation
  • X86 assembly language
  • Automata theory

Readings

Sources