Size: a a a

Compiler Development

2021 February 01

M

MrSmith in Compiler Development
Фитч интересных тоже не видно, похож на better c like zig. Если кратко видео имеет смысл смотреть только его подписчикам и тем кто верит
источник

ДК

Дмитрий К in Compiler Development
А я тут пилю свой пайплайн для компиляции. Может кому-то будет интересно.
Идея в том, что у меня есть чудесный формат для описания AST - простой, наглядный, гибкий и шустрый. Он берёт на себя вопрос с трансформациями и отслеживанием какая часть исходника соответствует какой части результата - об этом голова вообще не болит.  Исходный код пишется либо сразу на языке на базе этого формата (xml.tree, js.tree, wasm.tree, ...), либо первым же шагом в такой язык парсится (MarkedText -> marked.tree, JSON -> json.tree, ...).
Получив AST, далее гоняем по нему трансформации: транспиляции в AST других языков, валидации, оптимизации и тд.
Наконец, применяем один из стандартных сериализаторов и получаем либо строку с кодом + сорсмапы, либо бинарник + DWARF.
Про сам формат я подробно рассказывал тут: https://github.com/nin-jin/slides/tree/master/tree
В песочнице можно поиграться с несколькими языками и трансформациями: https://tree.hyoo.ru/
Описания языков: https://github.com/nin-jin/tree.d/wiki/Tree-based-languages
источник

VK

Val Krylov in Compiler Development
MrSmith
Фитч интересных тоже не видно, похож на better c like zig. Если кратко видео имеет смысл смотреть только его подписчикам и тем кто верит
Сам Jai мне не особо интересен. А вот возникающие в процессе разработки вопросы (в отличие от "ответов" в дизайне языка/компилятора) - хороший фон для собственных размышлений.
источник

M

MrSmith in Compiler Development
Val Krylov
Сам Jai мне не особо интересен. А вот возникающие в процессе разработки вопросы (в отличие от "ответов" в дизайне языка/компилятора) - хороший фон для собственных размышлений.
Какие к примеру? Я видел его критику раста только что, при всем уважении к нему как к инженеру, рассуждения у него довольно пространны, спорны, а полученный в jai результат не выглядит убедительным
источник

VK

Val Krylov in Compiler Development
MrSmith
Какие к примеру? Я видел его критику раста только что, при всем уважении к нему как к инженеру, рассуждения у него довольно пространны, спорны, а полученный в jai результат не выглядит убедительным
Например, он использует в языке ручные defer вместо симметричных решений (автоматический вызов деструктора в C++, with в Python, using в C# и подобные). Это плохо и ненадёжно. Однако, наблюдение этого в видео:
1. Позволяет мне лучше прочувствовать, насколько это плохо и ненадёжно.
2. Но при этом позволяет лучше понять психологию людей, которые всё же выбирают defer (второе племя по https://josephg.com/blog/3-tribes/ ).
источник

M

MaxGraey in Compiler Development
MrSmith
Какие к примеру? Я видел его критику раста только что, при всем уважении к нему как к инженеру, рассуждения у него довольно пространны, спорны, а полученный в jai результат не выглядит убедительным
Он LLVM хотя бы уже прикрутил?
источник

M

MrSmith in Compiler Development
источник

M

MrSmith in Compiler Development
Was Jon Blow correct in saying that enforcing memory safety is a wash for games development?
источник

M

MrSmith in Compiler Development
Вот я вообще это комментировать даже не хочу
источник

M

MaxGraey in Compiler Development
Val Krylov
Например, он использует в языке ручные defer вместо симметричных решений (автоматический вызов деструктора в C++, with в Python, using в C# и подобные). Это плохо и ненадёжно. Однако, наблюдение этого в видео:
1. Позволяет мне лучше прочувствовать, насколько это плохо и ненадёжно.
2. Но при этом позволяет лучше понять психологию людей, которые всё же выбирают defer (второе племя по https://josephg.com/blog/3-tribes/ ).
Многим не нравиться RAII из-за того что оно неявное. defer более явный. Но при этом в его языке используются заимствования и как я понял зачастую неявно, что как то не очень со всем вяжеться
источник

VK

Val Krylov in Compiler Development
Явные using/with более удобны и надёжны, чем defer.
источник

M

MrSmith in Compiler Development
Так понятно, да согласен, можно добавить в копилку к гоу что бы показывать как делать не стоит
источник

M

MrSmith in Compiler Development
Был язык научный разработанный парой парней, с упором как раз на векторизацию вроде для видеокарт
источник

M

MrSmith in Compiler Development
Дак вот. Не понятно с чего блоу взял что это надо помешать на уровень синтаксиса
источник

M

MaxGraey in Compiler Development
MrSmith
Был язык научный разработанный парой парней, с упором как раз на векторизацию вроде для видеокарт
AnyDSL/Impala или Halide?
источник

M

MrSmith in Compiler Development
Первый
источник

M

MrSmith in Compiler Development
И они переимяновались наверное
источник

M

MrSmith in Compiler Development
источник

M

MrSmith in Compiler Development
А нет, я перепутал с их IR)
источник

M

MaxGraey in Compiler Development
это их MIR
источник