Engineering a compiler - Cooper, Keith D.; Torczon, Linda (Elsevier, 2012)