Programming languages: design and implementation - Pratt, Terrence W (Prentice Hall, 2001)