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

Rebo-binario (Coursera) Coursera
Universidad Autónoma Metropolitana

Rebo-binario (Coursera)

Te damos la bienvenida al curso en línea Rebo-binario, un curso diseñado para incentivar el desarrollo de habilidades mentales relacionados al pensamiento computacional y creativo para la resolución de problemas y la reflexión crítica. Para lograr este cometido echamos mano de estrategias del pensamiento computacional y la creatividad como saberes para el uso y apropiación de herramientas digitales y tecnologías informáticas.

Nov 23rd 2026
3 Weeks
Designing and Implementing Your Coaching Strategy (Coursera) Coursera
University of California, Davis

Designing and Implementing Your Coaching Strategy (Coursera)

In order to be an effective manager in increasingly fast-paced and complex organizational environments, coaching skills to develop and get the best work out of employees has become essential. Throughout the Coaching Skills for Managers specialization, we’ve discussed many topics for improving coaching conversations with our employees. It is now time to put all of that theory and discussion into practice as you solidify your coaching philosophy, develop your coaching practice and agendas, and demonstrate mastery at handling everyday coaching conversations!

Nov 16th 2026
3 Weeks
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
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
Software, Programming, and Database Basics (edX) EdX
IBM

Software, Programming, and Database Basics (edX)

This course introduces the fundamentals of software, programming languages, web browsers, cloud computing and database concepts. Maintaining and updating software is an important activity for a Technical Support role. There are many types of software, and understanding software can be overpowering. This course introduces the fundamentals of software and how to manage software from an information technology (IT) perspective.

Self Paced
Self-Paced
Secure Software Development: Implementation (edX) EdX
Linux Foundation,LinuxFoundationX

Secure Software Development: Implementation (edX)

Learn the practical steps software developers can take, even if they have limited resources, to implement secure software. Modern software is under constant attack, but many software developers have never been told how to effectively counter those attacks. This course works to solve that problem, by explaining the fundamentals of developing secure software.

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
Programação para todos (Conceitos básicos de Python) (Coursera) Coursera
University of Michigan

Programação para todos (Conceitos básicos de Python) (Coursera)

Este curso tem como objetivo ensinar a todos os conceitos básicos de programação de computadores usando Python. Abordamos o básico de como criar um programa a partir de uma série de instruções simples em Python. O curso não tem pré-requisitos e evita tudo, exceto a matemática mais simples. Qualquer pessoa com experiência moderada em computadores deve ser capaz de dominar os materiais deste curso. Este curso abordará os capítulos 1 ao 5 do livro “Python para Todos”.

Nov 16th 2026
5-12 Weeks