Project Oberon - The Design of an Operating System, a Compiler, and a Computer
Also, a language.<p>Oberon-2 language has Pascal-like syntax, with Java-like features (classes, single inheritance, interfaces, garbage collector, sane module system instead of includes). Unlike Java, no VM is required, at least in the system that I used. Like Java and unlike C, it is impossible to write unsafe code accidentally - you have to go out of your way to access unallocated memory regions or break type safety.<p>Decent module system and straightforward grammar has also allowed writing simple and very fast compilers. It was fun to work with.