Der zweite Teil beschäfftigt sich größtenteils mit der Zwischencode-Generierung, der Code-Erzeugung und etwas ausgiebiger mit der Optimierung. Zum Schreiben eines eigenen Compilers ist der zweite Teil genauso wichtig wie der erste. Ich finde aber, dass die Beispiele nicht immer so gut wie im ersten Teil sind und leider sind auch nicht so viele praktische Pseudocodes wie im ersten Teil enthalten. Das große Kapitel zur Optimierung kann natürlich nicht alles zur Optimierung abdecken. So werden Quellcodetransformationen für die parallele Verarbeitung nicht behandelt, bzw. nicht speziell für die parallele Verarbeitung. Insgesamt ist das Buch aber empfehlenswert für jeden, der einen Compiler vom Anfang bis zum Ende erstellen möchte. Der zweite Teil ist zwar ein kleines bißchen Schwächer, als der erste, aber immer noch sehr gut und verständlich.
Am Ende des Buches werden noch einige Gedanken zur Entwicklung eines eigenen Compilers aufgegeriffen und einige Compiler beispielhaft kurz erläutert. Im Anhang findet man noch eine Motivation zum erstellen eines ersten eigenen Compilers, wobei einige Starthilfen gegeben werden.