Языки с собственным компонентом / синтаксический / встраивают поддержку графика?

График является возможно самой универсальной и ценной структурой данных всех. Я могу сохранить единственные переменные, списки, хеши и т.д. и конечно графики, с ним.

Учитывая это, там какие-либо языки, которые предлагают встроенный / собственная поддержка графика и синтаксис? Я могу создать переменные, массивы, списки и хеши, встроенные в Ruby, Python и JavaScript, но если я хочу график, я должен или управлять представлением сам с матрицей / список, или выбрать библиотеку и использовать график через вызовы метода.

С какой стати этот все еще имеет место в 2010? И, практически, есть ли какие-либо языки там, которые предлагают встроенную поддержку графика и синтаксис?

7
задан Ollie Glass 22 July 2010 в 01:32
поделиться

3 ответа

Основная проблема того, о чем вы спрашиваете, заключается в том, что более общее решение не является лучшим для конкретной проблемы. Оно просто среднее для всех, но не лучшее.

Хорошо, вы можете хранить список в графе, предполагая его вырожденность, но почему вы должны делать что-то подобное? А как бы вы хранили хэшмап внутри графа? Зачем вам нужна такая структура?

И не забывайте, что реализация графа должна быть выбрана в соответствии с тем, какие операции вы собираетесь выполнять над ним, иначе это будет похоже на использование hashtable для хранения списка значений или списка для хранения упорядоченной коллекции вместо дерева. Вы знаете, что можно использовать матрицу смежности, список ребер или списки смежности... каждая реализация имеет свои сильные и слабые стороны.

Затем, графы могут иметь действительно много свойств по сравнению с другими коллекциями данных, циклические, ациклические, направленные, ненаправленные, двудольные и так далее... и для каждого конкретного случая вы можете реализовать их по-разному (предполагая некоторую гипотезу о графе, который вам нужен), так что иметь их в родном синтаксисе было бы излишеством, поскольку вам все равно придется их настраивать (а язык должен предоставлять множество реализаций/оптимизаций).

Если все уже сделано, вы лишаете себя удовольствия от разработки :) Кстати, просто поищите язык, который позволяет вам написать свой собственный граф DSL и живите с ним!

2
ответ дан 7 December 2019 в 12:13
поделиться

GrGen.NET (www.grgen.net) - это язык программирования для преобразования графов, а также среда, включающая графический отладчик. Вы можете определить модель графа, правила перезаписи и управление правилами с помощью нескольких красивых языков специального назначения и использовать сгенерированные сборки/C# код из любого языка .NET, который вам нравится, или из поставляемой оболочки.

Чтобы понять, почему обычные языки не предлагают такого удобного/встроенного интерфейса к графам, просто взгляните на объем кода, написанного для этого проекта: один только компилятор - это несколько человеко-лет работы. Это слишком высокая цена для функции/структуры данных, которая нужна лишь меньшинству программистов - поэтому она не включена в языки программирования общего назначения.

1
ответ дан 7 December 2019 в 12:13
поделиться

Gremlin, язык программирования на основе графов: https://github.com/tinkerpop/gremlin/wiki

2
ответ дан 7 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: