Essentials of Programming Languages
This textbook offers an understanding of the essential concepts of programming languages. The text uses interpreters, written in Scheme, to express the semantics of many essential language elements in a way that is both clear and directly executable.