http://www.craftinginterpreters.com/a-tree-walk-interpreter....
This link has been up a long time ago on hackernews, or reddit, can't remember which. But i am trying to work through it, it has good basic explanation.
And then you have SICP which introduces compilers without really talking about it :p.