Size: a a a

Compiler Development

2019 October 06

AT

Alexander Tchitchigin in Compiler Development
Но редукция графа (aka Labeled Transition System) хороша для описания семантики программ, в то время как для фактического выполнения программы слишком медленно работает.
источник

DP

Dmitry Ponyatov in Compiler Development
Alexander Tchitchigin
Графовых БД в последнее время предостаточно.
А кто-то из них поддерживает узлы определяемых пользователем типов, которые могут одновременно хранить ссылки на другие узлы в ассоциативном массиве, и в упорядоченном векторе?
источник

AT

Alexander Tchitchigin in Compiler Development
Есть ещё такой прототипчик: http://www.lamdu.org/
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
А кто-то из них поддерживает узлы определяемых пользователем типов, которые могут одновременно хранить ссылки на другие узлы в ассоциативном массиве, и в упорядоченном векторе?
Нафига ассоциативные массивы и векторы, если у нас уже есть граф???
источник

DP

Dmitry Ponyatov in Compiler Development
Каждый узел должен уметь хранить атрибуты, и одновременно упорядоченные ссылки на вложенные элементы (атрибутная грамматика)
источник

AT

Alexander Tchitchigin in Compiler Development
Кстати снова наткнулся на https://isomorf.io/ - прикольная штука. 😊
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
Каждый узел должен уметь хранить атрибуты, и одновременно упорядоченные ссылки на вложенные элементы (атрибутная грамматика)
Это примерно каждая первая графовая БД умеет. Вы на них вообще смотрели?
источник

DP

Dmitry Ponyatov in Compiler Development
neo4j
источник

AT

Alexander Tchitchigin in Compiler Development
Более того, атрибуты часто можно навешивать не только на узлы, но и на рёбра.
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
neo4j
И что, там нет атрибутов, что ли?
источник

DP

Dmitry Ponyatov in Compiler Development
Alexander Tchitchigin
И что, там нет атрибутов, что ли?
Насколько помню в той версии атрибуты не умели ссылаться на узел, только примитивные скалярные типы типа строк. Надо будет потыркать новую версию.
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
Насколько помню в той версии атрибуты не умели ссылаться на узел, только примитивные скалярные типы типа строк. Надо будет потыркать новую версию.
Потому что атрибуты, ссыляющиеся на узлы - это просто рёбра в графе. 😉
источник

DP

Dmitry Ponyatov in Compiler Development
Как упорядочить несколько ребер, организовав из них стек или очередь?
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
Как упорядочить несколько ребер, организовав из них стек или очередь?
Перенумеровать?
источник

DP

Dmitry Ponyatov in Compiler Development
Alexander Tchitchigin
Перенумеровать?
На каждую операцию? Вершину или хвост придется искать через min/max
источник

DP

Dmitry Ponyatov in Compiler Development
Вопрос не в скорости (для прототипа не важно), и не в том что все такие тонкости торчат наружу, а в том что запросы в такую бд могут оказаться просто мозговыносящими (надо пробовать, возможно какую-то обертку можно слепить)
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
Вопрос не в скорости (для прототипа не важно), и не в том что все такие тонкости торчат наружу, а в том что запросы в такую бд могут оказаться просто мозговыносящими (надо пробовать, возможно какую-то обертку можно слепить)
Да. Скорость (её отсутствие/недостаточность) и сложность запросов - основные причины, почему графовые БД "не взлетели".
источник

VS

Vasily Shapenko in Compiler Development
Я когда-то работал с самописной графовой бд. Ее отличала низкая скорость записи, но быстрая выборка по предикатам. Данные записывались в формате subject predicate object,т.е. ребра помечались
источник

SS

Sergey Sverdlov in Compiler Development
Andrei Kurosh
Есть линейка продуктов от компании Clickteam - они делают среды для разработки игр с упором на исключительно визуальное программирование с помощью условий и действий. Пилят аж с начала девяностых, я еще в школе кое-что в них делал. Порог вхождения действительно околонулевой, но зато возникает «потолок»: более сложную логику становится очень муторно описывать, результат перестает быть наглядным, ну и diff/merge стандартными средствами невозможен ибо файл проекта бинарный
У меня внук-пятиклассник рассказывает, что они в школе (лицее) что-то такое делают.
источник

AT

Alexander Tchitchigin in Compiler Development
Vasily Shapenko
Я когда-то работал с самописной графовой бд. Ее отличала низкая скорость записи, но быстрая выборка по предикатам. Данные записывались в формате subject predicate object,т.е. ребра помечались
Это не графовая БД, это Triple Store. Семантические технологии! 😄
источник