Size: a a a

Compiler Development

2020 July 07

А

Алексей in Compiler Development
но для простоты в принципе в своём языке можно обходить ast в порядке его построения и в том же порядке генерировать код вычисления
источник

AT

Alexander Tchitchigi... in Compiler Development
Строго говоря, сам по себе 2+2 — это тоже редекс внутри редекса, но тут не принципиально.
источник

YK

Your KVXMMU in Compiler Development
просто тут видно что он все равно первым метод подгрузит
источник

А

Алексей in Compiler Development
Алексей
но для простоты в принципе в своём языке можно обходить ast в порядке его построения и в том же порядке генерировать код вычисления
и в принципе императивные языки по большому счёту так и делают
источник

AT

Alexander Tchitchigi... in Compiler Development
Your KVXMMU
просто тут видно что он все равно первым метод подгрузит
Вероятно, такое поведение даже специфицировано в доке Пайтона.
Очевидно, оно ложится на семантику его виртуальной машины. А вот если бы инструкция CALL_METHOD принимала аргументы в другом порядке, могло бы быть веселее...
источник

YK

Your KVXMMU in Compiler Development
понял о чем вы говорили... спасибо
источник

А

Алексей in Compiler Development
Алексей
и в принципе императивные языки по большому счёту так и делают
за исключением крестов кстати
источник

А

Алексей in Compiler Development
возможно и сишки тоже
источник

А

Алексей in Compiler Development
учитывая, что там порядок сайдэффектов гарантируется только для точек следования, а вне их вычисляет как хочет
источник

AK

Andrei Kurosh in Compiler Development
Dr. Friedrich von Never
(пример честно стырен у Бреслава, где он рассказывал про trade-offs в парсере Котлина; кажется, в Котлине точно так же не компилируется)
Ага, видел эту лекцию :) Но тут пример с синтаксической неразрешимостью, разрулить которую можно было бы семантически (но это очень сложно и, скорее всего, наложило бы дополнительные ограничения), а вот поправить  лексическую неразрешимость в грамматике должно быть элементарно
источник

EG

E G in Compiler Development
Константин
Как нельзя писать JIT или воскрешение мертвого.
Канал об истории  JIT компилятора в JS и оптимизатора as3 байткода.

Вернее о том, как нельзя писать JIT.
https://t.me/as3_reborn
Что интересно, Константин стал гораздо структурированней писать в канале, чем в чате.
источник

К

Константин in Compiler Development
E G
Что интересно, Константин стал гораздо структурированней писать в канале, чем в чате.
Ожидается что в чате будут комментарии по-тезисно, по этому их нужно делать самодостаточными и короткими.
Правда это приводит порой к каше, так как нужно иметь контекст.
источник

M

MaxGraey in Compiler Development
E G
Что интересно, Константин стал гораздо структурированней писать в канале, чем в чате.
А я почему то знал что так будет =)
источник
2020 July 08

T

Trimsku in Compiler Development
Your KVXMMU
Есть вопрос насчет приоритета операций(для примера взят питон): выходит у точки обычно приоритет выше чем у скобок?
Смотря где ).
В некоторых вообще нету приоритета операций.
источник

SI

Serghei Iakovlev in Compiler Development
Не уверен, что в правильный чат пишу, но кажется я застрял с JetBrains/Grammar-Kit. Документация не помогает, Смотрю в книгу вижу фигу :( Может я банально не знаю каких-то базовых вещей, а может мой опыт с re2c/lemon не позволяет взять барьер с jflex. Я банально запутался кто кого у них вызывает, сканнер парсер или парсер сканнер. Куча мелких вопросов так и остались загадкой для меня.

Если кому попадалась дополнительная документация по реализации языковых плагинов (кроме https://www.jetbrains.org/intellij/sdk/docs/reference_guide/custom_language_support.html), поделитесь ссылочкой или кейвордом плиз.
источник

ВМ

Виталий Медоваров... in Compiler Development
Там чуть ниже туториал пошаговый, он точно не проясняет ситуацию?
источник

SI

Serghei Iakovlev in Compiler Development
Виталий Медоваров
Там чуть ниже туториал пошаговый, он точно не проясняет ситуацию?
Да. Он слишком поверхностный. Туториал я прошёл и даже сделал плагинчик языковой, но всё равно есть неясности. Я бы хотел для закрепления ещё что-то почитать по теме. Что-то позабористее, чтобы покрыть хотябы Тьюринг полный язык а не INI-файлы
источник

SI

Serghei Iakovlev in Compiler Development
Приведу пример: https://github.com/JetBrains/Grammar-Kit/blob/master/testData/generator/ExprParser.bnf#L18

Я в упор не понимаю где это используется (syntax).

Ну или например сам список tokens чуть выше - в каких то языковых плагинах (rust) он почти пустой, в каких-то он километровый. Не понимаю в чём разница в подходах.

Вот такие вот казалось бы мелкие вопросы. Но их много, ответ либо не лежит на поверхности, либо я не понимаю что читать. Из-за всего этого я чувствую себя неуютно  - могу решить какую-то однотипную элементарную задачу и всё, не сильно далеко ушёл от их туториала
источник

ВМ

Виталий Медоваров... in Compiler Development
Я когда смотрел эти штуки остался с предположением что главное понять https://www.jetbrains.org/intellij/sdk/docs/basics/architectural_overview/psi.html
источник

ВМ

Виталий Медоваров... in Compiler Development
Но я не делал поддержку тюринг полного языка, так что не могу претендовать на опытность в этом вопросе
источник