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