Meo
subset c compiler
Install / Use
/learn @truongpt/MeoREADME
Meo subset c compiler
Let's start
- meo is :cat: 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
Design
- 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.
Implementation
- 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.
Current status.
- Can compile all files in sample, ex fibonacci.c
- Can compiler recursion, as the fibonacci recursion version recursion.c
Todo list
- [x] Support function.
- [x] Function call.
- [x] Global variable & local variable.
- [ ] Structure type.
- [ ] Pointer.
- [ ] Function pointer.
- [ ] All operator.
- [ ] v..v...
- [ ] Self compile.
