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