http://www.amazon.com/Programming-Language-Concepts-Undergraduate-Computer/dp/1447141555
This book is great. It's a book using F# where you build compilers, interpreters, etc, and learn a bunch of theory along the way. If you don't mind being a bad person, you can find a pdf through google pretty quick.