Compilers (saylor.org)

Offered by Saylor.org,
Compilers (saylor.org)

This course will introduce you to the compilation process, present foundational topics on formal languages and outline each of the essential compiler steps: scanning, parsing, translation and semantic analysis, code generation, and optimization.

Because we have compiler programs, software developers often take the process of compilation for granted. However, as a software developer, you should cultivate a solid understanding of how compilers work in order to develop the strongest code possible and fully understand its underlying language. In addition, the compilation process comprises techniques that are applicable to the development of many software applications. As such, this course will introduce you to the compilation process, present foundational topics on formal languages and outline each of the essential compiler steps: scanning, parsing, translation and semantic analysis, code generation, and optimization. By the end of the class, you will have a strong understanding of what it means to compile a program, what happens in the process of translating a higher-level language into a lower-level language, and the applicability of the steps of the compilation process to other applications.

Upon successful completion of this course, the student will be able to:

Describe the compilation process and explain the function of the components that comprise the structure of a compiler.

Apply concepts of formal languages and finite-state machines to the translation of computer languages.

Identify the compiler techniques, methods, and tools that are applicable to other software applications.

Describe the challenges and state-of-the-practice of compiler theory and practice.

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

Related Courses

Cyber Threat Hunting (Coursera) Coursera
Infosec

Cyber Threat Hunting (Coursera)

Learn repeatable, documentable cyber threat hunting methodologies and types of tools that will make your threat hunting more effective. This learning path progresses through six courses, in which you will build core hunting skills such as intelligence gathering, investigation techniques and remediation methods. Upon completion, you'll have the knowledge and skills to carry out cyber threat hunting activities with an organization that will ultimately deliver proactive defenses against possible debilitating data compromise.

Oct 12th 2026
5-12 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
Web3 and Blockchain Fundamentals (Coursera) Coursera
INSEAD

Web3 and Blockchain Fundamentals (Coursera)

There is a lot of hype around Web3 and blockchain. As with any disruptive technology, there are many competing sources of information. But if we look beyond the hype and mania—not to mention the fear, uncertainty, and doubt—we see something profound happening. We are witnessing one of the largest transformations of wealth in human history—from paper-based analog assets to digital ones. Blockchain represents the first native digital medium for value, and is foundational to the next generation of the Internet—also known as Web3.

Oct 12th 2026
1 Week
Open Source Licensing Basics for Software Developers (Linux Foundations) The Linux Foundation
Linux Foundation

Open Source Licensing Basics for Software Developers (Linux Foundations)

Because open source is now found everywhere software exists, a good working knowledge of open source licensing and compliance is critical. This course is designed to teach software developers and producers why it is important to add copyrights and licenses to their code, as well as how to do so.

Self Paced
Self-Paced
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
Prepare for a Software Development Career (FutureLearn) FutureLearn
FutureLearn

Prepare for a Software Development Career (FutureLearn)

Review everything you need to know about Java and Python to start a career as a software developer. Cement your foundational knowledge of Python and Java and kickstart your career in software development. You’ll apply object-oriented programming principles to Java, and go deeper on methods, constructors, strings, inheritance, classes, and collection.

Self Paced
4 Weeks
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
Software Development: Introducing Java (FutureLearn) FutureLearn
FutureLearn

Software Development: Introducing Java (FutureLearn)

Explore how Java can help support your software development career and learn its basic uses and functions. Becoming a software developer requires you to confidently use programming languages such as Python and Java to design, build, and fix software. This course is designed to build your existing Python knowledge and introduce you to Java and its applications within the development environment.

Self Paced
4 Weeks