Przedmowa W czasie, który upłynął od roku 1986, roku pierwszego wydania tej książki, świat projektowania kompilatorów znacząco się zmienił. Ewolucja języków programowania stworzyła nowe problemy. Architektury komputerów oferują dziś bogactwo zasobów, które projektant kompilatora powinien, a w zasadzie musi wykorzystać. Być może najbardziej interesujące jest to, że szanowane techniki optymalizowania kodu znalazły zastosowania poza kompilatorami. Są dziś używane w narzędziach wyszukujących błędy, a co najważniejsze, luki zabezpieczeń w już istniejącym oprogramowaniu. Zarazem większość technologii „przodowych” – gramatyki, wyrażenia regularne, parsery i translatory sterowane składnią – nadal jest w szerokim użyciu. Tym samym nasza filozofia prezentowana w poprzednich wersjach tej książki się nie zmieniła. Zdajemy sobie sprawę, że bardzo nieliczni spośród czytelników będą tworzyć, lub choćby utrzymywać, kompilatory dla któregoś z głównych języków programowania. Jednak modele, teoria i algorytmy powiązane z kompilatorami mogą być stosowane w szerokim zakresie problemów projektowania i rozwijania oprogramowania. Dlatego szczególnie wyróżniamy kwestie do rozstrzygnięcia, które są najczęściej spotykane przy projektowaniu procesorów języków, niezależnie od języka źródłowego czy maszyny docelowej.
Korzystanie z książki Opanowanie całości czy choć większości materiału z tej książki wymaga co najmniej dwóch kwartałów, a może nawet dwóch semestrów. Typowe podejście polega na przedstawieniu pierwszej połowy w ramach wykładu podstawowego, drugą zaś połowę tematyki książki – optymalizowanie kodu – na poziomie dyplomowym lub pośrednim. Oto konspekt poszczególnych rozdziałów: W rozdziale 1 zawarto materiały motywujące, a ponadto przedstawiono w nim kilka podstawowych zagadnień architektury komputerów i zasady języków programowania. W rozdziale 2 pokazano projektowanie miniaturowego kompilatora i wprowadzono wiele ważnych koncepcji, które zostaną rozwinięte w kolejnych rozdziałach. Sam kompilator został w całości zamieszczony w dodatku na końcu książki. W rozdziale 3 zawarto omówienie analizy leksykalnej, wyrażeń regularnych, automatów skończonych i narzędzi generujących leksery. Materiał ten jest podstawą do przetwarzania tekstów dowolnego rodzaju.