Języki programowania są sposobami zapisu prezentującymi obliczenia w sposób zrozumiały dla ludzi i dla sprzętów. Świat, jaki dziś znamy, uzależniony jest od języków programowania, gdyż całe oprogramowanie działające na wszystkich komputerach zostało napisane w jakimś języku programowania. Jednak zanim osiągalne będzie uruchomienie programu, musi on najpierw zostać przetłumaczony do postaci, w której komputer będzie mógł go wykonać. Tłumaczenie to odbywa się za pomocą specjalnych systemów programowych zwanych kompilatorami. II edycja konwencjonalnej książki, znanej na całym świecie jako Dragon Book, jest poświęcona projektowaniu i implementacji kompilatorów. W skrupulatniejszym zrozumieniu i przyswojeniu tematu, pomagają czytelnikowi liczne, rozbudowane ćwiczenia zawarte w każdym podrozdziale. Dzięki lekturze poznasz: - Podstawowe zagadnienia związane z architekturą komputerów, a także zasady języków programowania - Omówienie analizy leksykalnej, wyrażeń regularnych, automatów skończonych i narzędzi budujących leksery - Główne metody parsingu - Podstawowe koncepcje definicji kierowanych składnią i translacji sterowanej składnią - Zasady projektowania generatora kodu - Technologie optymalizacji kodu świeże rozdziały obejmują takie zagadnienia jak: - Środowiska wykonawcze, w tym: mechanizmy odśmiecania pamięci i zarządzanie stosem - Optymalizacje na poziomie instrukcji - Wykrywanie i wykorzystywanie równoległości w obszerniejszej skali - Analizy międzyproceduralne Zasady i techniki projektowania kompilatorów posiadają użycie w tak wielu dziedzinach,z całą pewnością każdy informatyk spotka się z nimi w swojej pracy wielokrotnie. Studiowanie pisania kompilatorów oznacza poznawanie takich zagadnień jak: języki programowania, architektura komputerów, teoria języka, algorytmy i inżynieria oprogramowania.