Size: a a a

Compiler Development

2020 March 14

А

Алексей in Compiler Development
И тогда станут майнерами битка
источник

АВ

Александр Вольнов in Compiler Development
polunin.ai
1. При запуске парсишь все описания, схемы и т.д. обычными комбинаторами.
2. Преобразовываешь в схему, в случае чего кидаешь ошибку.
3. При работе используешь ранее созданную схему.

Проблемы?
Вот, а в моей ситуации достаточно одного прохода, максимум, двух.
источник

p

polunin.ai in Compiler Development
Александр Вольнов
В схеме может быть структура, первым полем которой является тип (например, формат пикселя), а вторым - значение этого типа (массив пикселей). В рантайме ты можешь распарсить файл изображения, с пикселем в любом формате, то есть любого типа, который закодирован в само изображение.
Если схема не зашивается в БД, то такая БД не нужна.
источник

АВ

Александр Вольнов in Compiler Development
Алексей
Обязательно кто-то забудет активировать ограниченный режим. Я прям гарантирую это.
Я может по дефолту сделаю как раз это подмножество, чтобы безопасность была по умолчанию. Кому нужен расширенный функционал, включат его сами.
источник

А

Алексей in Compiler Development
На самом деле "динамические типы" нужно на этапе компиляции вычислять да и всё.
источник

p

polunin.ai in Compiler Development
+
источник

А

Алексей in Compiler Development
И нет, парсинг в AST, а потом сериализация этого всего - это не вся компиляция.
источник

А

Алексей in Compiler Development
Значит надо как-то схему кешировать чтоли
источник

АВ

Александр Вольнов in Compiler Development
polunin.ai
Если схема не зашивается в БД, то такая БД не нужна.
БД может и не нужна, а файлы для хранения картинок типа DDS делают именно так. У них в заголовке огромный enum из сотен различных форматов, а затем идут данные в соответствующей кодировке.
источник

А

Алексей in Compiler Development
желательно не передавать её по сети вообще, если клиент уже знает схему
источник

АВ

Александр Вольнов in Compiler Development
Алексей
И нет, парсинг в AST, а потом сериализация этого всего - это не вся компиляция.
Ещё оптимизация есть. А кеширование имён и смещений внутри файла - это уже особенности виртуальной машины, которая работает с бинарём.
источник

А

Алексей in Compiler Development
Александр Вольнов
Ещё оптимизация есть. А кеширование имён и смещений внутри файла - это уже особенности виртуальной машины, которая работает с бинарём.
Так фишка то в том чтобы эти оптимизации не проводить каждый раз при режиме работы запрос-ответ
источник

АВ

Александр Вольнов in Compiler Development
Алексей
желательно не передавать её по сети вообще, если клиент уже знает схему
Так можно, у меня есть возможность импорта. Вместо схемы будет просто несколько байт с указанием имени схемы, которое известно и клиенту и серверу.
источник

А

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

А

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

А

Алексей in Compiler Development
возьмите одну маленькую задачу
источник

А

Алексей in Compiler Development
для вашего языка/формата
источник

АВ

Александр Вольнов in Compiler Development
Алексей
у вас особо пока ничего нет, как я понимаю
В проекте, естественно, есть.
источник

А

Алексей in Compiler Development
и попытайтесь её решить, решить хорошо
источник

А

Алексей in Compiler Development
точнее даже сначала её просто решить, а уж потом решить хорошо
источник