I recommend Lisp In Small Pieces (LISP) by Christian Queinnec and Compiling with Continuations by Andrew Appel if you're interested in writing a functional compiler.
Also:
http://matt.might.net/articles/cps-conversion/
http://lucacardelli.name/Papers/BasicTypechecking.pdf
http://library.readscheme.org/page1.html
https://research.microsoft.com/pubs/67083/spineless-tagless-...