ГрГен
![]() | в этой статье Использование внешних ссылок может не соответствовать политике и рекомендациям Википедии . ( январь 2023 г. ) |
![]() | |
Парадигма | Мультипарадигма : декларативная , императивная , объектно-ориентированная. |
---|---|
Разработчик | Себастьян Хак, Рубино Гейсс, Мориц Кролл, Эдгар Якумейт и другие. |
Впервые появился | 2003 |
Стабильная версия | ГрГен.NET 4.5
/ 9 апреля 2017 г |
Дисциплина набора текста | Статический, частично динамический, сильный, безопасный , именительный падеж. |
ТЫ | Кроссплатформенность (мультиплатформенность) |
Лицензия | Меньшая стандартная общественная лицензия GNU |
Веб-сайт | видеть |


GrGen.NET — это инструмент разработки программного обеспечения , который предлагает языки программирования ( предметно-ориентированные языки ), оптимизированные для обработки данных, структурированных в виде графов . Ядро языков состоит из модульных правил перезаписи графов , которые построены на декларативном сопоставлении и переписывании шаблонов графов; они дополняются многими конструкциями, которые используются в императивном и объектно-ориентированном программировании, и комплектуются языковыми средствами, известными из языков запросов к базам данных .
Генератор Graph Rewrite GENerator компилирует языки в эффективные сборки CLI (через C# -Code на промежуточном этапе), которые можно интегрировать через API в код, написанный на любом .NET-языке . GrGen может быть запущен под Windows и Linux ( Mono требуется ) и имеет открытый исходный код , доступный под лицензией LGPL v3.
интерактивная оболочка Для быстрого прототипирования и отладки в пакет включены и программа просмотра (VCG-)графов. Благодаря своим языкам, визуальной и пошаговой отладке GrGen позволяет разрабатывать на естественном уровне абстракции представления на основе графов, например, те, которые используются в инженерии , преобразовании моделей , компьютерной лингвистике или построении компиляторов (в качестве промежуточного представления ).
GrGen повышает производительность такого рода задач намного больше, чем можно достичь при программировании на традиционном языке программирования; благодаря множеству реализованных оптимизаций производительности он по-прежнему позволяет достигать высокопроизводительных решений. Его авторы утверждают, что система предлагает самую высокую комбинированную скорость разработки и выполнения , доступную для алгоритмической обработки представлений на основе графов (на основе их производительности при решении разнообразных задач, поставленных в разных выпусках конкурса инструментов трансформации (/GraBaTs)).
Образец спецификации [ править ]
Ниже приведен пример, содержащий графовую модель и спецификации правил от решения GrGen.NET до случая AntWorld. Архивировано 10 августа 2011 г. на Wayback Machine и размещено в Grabats 08. Архивировано 29 ноября 2012 г. на archive.today .
Модель графа:
node class GridNode { food:int; pheromones:int; } node class GridCornerNode extends GridNode; node class AntHill extends GridNode { foodCountdown:int = 10; } node class Ant { hasFood:boolean; } edge class GridEdge connect GridNode[1] -> GridNode[1]; edge class PathToHill extends GridEdge; edge class AntPosition;
Переписать правила:
rule TakeFood(curAnt:Ant) { curAnt -:AntPosition-> n:GridNode\AntHill; if { !curAnt.hasFood && n.food > 0; } modify { eval { curAnt.hasFood = true; n.food = n.food - 1; } } } rule SearchAlongPheromones(curAnt:Ant) { curAnt -oldPos:AntPosition-> old:GridNode <-:PathToHill- new:GridNode; if { new.pheromones > 9; } modify { delete(oldPos); curAnt -:AntPosition-> new; } } test ReachedEndOfWorld(curAnt:Ant) : (GridNode) { curAnt -:AntPosition-> n:GridNode\AntHill; negative { n <-:PathToHill-; } return (n); }
Внешние ссылки [ править ]
- Домашняя страница GrGen.NET проекта
- Руководство пользователя GrGen.NET
- Краткое введение в GrGen.NET 1.4 (устарело)
Материалы конференции [ править ]
- GrGen: быстрый инструмент переписывания графов на основе SPO / [1] - ICGT 06
- Генерация треугольников Серпинского: пример использования инструментов преобразования графов - AGTIVE 07
- Переписывание графов для аппаратно-зависимой оптимизации программ - AGTIVE 07
- Первая экспериментальная оценка сопоставления шаблонов графов на основе плана поиска - AGTIVE 07
- Customizing GrGen.NET for Model Transformation - GraMoT 08
- Правила перезаписи графов с помощью структурной рекурсии - ICGT/GCM 08