Last week I found the following free programming book at http://www.cs.cmu.edu/~rwh/plbook/book.pdf on "Practical Foundations for Programming Languages".
As the title states it focuses on the foundations of programming languages. The idea is that most programming language features start from the concept of a type
structure that governs its syntax and semantics. Although very interesting to read, it almost cost me a brain meltdown.
Read at your own risk!