GrGen

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)
Ausführung des Ersetzungsschrittes

GrGen.NET (Graph Rewrite GENerator, .NET-Version) ist ein Graphersetzungssystem, das aus deklarativen Graphersetzungsregeln effizienten C#-Code (bzw. .NET-Assemblies) generiert. Graphen und Graphersetzungsregeln werden durch intuitive Fachsprachen (DSL) mit einer auf dem SPO-Ansatz beruhenden Semantik (DPO ist ebenfalls verfügbar) spezifiziert. Sie können über Graphersetzungssequenzen genutzt werden, einer einfachen, aber für viele Graphersetzungsaufgaben hinreichenden Steuerungssprache, oder über eine Programmierschnittstelle durch jede .NET-Sprache. GrGen ist dafür vorgesehen, den algorithmischen Kern von Anwendungen zu generieren, die graphartige Daten (Programmgraphen, soziale Netze, chemische Strukturen, ...) verarbeiten. Zum Rapid Prototyping und Debugging enthält das Programmpaket eine interaktive Kommandozeile und einen (VCG-)Graphvisualisierer; es kann unter Windows und Linux (Mono benötigt) ausgeführt werden und ist als Open Source unter der GPL v3 verfügbar.

Beispielspezifikation

Es folgt ein Auszug aus der Graphmodell- und Ersetzungsregelspezifikation der GrGen.NET-Lösung für die AntWorld-Aufgabe, die auf der Grabats 08 gestellt wurde.

Graphmodell:

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;

Ersetzungsregeln:

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);
}

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • 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… …   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”