Programming Languages : design and implementation - Pratt, Terrence W. (1975)