There's a book called "Programming Language Pragmatics", which is a very readable presentation of PL ideas, how to parse them and how to write compilers for them. I actually read 2/3 of it.
This is one of the very few (tech) books I read cover to cover (plus the stuff chapters on disk). If you are intressted in everything from machine up to programming language this is the book for you.
http://www.amazon.com/Programming-Language-Pragmatics-Third-...