Джонатан Блоу о том, зачем на самом деле нужны синтаксические деревья
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