Compiler-Development icon indicating copy to clipboard operation
Compiler-Development copied to clipboard

Что читать о разработке компиляторов

Это не очередной awesome-список о компиляторостроении. В будущем мы хотим получить коллективный труд, схожий по форме с известными Readings in Database Systems и Teach Yourself Logic 2020a A Study Guide. По этой причине pull requests приветствуются в формате, включающем в себя не только ссылку на источник, но и абзац-другой его описания, с указанием желаемого подраздела.

Что читать о разработке компиляторов

Литература для начинающих

  • Учебники для начинающих
  • Рекурсивный спуск в современных компиляторах
  • Кратчайшее введение в создание компилятора (Python)

Учебные курсы

  • Учебные курсы по конструированию компиляторов
  • Учебные курсы по конструированию компиляторов (на русском языке)

Общие вопросы компиляции

  • Литература по общим вопросам компиляции
  • Учебники по компиляторам от русскоязычных авторов

Специальные вопросы компиляции

  • Метавычисления
  • Статический и динамический анализ
  • Порождение целевого кода
  • Среды выполнения: виртуальные машины, сборка мусора и прочее
  • Тестирование и формальная верификация компиляторов
  • Теория языков программирования: типы, семантика, интерпретация и прочее
  • Синтез программ и супероптимизация
  • ЧаВо по лексическому и синтаксическому разборам

Неотсортированное

  • Sea of Nodes
  • SSA без phi-узлов
  • ChocoPy — язык программирования (статически типизированное подмножество Python), набор учебных курсов и сопроводительных материалов для создания (учебных) компиляторов.
  • Англо-русский словарь терминов по вопросам компиляции

Полезные ссылки

  1. Телеграм-канал с новостями и полезными ссылками по тематике разработки языков и компиляторов PLComp.
  2. Телеграм-чат с обсуждением вопросов компиляции Compiler Development.
  3. Список компаний, которые занимаются компиляторами github.com/mgaudet/CompilerJobs.