Книга «Компілятори: принципи, технології та інструментарій»
Тим, хто активно «вариться» у темі розробок компіляторів, важко сказати про незнання достославної «Книги драконів» – еталонної роботи кількох геніальних авторів, Ульмана та Ахо. У сучасній інтерпретації, з огляду на нестримний прогрес технологій, вже нова книга стала називатися «Компілятори: принципи, технології та інструментарій».
Подібно до попередника, робота починається з розкладання по поличках всіх базових принципів розробки, включаючи аналіз (лексично, синтаксису) і генерування коду. А головною особливістю вважається набагато більший виклад процесу оптимізації коду.
Про авторів книги
Канадський вчений-інформатик Альфред Ахо зробив неймовірний внесок у теорію та практику компіляції мов програмування, став тьюрингівським лауреатом. Безумовно, головною його роботою стала «Теорія синтаксичного аналізу, перекладу та компіляції», однак і заслуги інших видань применшувати не варто.
Подібним здобуткам багато в чому варто віддати належне освіті:
- ступінь бакалавра з прикладної фізики (університет Торонто);
- доктор філософії (PhD) з електротехніки та інформатики (Прінстон).
Професор факультету інформатики в Стенфорді, Моніка С. Лам , вкотре доводить, що просвітницька діяльність не буває нудною, адже про неї знають у багатьох куточках світу і вдячна велика кількість фахівців-початківців. Крім того, Моніка заснувала компанію MokaFive та Omlet, отримавши у співавторстві легендарну книгу, про яку ми зараз і говоримо.
Компілятори: принципи, технології та інструментарій – про що книга?
Розробка та реалізація компіляторів – «два кити», на яких вишиковується книга. Не поспішайте, багатьом потрібно приблизно 2 семестри, щоб повноцінно засвоїти всю запропоновану інформацію. Перша половина книги доводиться до речі першокурсникам, а друга, що розглядає оптимізацію коду, підтримує в тонусі старшокурсників.
Що ховається під обкладинкою Дракона?
- Синтаксичний керований транслятор;
- Лексичний та синтаксичний аналіз;
- генерація проміжного коду;
- Середовища часу виконання;
- Машинно-незалежні оптимізації;
- Паралелізм на рівні команд та інше.
Створюючи книгу, автори припускали, що їхні читачі вже мають деякі знання у сфері інформатики, а саме курси:
- програмування;
- структурування даних;
- дискретної математики