<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=GrGen.NET</id>
	<title>GrGen.NET - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=GrGen.NET"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=GrGen.NET&amp;action=history"/>
	<updated>2026-05-17T20:37:26Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=GrGen.NET&amp;diff=1489057&amp;oldid=prev</id>
		<title>imported&gt;Aka: /* Weblinks */ https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=GrGen.NET&amp;diff=1489057&amp;oldid=prev"/>
		<updated>2024-02-15T18:56:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Weblinks: &lt;/span&gt; https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Programmiersprache&lt;br /&gt;
 | Name                         =&lt;br /&gt;
 | Logo                         = &lt;br /&gt;
 | Beschreibung                 = &amp;lt;!-- Beschreibung des Logos --&amp;gt;&lt;br /&gt;
 | Paradigma                    = [[Programmierparadigma|Multiparadigma]]: [[Deklarative Programmierung|deklarativ]], [[Imperative Programmierung|imperativ]], [[Objektorientierte Programmierung|objekt-orientiert]]&lt;br /&gt;
 | Erscheinungsjahr             = 2003&lt;br /&gt;
 | Entwickler                   = Sebastian Hack, Rubino Geiss, Moritz Kroll, Edgar Jakumeit, u.&amp;amp;nbsp;v.&amp;amp;nbsp;a.&lt;br /&gt;
 | AktuelleVersion              = 4.5&lt;br /&gt;
 | AktuelleVersionFreigabeDatum = {{FormatDate|2017-04-09}}&lt;br /&gt;
 | AktuelleVorabVersion         =&lt;br /&gt;
 | AktuelleVorabVersionFreigabeDatum =&lt;br /&gt;
 | Typisierung                  = [[Typisierung (Informatik)|statisch, teilweise dynamisch, stark, nominativ]]&lt;br /&gt;
 | Implementierung              =&lt;br /&gt;
 | Dialekte                     =&lt;br /&gt;
 | Standardisierungen           =&lt;br /&gt;
 | Beeinflusst_von              =&lt;br /&gt;
 | Beeinflusste                 =&lt;br /&gt;
 | Betriebssystem               = [[MS Windows|Windows]], [[Linux]]&lt;br /&gt;
 | Lizenz                       = [[GPL|LGPL v3]]&lt;br /&gt;
 | Website                      = https://grgen.de/&lt;br /&gt;
}}&lt;br /&gt;
[[Datei:GrGenNETKochSnowflakeMatch.png|mini|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)]]&lt;br /&gt;
[[Datei:GrGenNETKochSnowflakeRewrite.png|mini|Ausführung des Ersetzungsschrittes]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;GrGen.NET&amp;#039;&amp;#039;&amp;#039; ist ein [[Entwicklungswerkzeug|Softwareentwicklungswerkzeug]], das [[Programmiersprache]]n ([[Domain Specific Language|Fachsprachen (DSL)]]) anbietet, die auf die Verarbeitung von [[Datenstruktur#Graph|graphartigen Daten]] hin optimiert wurden.&lt;br /&gt;
In ihrem Kern bestehen die Sprachen aus [[Modular|modularen]] [[Graphersetzungssystem|Graphersetzungregeln]], die auf [[Deklarative Programmierung|deklarativer]] Graphmustersuche- und Ersetzung aufbauen;&lt;br /&gt;
sie werden durch viele Konstrukte, die in der [[Imperative Programmierung|imperativen]] und [[Objektorientierte Programmierung|objekt-orientierten]] Programmierung geläufig sind ergänzt,&lt;br /&gt;
und mit aus [[Abfragesprache|Datenbankenabfragesprachen]] bekannten Sprachmitteln vervollständigt.&lt;br /&gt;
&lt;br /&gt;
Der Graph Rewrite [[Codegenerierung|GENerator]] [[Compiler|übersetzt]] die Sprachen in effiziente [[.NET Framework#Assemblies|.NET-Assemblies]] (über [[C-Sharp|C#]]-Code als Zwischenschritt), die über eine [[Programmierschnittstelle]] in den Code einer beliebigen [[Liste der .NET-Sprachen|.NET-Sprache]] integriert werden können.&lt;br /&gt;
GrGen kann unter [[Windows]] und [[Linux]] ([[Mono (Software)|Mono]] benötigt) ausgeführt werden und ist als [[Open Source]] unter der [[LGPL]] v3 verfügbar.&lt;br /&gt;
&lt;br /&gt;
Zum [[Prototyping (Softwareentwicklung)|Rapid Prototyping]] und [[Debugging]] enthält das Programmpaket eine interaktive [[Kommandozeileninterpreter|Kommandozeile]] und einen (VCG-)Graphvisualisierer.&lt;br /&gt;
Mit seinen Sprachen und seinem graphischen und schrittweisen Debugging erlaubt GrGen die Entwicklung auf dem natürlichen [[Abstraktion]]sniveau von graphbasierten Darstellungen.&lt;br /&gt;
Selbige finden zum Beispiel im [[Ingenieurwesen]], der [[Modelltransformation]], der [[Computerlinguistik]], oder dem [[Compilerbau]] (als [[Zwischencode|Intermediate Representation]]) Verwendung.&lt;br /&gt;
&lt;br /&gt;
GrGen erhöht die Produktivität für diese Art von Aufgaben deutlich über das hinaus, was mit der Programmierung in einer gewöhnlichen Programmiersprache erreicht werden kann;&lt;br /&gt;
aufgrund der vielen implementierten Optimierungen erlaubt es dennoch schnelle Lösungen zu erreichen.&lt;br /&gt;
Seine Entwickler bewerben das [[Graphersetzungssystem|System]] mit der Aussage, dass es die höchste kombinierte [[Produktentwicklung|Entwicklungs]]- und [[Computerprogramm#Übersetzung und Ausführung|Ausführungsgeschwindigkeit]] bietet, die für das  [[Algorithmus|algorithmische]] Verarbeiten von [[Graph (Graphentheorie)|Graphen]] verfügbar ist&lt;br /&gt;
(basierend auf ihrem Abschneiden bezüglich diverser Aufgaben, die in unterschiedlichen Ausgaben des Transformation Tool Contests (/GraBaTs) gestellt wurden).&lt;br /&gt;
&lt;br /&gt;
== Beispielspezifikation ==&lt;br /&gt;
&lt;br /&gt;
Es folgt ein Auszug aus der Graphmodell- und Ersetzungsregelspezifikation der GrGen.NET-Lösung für die {{Toter Link | url=http://www.fots.ua.ac.be/events/grabats2008/cases/grabats2008performancecase.pdf | text=AntWorld-Aufgabe (PDF; 105&amp;amp;nbsp;kB) | datum=2019-01-03}}, die auf der Grabats 08 gestellt wurde.&amp;lt;ref&amp;gt;{{Webarchiv | url=http://fots.ua.ac.be/events/grabats2008/ | wayback=20120723054735 | text=Grabats 08}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Graphmodell:&lt;br /&gt;
&amp;lt;!-- Das Syntaxhighlight von cpp ist nicht wirklich ideal, sollte ausgebessert werden, wenn etwas besseres gefunden wird --&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
 node class GridNode {&lt;br /&gt;
     food:int;&lt;br /&gt;
     pheromones:int;&lt;br /&gt;
 }&lt;br /&gt;
 node class GridCornerNode extends GridNode;&lt;br /&gt;
 node class AntHill extends GridNode {&lt;br /&gt;
     foodCountdown:int = 10;&lt;br /&gt;
 }&lt;br /&gt;
 node class Ant {&lt;br /&gt;
     hasFood:boolean;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 edge class GridEdge connect GridNode[1] -&amp;gt; GridNode[1];&lt;br /&gt;
 edge class PathToHill extends GridEdge;&lt;br /&gt;
 edge class AntPosition;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ersetzungsregeln:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
 rule TakeFood(curAnt:Ant)&lt;br /&gt;
 {&lt;br /&gt;
     curAnt -:AntPosition-&amp;gt; n:GridNode\AntHill;&lt;br /&gt;
     if { !curAnt.hasFood &amp;amp;&amp;amp; n.food &amp;gt; 0; }&lt;br /&gt;
&lt;br /&gt;
     modify {&lt;br /&gt;
         eval {&lt;br /&gt;
             curAnt.hasFood = true;&lt;br /&gt;
             n.food = n.food - 1;&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 rule SearchAlongPheromones(curAnt:Ant)&lt;br /&gt;
 {&lt;br /&gt;
     curAnt -oldPos:AntPosition-&amp;gt; old:GridNode &amp;lt;-:PathToHill- new:GridNode;&lt;br /&gt;
     if{ new.pheromones &amp;gt; 9; }&lt;br /&gt;
&lt;br /&gt;
     modify {&lt;br /&gt;
         delete(oldPos);&lt;br /&gt;
         curAnt -:AntPosition-&amp;gt; new;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 test ReachedEndOfWorld(curAnt:Ant) : (GridNode)&lt;br /&gt;
 {&lt;br /&gt;
     curAnt -:AntPosition-&amp;gt; n:GridNode\AntHill;&lt;br /&gt;
     negative {&lt;br /&gt;
         n &amp;lt;-:PathToHill-;&lt;br /&gt;
     }&lt;br /&gt;
     return (n);&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* Hauptseite des [https://grgen.de/ GrGen.NET]-Projektes&lt;br /&gt;
* [https://www.grgen.de/GrGenNET-Manual.pdf GrGen.NET User Manual] (englisch) (PDF; 5,9&amp;amp;nbsp;MB)&lt;br /&gt;
* [https://www.grgen.de/doc/agtive_2007_grgennet.pdf Kurze Einführung in GrGen.NET 1.4 (englisch, veraltet)] (PDF; 174 kB)&lt;br /&gt;
* [https://www.grgen.de/history_publications.html Wissenschaftliche Veröffentlichungen zu GrGen]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:Grgen}}&lt;br /&gt;
[[Kategorie:Graphersetzung]]&lt;br /&gt;
[[Kategorie:Deklarative Programmiersprache]]&lt;br /&gt;
[[Kategorie:Freies Programmierwerkzeug]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>