That walks you through the process of creating a simple language. My version has since been extended a fair bit:
The writing is clear, and I was familiar with the broad concepts already. (In the past I've written toy interpreters for FORTH, and similar simple languages, but usually in an adhoc fashion.)