Fundamentals of Programming Languages by E. Horowitz