EdX

Compilers (edX)

Offered by 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.

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

As a result, you will learn how a program written in a high-level language designed for humans is systematically translated into a program written in low-level assembly more suited to machines. Along the way we will also touch on how programming languages are designed, programming language semantics, and why there are so many different kinds of programming languages.
The course lectures will be presented in short videos. To help you master the material, there will be in-lecture questions to answer, quizzes, and two exams: a midterm and a final. There will also be homework in the form of exercises that ask you to show a sequence of logical steps needed to derive a specific result, such as the sequence of steps a type checker would perform to type check a piece of code, or the sequence of steps a parser would perform to parse an input string. This checking technology is the result of ongoing research at Stanford into developing innovative tools for education, and we're excited to be the first course ever to make it available to students.
An optional course project is to write a complete compiler for COOL, the Classroom Object Oriented Language. COOL has the essential features of a realistic programming language, but is small and simple enough that it can be implemented in a few thousand lines of code. Students who choose to do the project can implement it in either C++ or Java.

What you'll learn
Everything that computers do is the result of some program, and all of the millions of programs in the world are written in one of the many thousands of programming languages that have been developed since the 1950’s. Designing and implementing a programming language turns out to be difficult; some of the best minds in computer science have thought about the problems involved and contributed beautiful and deep results. Learning something about compilers will show you the interplay of theory and practice in computer science, especially how powerful general ideas combined with engineering insight can lead to practical solutions to very hard problems. Knowing how a compiler works will also make you a better programmer and increase your ability to learn new programming languages quickly.

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

Related Courses

Designing for Textiles (edX) EdX
Smithsonian,SmithsonianX

Designing for Textiles (edX)

The Designing for Textiles workshop provides those who work in traditional crafts-based media with an introduction, or refresher, to design education through the lens of Armenian textiles. Based on an in-person training program that took place in 2018 through the My Armenia program, this workshop is a series of lessons and extension activities that build upon one another and encourage you to innovate in your own textiles-based design work.

Self Paced
Self-Paced
Programming Languages, Part A (Coursera) Coursera
University of Washington

Programming Languages, Part A (Coursera)

This course is an introduction to the basic concepts of programming languages, with a strong emphasis on functional programming. The course uses the languages ML, Racket, and Ruby as vehicles for teaching the concepts, but the real intent is to teach enough about how any language “fits together” to make you more effective programming in any language -- and in learning new ones.

Sep 7th 2026
5-12 Weeks
Introduction to Complex Analysis (Coursera) Coursera
Wesleyan University

Introduction to Complex Analysis (Coursera)

This course provides an introduction to complex analysis which is the theory of complex functions of a complex variable. We will start by introducing the complex plane, along with the algebra and geometry of complex numbers, and then we will make our way via differentiation, integration, complex dynamics, power series representation and Laurent series into territories at the edge of what is known today.

Sep 14th 2026
5-12 Weeks
Learn Imba (Coursera) Coursera
Scrimba

Learn Imba (Coursera)

In this class, you'll dive into Imba, the programming language used to build scrimba.com. Imba, a compile-to-JavaScript language, packs a punch with nifty features for whipping up web apps, including built-in tags and styles. We'll cover the ABCs of Imba syntax and work on creating a Dopamine Box app. By the finish line, you'll be armed with the skills to construct your very own web app UI using Imba.

Sep 14th 2026
1 Week
Cracking the Creativity Code: Discovering Ideas (Coursera) Coursera
Technion - Israel Institute of Technology

Cracking the Creativity Code: Discovering Ideas (Coursera)

Skill at discovering new ideas, and delivering them, may be one of the most important practical job skills, in today’s and tomorrow’s job market. Creativity is an acquired skill, one that improves with practice. This course aims to empower individuals who believe they have lost their innate creativity, because they, their employers or teachers prefer the three R's: replication, repetition and rote, to innovation. We show how to re-ignite rusty creative powers. During this course, you will learn proven tools, frameworks and concepts useful for discovery– generating an endless stream of new ideas implementing at least some of those ideas with skill and persistence, based on books and articles written by the instructors.

Aug 31st 2026
5-12 Weeks
Sustainable Packaging in a Circular Economy (edX) EdX
Delft University of Technology,DelftX

Sustainable Packaging in a Circular Economy (edX)

Learn how to apply the principles of the circular economy to sustainable packaging systems. It has become almost impossible to imagine what our lives would be like without the many benefits of packaging - just think about the different packaging and single-use items you use on a daily basis. Yet as our global population grows in size and affluence, both our collective demand for packaging materials and the waste we generate as a result will increasedramatically.

Self Paced
Self-Paced
An Introduction to Interactive Programming in Python (Part 2) (Coursera) Coursera
Rice University

An Introduction to Interactive Programming in Python (Part 2) (Coursera)

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple.

Sep 7th 2026
4 Weeks
Building No-Code Apps with AppSheet: Implementation (Coursera) Coursera
Google Cloud

Building No-Code Apps with AppSheet: Implementation (Coursera)

This course teaches you how to implement various capabilities that include data organization and management, application security, actions and integrations in your app using AppSheet. The course also includes topics on managing and upgrading your app, improving performance and troubleshooting issues with your app.

Sep 7th 2026
3 Weeks