LINUX.ORG.RU

Литература по компиляторам


1

4

Что хорошего может посоветовать почитать ЛОР? Нужно, в первую очередь, для общего развития, поэтому хотелось бы, чтобы рассматривались различные парадигмы. Пока присматриваюсь к «Modern Compiler Design» - если кто читал, поделитесь отзывами.

★★★★

когда-то в качестве фундамента очень советовали red dragon book

trashymichael ★★★
()

дрэгонбук (Compilers: Principles, Techniques, and Tools)

yoghurt ★★★★★
()

плюсую драгонбук http://dragonbook.stanford.edu/ есть русский перевод обоих изданий, есть еще книга по написанию компилятора под функциональщину, но сходу название вспомнить не могу

SlothSpot
()

«Тяжёлую» литературу тут уже правильно подсказали, поэтому рискну предложить кое-что полегче:

Robin Hunter. The Essence of Compilers

есть русский перевод:

Робин Хантер. Основные концепции компиляторов.

Книга небольшая (256 стр. всего) и изложение неплохое, имхо.

OldFatMan
()

Компиляторы : принципы, технологии, инструментарий (2 издание книги дракона).

очень хорошая книга

anatolat
()

в первую очередь - ахо, ульман

ananas ★★★★★
()

Книга Дракона.

Deleted
()

Я что-то не понял, а что тут эту книгу Ульмана Советуют? Это же детский сад вообще, для тех кто под себя еще ходит. Там информации не больше чем на википедии, и она в такой же общей форме. Ничего особого оттуда не взять. Прочитали, и щас наверное думают что хоть что-то знают о написании компиляторов. Ага, щас.

Автор, книг довольно много, но большинство из них туфта и устарели, хорошие варианты смотри в похожих топиках на YC или stackoverflow или reddit.

lovesan

anonymous
()

«Компиляторы. Принципы, технологии, инструменты»

blackst0ne ★★★★★
()

Нужно, в первую очередь, для общего развития

Compiler design это такой umbrella term, который объединяет большое количество мало связанных тем, так что изучать их по очереди мало смысла.

Для общего развития можно почитать dragon book (настоящий талмуд по размеру) - там будет долго про parsing, про emitting, про элементарные graph based оптимизации. Но на практике все эти материи делаются довольно просто - берётся flex + yacc для разбора, LLVM как SSA engine. Сложнее получается с вопросами эффективной компиляции семантических языковых фич - энергичность/ленивость, функциональность/императивность (имеется ввиду чистота/мутабельность), присутсвие замыканий и ФВП (и, как следствие, GC) или их отсутсвие (и статический вывод аллокаций/деаллокаций), наличие или отсутвие user space процессов в языке ну и т.п. Все такие вопросы независимы друг от друга и решаются по отдельности (хотя вместе и относятся к compiler design).

quasimoto ★★★★
()
Ответ на: комментарий от quasimoto

Compiler design это такой umbrella term

Или даже alias для application design когда application = compiler. Все что тут можно сказать - какие структуры данных (типы или классы) мы используем (алфавит + моноид строк, лексемы + списки лексем, дерево абстрактного синтаксиса, графы, инструкции + списки инструкций и т.п.) и какие процедуры (функции - из типа в тип или методы классов) к ним применяем (лексический анализ, разбор AST, проверка типов на AST, построение графа, оптимизации на графе, свёртка в ассемблер, peephole оптимизации и т.п. соответственно). А всё остальное это сколь угодно разное количесво используемых при этом математических моделей и алгоритмов (как примеры - теория Хомского, семантические атрибуты Кнута, графы для SSA, теория типов для сильно типизированных языков).

quasimoto ★★★★
()
Ответ на: комментарий от OldFatMan

> «Тяжёлую» литературу тут уже правильно подсказали, поэтому рискну предложить кое-что полегче:

Гы, расмешил, и где здесь «тяжелая» литература? Не, ну серъёзно, «дрэгон бук» это сборник базовых вещей, осваивается за день при нормальном бэкграунде.

anonymous
()
Ответ на: комментарий от buddhist

Вирт «Построение компиляторов»

Видел в книжном, смутил ее смешной объем. Там действительно есть что почитать?

unsigned ★★★★
()
12 мая 2012 г.
Ответ на: комментарий от unsigned

да.

для продолжения смущения посмотри на сырцы первых версий unix'а

qulinxao ★★☆
()

Драконью книгу не читай! Половина книги - бесполезный бред про парсеры, устаревшая и ненужная чушь, остальное - чрезмерно кратко, и опять же не актуально. Про тот же ssa тебе там не расскажут, а в современном мире это основа основ.

anonymous
()
Ответ на: комментарий от anonymous

«дрэгон бук» это сборник базовых вещей, осваивается за день при нормальном бэкграунде.

При таком бэкграунде (или достаточном количестве понтов) «Дрэгон бук» просто не нужен. Вопрос ТС - как раз о приобретении бэкграунда.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.