Principals of Programming Languages - Perl, Smalltalk, and Scheme