Engineering a Compiler by Emily Cooper, Cooper/Torczon & Keith Cooper