Developing a C Compiler From Scratch - Module 1
Compiler Design, Compiler Development, Lexical Analysis, Parsing, Code Generation, Abstract Syntax Trees
Description
Are you ready to learn compiler design and compiler development and prove your a master programmer?
Learn to create your very own C compiler from scratch. In this course we develop a compiler that compiles a subset of the C Programming Language. By the time you finish all modules of this course you will be able to compile C programs that use pointers, structures, unions, arrays, functions, for loops, while loops. do while loops, if statements, switches and much more!
Our compiler also has a preprocessor macro system allowing you to include header files and create definitions just like you would in any C file.
Your compiler is advanced enough to use the GCC standard library so we are able to call C functions from our compiler. Your compiler will be able to compile the C programming language.
This course does not rely on any frameworks we do everything from scratch to ensure the best possible learning experience for students
Module 1
In module 1 of this course we load our C source file that we wish to compile, into memory. We create a lexer to preform lexical analysis on the source input which will convert the source code into a bunch of tokens that our compiler can easily understand. We then pass the tokens through a parser to produce an abstract syntax tree. An AST describes the C program in a logical way that makes it easier for our compiler to understand. For example for the expression 50 + 20 you will end up with a root expression node that has a left operand that has a node of value 50 and a right operand that has a node of value 20. Breaking down problems in this way makes it much easier to create compilers.
Throughout the whole course series you will learn to create a fully functioning C compiler.
What You Will Learn!
- How to build a C compiler from scratch
- Full understanding of stackframes and how assembly language is generared for a C source file
- Complete Understanding of lexical analysis and parsing
- Stronger Assembly language skills will be gained
- Compiler Design
Who Should Attend!
- People with an interest in compiler design
- People who are interested in assembly language
- People who are interested in the C Programming language