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.
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.