I Built a Lisp Compiler
I wonder if the approach of  making a compiler from an interpreter leads to lots of suboptimal code.One point I can think of is, in an interpreter you're presumably keeping track of program's vars in your own data structures instead of just throwing pointers around. Though, this might be unavoidable with a dynamic source language.