Перейти к содержимому

Джонатан Блоу о том, зачем на самом деле нужны синтаксические деревья

Jonathan Blow Clips

0:00 / 0:00

Джонатан Блоу о том, зачем на самом деле нужны синтаксические деревья

1 657 просмотров · 5 ч назад
Jonathan Blow Clips
11,9 тыс. подписчиков
1 657 просмотров · 5 ч назад
Посмотрите мой Plarza: https://jonathanblowclips.plarza.com В этом стриме от 29 марта 2020 года с Кейси Муратори Джонатан Блоу объясняет, почему компилятор не может напрямую преобразовывать исходные токены в машинный код: некоторые вещи, например, вызов функции, которая еще не понята, еще неизвестны, поэтому компилятор должен хранить частично обработанную работу и возвращаться к ней позже. Он утверждает, что модульность, необходимая для этого, — размещение произвольно сложных подвыражений в узлах фиксированного размера — делает языки программирования мощными, а Кейси добавляет, почему текст масштабируется лучше, чем визуальное программирование. Блоу объясняет, почему деревья подходят для этой задачи, задается вопросом, заслуживает ли исключение общих подвыражений отдельного рассмотрения, и описывает SSA как простую идею с запутанными объяснениями, а узлы phi — как действительно сложную часть. Его вывод: деревья предназначены для хранения работы, к которой можно вернуться позже, а не для оптимизации. Это его взгляды на проектирование компиляторов по состоянию на 2020 год. Источник:    • Discussion: Making Programming Language Pa...   Разделы 0:00 Почему не следует генерировать код напрямую 1:03 Нет инструкций-заполнителей 2:21 Модульность — это настоящая сила 3:00 Текстовое программирование лучше визуального 4:04 Почему деревья работают хорошо 5:17 Против исключения общих подвыражений 7:58 Трехадресный код и SSA 10:09 Деревья: хранение, а не оптимизация Фрагмент из видео Джонатана Блоу Оригинал:    • Discussion: Making Programming Language Pa...   Twitch:   / j_blow   YouTube:    / @jblow888   #jonathanblow #programming #gamedev #jai #softwareengineering Источник: Джонатан Блоу Трансляция с Кейси Муратори    • Discussion: Making Programming Language Pa...   Трансляция: 29.03.2020