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

Peer-to-Peer Protocols and Local Area Networks (Coursera) Coursera
University of Colorado System

Peer-to-Peer Protocols and Local Area Networks (Coursera)

In this course, we discuss peer-to-peer protocols and local area networks. Part one in this course is to answer the question of how does a peer-to-peer protocol deliver reliable data transfer service across unreliable transmission lines or networks. We focus on several medium access control protocols and their performance analysis. In the second part, we discuss how medium access control protocols coordinate the access to the communication channel so that information gets through from a source to a destination in the same broadcast local area network. We further discuss local area network and wireless LAN.

Jun 8th 2026
5-12 Weeks
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.

May 23rd 2022
4 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
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.

May 23rd 2022
4 Weeks
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
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
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
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