Programming languages design and implementation - Pratt, Terrence W. (Prentice-Hall, 1996)