Formal syntax and semantics of programming languages a laboratory based approach - Slonneger, Kenneth (Addison-Wesley, 1995)