Опис
Во оваа книга се опишани сите фази на еден компајлер; лексичката анализа, разложувањето, апстрактната синтакса, семантичките дејства, посредните претстави, инструкциската селекција преку споредување на дрвата, анализата на податочниот тек, доделувањето регистри со помош на боење графови, како и системите при извршување. Во неа е вклучено добро покривање на тековните техники за генерирање програмски код и доделување регистри, како и преведувањето на функционални и објектноориентирани јазици што ги нема кај повеќето книги. Најприфатените и најуспешните техники се концизно опишани, наместо да претставуваат исцрпен каталог на секоја можна варијанта, и се илустрирани со реални класи во Java. Првиот дел од книгата, Основите на преведувањето, е погоден за едносеместрален почетен курс од дизајнот на компајлери. Вториот дел, Напредни теми, кој вклучува преведување на објектноориентирани и функционални јазици, собирање отпад, оптимизација на јамки, SSA форма, распоредување инструкции и оптимизација на хиерархиите на кеш меморијата, може да се употреби за втор семестар или постдипломски курс.
Новото издание е повторно напишано за да вклучи поголема дискусија за Java и концептите на објектноориентираното програмирање, како што се посетител-облиците. Единствена карактеристика е новоредизајнираниот проект за компајлер во Java за подмножество од самата Java. Проектот вклучува и преден и заден дел, што ќе им овозможи на учениците да изградат комплетен функционален компајлер во текот на еден семестар.