(How to Write a (Lisp) Interpreter (in Python))
Why does this matter? As Steve Yegge said , "If you don't know how compilers work, then you don't know how computers work." Yegge describes 8 problems that can be solved with compilers (or equally well with interpreters, or with Yegge's typical heavy dosage of cynicism).