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

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.

Nov 2nd 2026
3 Weeks
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
The Art of Negotiation (Coursera) Coursera
University of California, Irvine

The Art of Negotiation (Coursera)

The art of negotiation comes into play daily in the life of employees at all levels and in every position. Participants explore how current approaches to negotiation strategy and tactics are used, what negotiation entails, types of negotiation relationships that exist from hard bargain to win-win, to fully partnered relationships and personal ones. The course explores the personal and behavioral characteristics of an effective negotiator. Participants discuss how empowerment, power, and authority affect the negotiation process and outcome. Topics include how important it is to plan and prepare for a negotiation session.

Oct 26th 2026
4 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
Introduction to Web Development with HTML5, CSS3, and JavaScript (edX) EdX
IBM

Introduction to Web Development with HTML5, CSS3, and JavaScript (edX)

Learn the key tools and programming languages to bootstrap your career as a Cloud Developer. Get started with web development using HTML5, CSS3, JavaScript and GitHub. Want to take the first steps to become a Cloud Application Developer? This self-paced online course will lead you through the programming languages and tools you will need to develop your own Cloud and Web Applications.

Self Paced
Self-Paced
Estruturas de dados Python (Coursera) Coursera
University of Michigan

Estruturas de dados Python (Coursera)

Este curso apresentará as estruturas de dados centrais da linguagem de programação Python. Vamos superar os fundamentos da programação de procedimentos e explorar como podemos usar as estruturas de dados integradas do Python, como listas, dicionários e tuplas, para realizar análises de dados cada vez mais complexas. Este curso cobrirá os capítulos 6 a 10 do livro “Python para Todos”. Este curso aborda o Python 3.

Nov 2nd 2026
5-12 Weeks
Road safety in the Caribbean region: institutions and data management (edX) EdX
Inter-American Development Bank - IDB,IDBx

Road safety in the Caribbean region: institutions and data management (edX)

Learn about the current state of road safety in our region, its main challenges, and areas of action. Can you imagine being able to contrast your opinions and experiences with people like Lieutenant Colonel, Enrique, from Ecuador, or other practicing public managers and representatives of Civil Society organizations from all over the region? In this course, you will have that opportunity, and also, access to videos of international specialists from various organizations (IDB, PAHO / WHO, WRI, LatinNCAP among others); readings; real cases from the region; recommendations; practical activities and discussion forums.

Self Paced
Self-Paced