Skip to content

Compilers: Theory and Practice

Free Course

Offered at Georgia Tech as CS 8803

Related Nanodegree Program

Flying Car and Autonomous Flight Engineer

In collaboration with
  • Georgia Institute of Technology

About this course

The objective of this course is to learn the theory and practice behind building automatic translators (compilers) for higher level programming languages and to engineer and build key phases of a compiler in Java or C++ for a small language.

What you will learn

  1. Front End
    • Compiler Phases
    • Scanners & Parsers
    • Semantic Analysis
  2. Middle End
    • Syntax Directed Translation
    • Control Structures and Back-patching
    • Function and Procedure Calls & Runtime Organization
  3. Back-end
    • Register Allocation & Instruction Selection
    • Code layout and Code Generation
    • Brief Introduction to Code Optimization

Prerequisites and requirements

Good knowledge of data structures and algorithms, good programming skills and ability to write sizeable software in Java or C++. Should be able to work in Linux environment.

See the Technology Requirements for using Udacity.

Why take this course?

Take this course if you need to develop the skills necessary to work on create compilers and similar tools for modern operating systems and devices.

Learn with the best.

  • Santosh Pande
    Santosh Pande


  • Catherine Gamboa
    Catherine Gamboa