For those interested in the details of tackling tail call optimization when compiling to JavaScript, the paper Efficient Compilation of Tail Calls and Continuations to JavaScript goes into detail about the non-CPS-conversion approach used in JavaScript port of Gambit.
An interesting read. The citations are all from the 70s and 80s, so I was curious when this was written. It turns out it was from 1986: http://dl.acm.org/citation.cfm?id=960112.28718.
I own a copy of this book. It’s not very applicable to my day-to-day work, but it’s great fun to browse. I have used a few tricks from the second chapter which is available on the book’s companion site.
If you’re into this sort of thing, the Bit Twiddling Hacks page is also a great resource.
Funny you mention the Bit Twiddling Hacks – I recently started up a GitHub repo for bit twiddling hacks that’s in-progress until I gain enough motivation to finish writing it. I wanna aggregate Bit Twiddling Hacks, Hacker’s Delight, and a section out of the Programming in C book into a single reference source on GitHub. I have to think a bit more about how I’m gonna organize it though.
https://github.com/zg/bits