GrGen

GrGen

GrGen.NET (Graph Rewrite GENerator, .NET version) is a graph transformation tool which generates efficient C#-code (or .NET-assemblies) out of declarative graph rewrite rule specifications.
Graphs and graph rewrite rules are specified by intuitive domain specific languages (semantics based on the SPO-approach, DPO available as well); they may get used from graph rewrite sequences, a simple, yet for most graph transformation tasks sufficient, special purpose programming language, or via an API by any .NET language.GrGen is meant to be used for generating the algorithmic kernel of applications processing graph structured data (program graphs, social nets, chemical structures, ...). For rapid prototyping and debugging, an interactive shell and a (VCG-)graph viewer are included in the package, which executes under Windows and Linux (Mono required) and is open source available under GPL v3.

Specification sample

An example containing some graph model and rule specifications from the GrGen.NET-solution to the [http://www.fots.ua.ac.be/events/grabats2008/cases/grabats2008performancecase.pdf AntWorld-challenge] posed at [http://www.fots.ua.ac.be/events/grabats2008 Grabats 08] .

Graph model:

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;

Rewrite Rules:

rule TakeFood(curAnt:Ant) { curAnt -:AntPosition-> n:GridNodeAntHill; 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:GridNodeAntHill; negative { n <-:PathToHill-; } return (n); }

External links

* Homepage of the [http://www.grgen.net GrGen.NET] -project
* [http://www.info.uni-karlsruhe.de/software/grgen/GrGenNET-Manual.pdf GrGen.NET User Manual]
* [http://www.info.uni-karlsruhe.de/software/grgen/agtive_2007_grgennet.pdf Short introduction into GrGen.NET]

Conference papers

* [http://www.springerlink.com/content/291511p891rn6616 GrGen: A Fast SPO-Based Graph Rewriting Tool] / [http://www.info.uni-karlsruhe.de/papers/grgen_icgt2006.pdf] - ICGT 06
* [http://www-users.cs.york.ac.uk/~det/Papers/agtive.07.pdf Generation of Sierpinski Triangles: A Case Study for Graph Transformation Tools] - AGTIVE 07
* [http://www.info.uni-karlsruhe.de/papers/agtive_2007_firm.pdf Graph Rewriting for Hardware Dependent Program Optimizations] - AGTIVE 07
* [http://www.info.uni-karlsruhe.de/papers/agtive_2007_search_plan.pdf A First Experimental Evaluation of Search Plan Driven Graph Pattern Matching] - AGTIVE 07
* [http://www.ipd.uka.de/Tichy/uploads/publikationen/180/gramot2-gelhausen.pdf Customizing GrGen.NET for Model Transformation] - GraMoT 08
* [http://www.informatik.uni-bremen.de/~hof/papers/08-GCM.pdf Graph Rewrite Rules with Structural Recursion] - ICGT/GCM 08

See also

* Graph transformation
* Graph rewriting
* Domain Specific Language (DSL)
* Source Code Generation


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • GrGen — Debugging der Sequenz zum Erzeugen einer Koch Schneeflocke (links die Regeln, unten die GrShell mit hervorgehobener aktueller Regel, rechts yComp mit hervorgehobener Passung im Arbeitsgraph) …   Deutsch Wikipedia

  • GrGen.NET — Paradigmen: deklarativ,Multiparadigma Erscheinungsjahr: 2003 Entwickler: [Sebastian Hack] und [Rubino Geiss] Aktuelle Version: 3.0  (2011 07 29) …   Deutsch Wikipedia

  • Graphersetzung — Beispiel für Graphersetzungsregel (Optimierung aus dem Compilerbau: Multiplikation mit 2 durch Addition ersetzt) Graphersetzungssysteme dienen der formalen Beschreibung der Veränderung von Graphen. Ein Graphersetzungssystem ist eine Menge M von… …   Deutsch Wikipedia

  • Graphersetzungssysteme — Beispiel für Graphersetzungsregel (Optimierung aus dem Compilerbau: Multiplikation mit 2 durch Addition ersetzt) Graphersetzungssysteme dienen der formalen Beschreibung der Veränderung von Graphen. Ein Graphersetzungssystem ist eine Menge M von… …   Deutsch Wikipedia

  • Graphgrammatik — Beispiel für Graphersetzungsregel (Optimierung aus dem Compilerbau: Multiplikation mit 2 durch Addition ersetzt) Graphersetzungssysteme dienen der formalen Beschreibung der Veränderung von Graphen. Ein Graphersetzungssystem ist eine Menge M von… …   Deutsch Wikipedia

  • Graphtransformation — Beispiel für Graphersetzungsregel (Optimierung aus dem Compilerbau: Multiplikation mit 2 durch Addition ersetzt) Graphersetzungssysteme dienen der formalen Beschreibung der Veränderung von Graphen. Ein Graphersetzungssystem ist eine Menge M von… …   Deutsch Wikipedia

  • Список .NET-языков — Эта страница информационный список. Языки программирования .NET (Языки с поддержкой CLI или CLI языки)  компьютерные языки программирования, используемые для создания библиотек и программ, удовлетворяющих требованиям Comm …   Википедия

  • Graphersetzungssystem — Beispiel für Graphersetzungsregel (Optimierung aus dem Compilerbau: Multiplikation mit 2 durch Addition ersetzt) Graphersetzungssysteme dienen der formalen Beschreibung der Veränderung von Graphen. Ein Graphersetzungssystem ist eine Menge M von… …   Deutsch Wikipedia

  • Liste von .NET-Sprachen — Die folgende Aufstellung enthält eine Liste von Programmiersprachen für Microsoft .NET, Mono oder einer kompatiblen Laufzeitumgebung. Sprache Implementierung Hersteller Ada 2005 A# (Ada for .NET) APL Dyalog.NET ASP ASP.NET: ASM to IL …   Deutsch Wikipedia

  • Domain-specific language — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”