Programming Languages : Design & Implementation - Pratt, Terrence (1986)