Size: a a a

Compiler Development

2020 April 04

а

акварель на мету in Compiler Development
Gymmasssorla
"Language Implementation Patterns"
спасибо
источник

p

polunin.ai in Compiler Development
акварель на мету
но как это получить...
Читай про создание LLk парсеров
источник

M

MaxGraey in Compiler Development
акварель на мету
что значит вершины — правила ?
Гуманитарное разъяснение:
Правила это как глаголы (сказуемые), символы это как существительные (подлежащее)
источник

p

polunin.ai in Compiler Development
Сказал бы "операции" и "операнды"
источник

МБ

Михаил Бахтерев in Compiler Development
polunin.ai
А ещё проще сделать в языке нормальные типы данных и отсутствие возможности добавления новых полей в рантайме. И оптимизировать станет значительно проще.
Не станет. Понадобится сразу полиморфизм, трэйты и прочее, что вернёт задаче исходную сложность.
источник

p

polunin.ai in Compiler Development
Михаил Бахтерев
Не станет. Понадобится сразу полиморфизм, трэйты и прочее, что вернёт задаче исходную сложность.
Где вернет исходную сложность?
источник

МБ

Михаил Бахтерев in Compiler Development
polunin.ai
Где вернет исходную сложность?
В полиморфном коде.
источник

p

polunin.ai in Compiler Development
Михаил Бахтерев
В полиморфном коде.
И что там сложного?😉
источник

МБ

Михаил Бахтерев in Compiler Development
polunin.ai
И что там сложного?😉
Представление данных. Как сделать хорошую функцию для работы с  полиморфными массивами? Через мономорфизацию? Но это разбарабанивает код экспоненциально.
источник

А

Алексей in Compiler Development
Михаил Бахтерев
Представление данных. Как сделать хорошую функцию для работы с  полиморфными массивами? Через мономорфизацию? Но это разбарабанивает код экспоненциально.
раст и кресты так делают
источник

МБ

Михаил Бахтерев in Compiler Development
Алексей
раст и кресты так делают
Угу. И получаются бинарники размером в гигабайт. "Прощай кэш", называется.
источник

А

Алексей in Compiler Development
Михаил Бахтерев
Угу. И получаются бинарники размером в гигабайт. "Прощай кэш", называется.
Ну вообще говоря нет
источник

AK

Andrei Kurosh in Compiler Development
Михаил Бахтерев
Не станет. Понадобится сразу полиморфизм, трэйты и прочее, что вернёт задаче исходную сложность.
Для полиморфных методов достаточно indirect call’а через таблицу. Это несравнимо проще, чем делать инлайн-кеши и отслеживать изменения, которые должны их обнулять
источник

МБ

Михаил Бахтерев in Compiler Development
Алексей
Ну вообще говоря нет
ClickHouse, например.
источник

AK

Andrei Kurosh in Compiler Development
Если еще учесть, что джиес позволяет поковыряться в прототипе или вообще его заменить в произвольный момент...
источник

А

Алексей in Compiler Development
Михаил Бахтерев
ClickHouse, например.
там гигабайт прям бинарник?
источник

МБ

Михаил Бахтерев in Compiler Development
Andrei Kurosh
Для полиморфных методов достаточно indirect call’а через таблицу. Это несравнимо проще, чем делать инлайн-кеши и отслеживать изменения, которые должны их обнулять
Может оказаться, что inline-cache будет в таком случае эффективнее.
источник

AK

Andrei Kurosh in Compiler Development
Михаил Бахтерев
Может оказаться, что inline-cache будет в таком случае эффективнее.
Очень сильно зависит от того, соблюдает ли конечный разработчик мономорфизм или нет
источник

МБ

Михаил Бахтерев in Compiler Development
Алексей
там гигабайт прям бинарник?
700 мегабатов было, когда смотрел. Может быть, починили. Но объяснялось так, что "это потому что шаблоны".
источник

а

акварель на мету in Compiler Development
Михаил Бахтерев
700 мегабатов было, когда смотрел. Может быть, починили. Но объяснялось так, что "это потому что шаблоны".
так они ведь оптимизируются
источник