nibblebits / PeachCompiler

A C compiler created for the how to create a C Compiler online course
GNU General Public License v2.0
81 stars 35 forks source link

Creating a C Compiler from Scratch: A Comprehensive Course

Course Discount

Ever wondered how to build a C compiler from scratch? This course teaches you just that! By the end of this course, you'll be able to develop a compiler that can compile a subset of the C Programming Language. This compiler will be advanced enough to use the GCC standard library and will feature a preprocessor macro system just like any other C compiler.

👉 Get the course at a discount!

Table of Contents

  1. About the Course
  2. Modules
  3. Requirements
  4. Who This Course is For
  5. What You Will Learn

About the Course

This is a comprehensive course that teaches you how to build your very own C compiler. The course covers a wide range of topics, including:

Moreover, we'll also dive deep into the preprocessor system, allowing you to include header files and create definitions just like you would in any C file. We'll be building everything from scratch, without relying on any frameworks, to provide you with the best learning experience.

Modules

Module 1

In the first module, you'll learn how to load a C source file into memory. We'll build a lexer to perform lexical analysis and convert the source code into tokens. These tokens will then be passed through a parser to produce an Abstract Syntax Tree (AST).

Module 2

In the second module, you'll learn how to create a code generator that outputs 32-bit Intel assembly language. This assembly code can then be compiled to produce a binary executable. This module also introduces the concept of a resolver system to simplify complex expressions.

Module 3

Module three focuses on creating a preprocessor and macro system. This will enable you to include header files in your C programs and utilize macro keywords like #define, #ifdef, sizeof, etc.

Module 4

In the final module, we'll build a semantic validator. This will ensure that the code adheres to the rules of C language, like variable declaration and structure access.

Requirements

Who This Course is For

What You Will Learn

Enroll Now!

👉 Get the course at a discount!

Don't miss this chance to become an expert in compiler design and C programming. Enroll today!