- meo is 🐱 in Vietnamese, but now it is subset c compliler
- The project is mainly used to study compiler.
- I use 100DaysOfCode strategy, that will make small step everyday by rule
- I study base on following.
- Reading Compiler design in C - Allen I.Holub
- Reading Dragon book
- Reference A Compiler Writing Journey
- Using design as four-pass compiler, which is refered from Compiler design in C - Allen I.Holub
- Each module lexical analyzer, parser, code generation are designed as independent module, it can be easy to replace without any effect other part.
- Each module is designed as multi instance, I plan supporting paralell compiler to increase performance.
- First step: only supporting X86-64 + pass 2 (lexical analyzer, parser, code generation).
- Using back end of GCC to generate executed code.
- Using TDD with catch2.
- Using Google coding convention.
- Can compile all files in sample, ex fibonacci.c
- Can compiler recursion, as the fibonacci recursion version recursion.c
- Support function.
- Function call.
- Global variable & local variable.
- Structure type.
- Pointer.
- Function pointer.
- All operator.
- v..v...
- Self compile.