Compilers: Theory and Practice (Udacity)

Compilers: Theory and Practice (Udacity)

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.

Class Deals by MOOC List - Click here and see Udacity's Active Discounts, Deals, and Promo Codes.

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.

What You Will Learn

Lesson 1
Front End

  • Compiler Phases
  • Scanners & Parsers
  • Semantic Analysis

Lesson 2
Middle End

  • Syntax Directed Translation
  • Control Structures and Back-patching
  • Function and Procedure Calls & Runtime Organization

Lesson 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.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

RISC-V Toolchain and Compiler Optimization Techniques (edX) EdX
Linux Foundation,LinuxFoundationX

RISC-V Toolchain and Compiler Optimization Techniques (edX)

Develop a working knowledge of the internals of compiler toolchains and compiler optimization techniques with a focus on RISC-V applications. As RISC-V has made it easier to bring up processor chipsets, the need for compiler engineers in the RISC-V ecosystem has increased. There is an implicit need for toolchain experts who can help RISC-V vendors gain an edge over competitors with their expertise in compilation technologies. Learning about internals of the toolchain, building and debugging RISC-V applications will allow you to work with thousands of companies that are building the latest hardware technologies.

Self Paced
Self-Paced
Firebase Analytics: Android (Udacity) Udacity
Udacity,Google

Firebase Analytics: Android (Udacity)

Improve your apps with better user data. In this course, you’ll learn how to grow an app's user base using Firebase Analytics, a free and unlimited analytics solution. You'll be able to learn who your users are and how they interact with your app. You can then use this information to make informed decisions to improve your app, such as how difficult to make a level in a game, where to place an advertisement, or what products to stock.

Self Paced
Self-Paced
Writing, Running, and Fixing Code in C (Coursera) Coursera
Duke University

Writing, Running, and Fixing Code in C (Coursera)

Building on the course Programming Fundamentals, this course will teach you how to write code by first planning what your program should do—an important approach for novice and professional programmers. You will learn how to compile and run your program, and then how to test and debug it. This course builds on the Seven Steps you have already learned and provides a framework for systematically testing for problems and fixing them, so you can find and fix problems efficiently.

Oct 19th 2026
4 Weeks
Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera) Coursera
Hebrew University of Jerusalem

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera)

In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform.

Oct 12th 2026
5-12 Weeks
Compilers (edX) EdX
StanfordOnline

Compilers (edX)

This self-paced course will discuss the major ideas used today in the implementation of programming language compilers, including lexical analysis, parsing, syntax-directed translation, abstract syntax trees, types and type checking, intermediate languages, dataflow analysis, program optimization, code generation, and runtime systems.

Self Paced
Self-Paced
Scalable Microservices with Kubernetes (Udacity) Udacity
Udacity,Google

Scalable Microservices with Kubernetes (Udacity)

Master infrastructure management. This course is designed to teach you about managing application containers, using Kubernetes. We've built this course in partnership with experts such as Kelsey Hightower and Carter Morgan from Google and Netflix’s former Cloud Architect, Adrian Cockcroft (current Technology Fellow at Battery Ventures), who provide critical learning throughout the course.

Self Paced
Self-Paced
Intel® Edge AI Fundamentals with OpenVINO™ (Udacity) Udacity
Udacity

Intel® Edge AI Fundamentals with OpenVINO™ (Udacity)

Develop cutting-edge Edge AI applications. Stay at the cutting-edge of AI technology by gaining practical skills for deploying edge AI. Learn how to use the Intel® Distribution of the OpenVINO™ toolkit to deploy computer vision capabilities inside a range of edge applications. Leverage the potential of edge computing and use the Intel® Distribution of the OpenVINO™ toolkit to fast-track development of high-performance computer vision and deep learning inference applications.

Self Paced
Self-Paced
Embedded Systems (Udacity) Udacity
Georgia Institute of Technology,Udacity

Embedded Systems (Udacity)

The goal of this course is to take a holistic view of the embedded system stack with a focus on processor architectures, instruction sets and the associated advanced compiler optimizations that take advantage of the same. In the 21st century, embedded systems are the systems of future with cellular phones, smart-phones, tablets becoming the dominant platforms for computing and communication. The ubiquity of information and the associated need for the computation that accompanies it is driving this revolution only to be accelerated by the new paradigms such as the Internet-of-Things (IoT).

Self Paced
Self-Paced