Essentials of programming languages - Friedman, Daniel P. (McGraw-Hill, 1992)