This amazing book written by Peter Kogge is out of print for a while now (althrough used copies can be found). The book has two parts. First part about functional programming goes from basic lambda calculus into fully working compiler and virtual machine for a Lisp-like language - SECD. Second part talks about logical programming, logic theory, Prolog, and Warren Abstract Machine, virtual machine for Prolog. The logical programming part is especially interesting, its architecture is different to what we’re used to. The book contains description of some real world implementations of Lisp and Prolog, including those made in hardware.

If you’re interested in reading the book, try to find an used copy on Amazon. Because they are quite expensive, I’ve put my notes on github.