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
EU policy and implementation: making Europe work! (Coursera) Coursera
Leiden University

EU policy and implementation: making Europe work! (Coursera)

People have become more critical of EU policy and often seem to prefer local policy solutions in response to globalisation problems. How do you experience EU policy? Does it help? And if not, how can we change this? In this course, we learn how the European Union prepares and decides on policy, and how policy is transferred to member states and implemented by various authorities, including regional and local governments. We discuss the challenges of the European multi-level governance structure. We also focus on the main causes of policy failure or success. On this journey, we focus on actual policy and present the views of various experts: how easy is it to establish yourself in another EU-country?

Sep 28th 2026
5-12 Weeks
Programming with Scratch (Coursera) Coursera
The Hong Kong University of Science and Technology - HKUST

Programming with Scratch (Coursera)

Learning coding is not only about understanding the programming language being used, but also developing important computational thinking skills, which are useful for problem solving across many disciplinary areas. In this course, students will learn basic programming skills by creating interactive storybooks, animations, and games with Scratch, which is a block-based visual programming language for anyone new to coding.

Sep 28th 2026
5-12 Weeks
Online Course Development: Planning and Implementation (edX) EdX
The University of British Columbia,UBCx

Online Course Development: Planning and Implementation (edX)

Determine key considerations for preparing and developing an online course or program, from technology selection to change management. Successful online education requires substantial groundwork before instructors can get started on course design and delivery. Designed for educators, administrators and educational leaders required to make decisions about digital learning technologies and frameworks, this short course prepares you to confidently navigate this process and build the crucial foundations for rewarding remote learning experiences.

Self Paced
Self-Paced
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
Introduction to SQL (edX) EdX
IBM

Introduction to SQL (edX)

Learn how to use and apply the powerful language of SQL to better communicate and extract data from databases - a must for anyone working in Data Engineering, Data Analytics or Data Science. Much of the world's data lives in databases. SQL (or Structured Query Language) is a powerful programming language that is used for communicating with and manipulating data in databases.

Self Paced
Self-Paced
Shell Programming - A necessity for all Programmers (edX) EdX
IIT Bombay,IITBombayX

Shell Programming - A necessity for all Programmers (edX)

Unleash your Linux scripting skills and amaze others with your productivity level. Various programming languages have gained popularity since 1970. Starting with Assembly, C, C++, and moving towards Java, Python, and finally building of backend and frontend frameworks, all of these became popular and were or getting replaced with some other language or framework. Shell programming (scripting) is the only programming language that has been popular and the choice of programmers, testers, system administrators, etc., from 1970 to date (21st century).

Self Paced
Self-Paced
The Cybersecurity Culture Blueprint: A Proactive Approach (Coursera) Coursera
LearnQuest

The Cybersecurity Culture Blueprint: A Proactive Approach (Coursera)

In today's rapidly evolving digital landscape, the importance of cybersecurity cannot be overstated. Threats to organizations, both large and small, are on the rise, and the consequences of security breaches can be devastating. It's no longer enough to rely solely on technical solutions; a resilient cybersecurity culture is essential.

Sep 28th 2026
4 Weeks