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