In homage to Crenshaw, I'm going to write a little series on how to write a compiler, updated to use C# 2.0 / .NET. Maybe somebody else out there will find it enlightening.
The project will cover the following areas:
- How compilers are structured.
- A lexer for lexical analysis.
- A parser for syntactic analysis and parse-time evaluation.
- Designing of a virtual machine.
- A simple virtual machine.
- A new parser generating code for the virtual machine.
- Type analysis and operator overloading.