For an advanced version: The C++ Grandmaster Certification MOOC where participants build their own complete C++11 compiler in C++11 is still going strong:
http://cppgm.org/
My favorite part is this sentence: "The rules for constructing virtual tables of the class are a combination of the rules from Categories 2 and 3, and can generally be determined inductively."
Ah yes, very comforting. The rules can be generally determined inductively (except of course, when they can't be!)
Well, I would extend that and ask. Has anybody completed implementing the Lexer/Parser phase? Once you get the Syntax tree or IR, the complexity is more or less (if not exactly the same) similar to other languages.
WalterBright[0] wrote the first native code C++ compiler, Zortech C++, (later called Symantec C++ and recently DigitalMars C++) and is the man behind the D programming language.
Mr. Bright, you're my hero. Really. Not only because you have made a C++ compiler using recusive descent parser and it's was the first ever to generate native code and the first comercial too and you don't even do generate assembly on dmd. You still made the D language and dmd compiler. A world saving tool from C and C++. It will rock the world. Could you imagine one of the next world's famous software like Windows or *BSD written in D? Also, I'm on the way on compiler business too (joke :-)). (sorry english, not my native language)