Języki programowania są sposobami zapisu przedstawiającymi obliczenia w sposób zrozumiały dla ludzi i dla maszyn. Ś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 możliwe 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.
2 edycja klasycznej książki, znanej na całym świecie jako Dragon Book, jest poświęcona projektowaniu i implementacji kompilatorów. W dokładniejszym 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 oraz zasady języków programowania,
• omówienie analizy leksykalnej, wyrażeń regularnych, automatów skończonych i narzędzi generujących leksery,
• główne metody parsingu,
• podstawowe koncepcje definicji kierowanych składnią i translacji sterowanej składnią,
• zasady projektowania generatora kodu,
• technologie optymalizacji kodu.
Nowe 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 większej skali,
• analizy międzyproceduralne.
Zasady i techniki projektowania kompilatorów mają zastosowanie w tak wielu dziedzinach, że na pewno 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.