Principles of programming language - Tennent, R D (1988)