Projects
Projects copied to clipboard
Compiler
Implementing a compiler is a big challenge, but nowadays it can be built by parts.
For example:
- Lexer - can be implemented with
flex
. - Parser - can be implemented with
bison
. - AST processing - this part is almost always specific for each concrete project, so it should be done by hand.
- Code generation and optimization -
LLVM
provides great framework for this.
You can gradually replace parts with your own implementations.
Also, that problem involves designing architecture of compiler, so it can help you with OOP style or functional programming design, if you want.