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

Business Considerations for 5G with Edge, IoT, and AI (Coursera) Coursera
EDUCBA

Business Considerations for 5G with Edge, IoT, and AI (Coursera)

By completing this course, learners will be equipped with the knowledge and skills necessary to navigate the complex landscape of 5G technology and its intersection with edge computing, IoT, and AI. They will gain a comprehensive understanding of how these technologies converge to drive business innovation and success in the digital age. Real-world case studies and practical insights will enable participants to apply their learning directly to their organizations, fostering a competitive advantage in the rapidly evolving marketplace.

Nov 16th 2026
2 Weeks
Cloud Security on AWS (Coursera) Coursera
Edureka

Cloud Security on AWS (Coursera)

Welcome to the Cloud Security on AWS course, where you'll embark on a journey to acquire practical expertise in building a robust understanding of cloud security fundamentals, AWS security services, advanced threat detection, secure network design, data protection, encryption techniques, and incident response planning while ensuring compliance with AWS standards and governance best practices.

Nov 16th 2026
1 Week
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
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
Cryptography (saylor.org) Saylor Academy
Saylor.org

Cryptography (saylor.org)

Cryptography is essentially the science of writing in secret code. In data and telecommunications, cryptography has specific security requirements, such as authentication, privacy or confidentiality, integrity, and non-repudiation. To meet these security requirements, we employ secret key (or symmetric) cryptography, public-key (or asymmetric) cryptography, and hash functions.

Self Paced
Self-Paced
Computer Architecture (saylor.org) Saylor Academy
Saylor.org

Computer Architecture (saylor.org)

Modern computer technology requires an understanding of both hardware and software, as the interaction between the two offers a framework for mastering the fundamentals of computing. The purpose of this course is to cultivate an understanding of modern computing technology through an in-depth study of the interface between hardware and software.

Self Paced
Self-Paced
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
Algorithms and Software Engineering for Professionals (Eduonix) Eduonix
Eduonix Learning Solutions Pvt. Ltd.

Algorithms and Software Engineering for Professionals (Eduonix)

Learn algorithms, data structures & the basics of data structure programs in this algorithms & software engineering course. Everything has a beginning and everything must be built from the ground up. This holds true even when it comes to software engineering and programming languages. Data structures provide a grounding for programming language and hold data and codes that determine what action will trigger what reaction.

Self Paced
Self-Paced
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
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