Fundamentals of programming languages - Horowitz, Ellis