title: Is there a more modern, OO version of "Let's Build a Compiler"?
body: <p>Is there a more modern, maybe object-oriented, equivalent to Jack Crenshaw's "<a href="http://compilers.iecc.com/crenshaw/" rel="noreferrer">Let's Build a Compiler</a>" series?</p>
  
  <p>A while back I stumbled across "<a href="http://compilers.iecc.com/crenshaw/" rel="noreferrer">Let's Build a Compiler</a>" and could just not resist writing some code.  I wrote a recursive-descent C compiler in C# that output .NET CIL.  "Write once, leak everywhere" was my slogan.</p>
  
  <p>Too bad I did not realize until too late that parsing C is a nightmare.</p>
  
  <p>I am now interested in writing a Java compiler in Java that outputs .NET CIL or assemblies with the goal of being self-bootstrapping.  I was hoping there might some newer tutorials kicking around.</p>
  
  <p>As an aside, would you spend more time with up-front design or would you just write a ton of tests to support the ability to mercilessly refactor.  Thinking back, I am leaning towards the latter.  The compiler worked but the code was really awful.</p>