Compiling Lambda Calculus
t3x.org
t3x.org
This is from the same author as the more popular:
"Scheme 9 from Empty Space" "A Guide to Implementing Scheme in C"
which walks you through the design and implementation of a portable Scheme in C89, with awesome cover art to match the name.
Compiling Lambda Calculus (CLC) concentrates on one thing: compiling untyped lambda calculus (or its incarnation, Scheme) to abstract machine code and then to C. It goes more into the depths of lambda calculus and has more examples (like Church numerals, etc). It also contains the complete source code to all compilers described in the text.
I would argue that CLC would be the better choice for a beginner.
Historically, the main issue in the compilation of FP languages has been laziness. In a statically-scoped call-by-value language, compilation is not that different from compilation of 'normal' languages.
[1] S. Marlow, S. Peyton-Jones, The Glasgow Haskell Compiler. http://www.aosabook.org/en/ghc.html
[2] D. Petrashko, O. Lhotak, M. Odersky, Miniphases: Compilation using Modular and Efficient Tree Transformations. https://infoscience.epfl.ch/record/228518/files/paper.pdf
[3] X. Leroy, Functional programming languages Part II: abstract machines.
[4] X. Leroy, The ZINC experiment: an economical implementation of the ML language.
Have you tried reading a few pages? It grotesque really distracting in this particular case or is it just your general experience?
(2) To some people (like me), a few 100 EUR per month can make a huge difference.
And I agree, the generalization above was too broad -- I also value free stuff!
Incidentally, the 6x9 PDF size is great on a Kindle Oasis, the print is a bit small but it works. This is in contrast to most other PDF ebooks, which I would have great difficulty reading on the Kindle, so thank you also for that!