Principles of programming languages design, evaluation and implementation - MacLennan, Bruce J. (Oxford Univ. Press., 1999)