3 ms·
In my opinion, compiler implementation is such a path. You can touch almost every aspect of a modern system, and many well trodden areas of Computer Science:
by marktangotango 13y ago
In my opinion, compiler implementation is such a path. You can touch almost every aspect of a modern system, and many well trodden areas of Computer Science:
1. Lexing - DFA's and NFA's, hand coded or with a lexer generator, relationship with regexes
2. Parsing - LL, LR, table driven, recursive descent, hand coded, parser generator generated
3. Interpretation - simulate control flow and data representation in a host language
4. Translation - generate bytecode for an existing vm like JVM or CLR, or assembler for processor architecture of your choice
5. VM - implement you're own vm, choose an instruction set, implement garbage collection
Getting a handle on this set of knowledge and skills will take you a considerable way to becoming a 'master'.