21
Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts Universität zu Kiel Kevin Hesse

Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

Embed Size (px)

Citation preview

Page 1: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen

Seminar Layout-Algorithmen für GraphenInstitut für Informatik

Christian-Albrechts Universität zu Kiel

Kevin Hesse

Page 2: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

2

Struktur

• Einführende Worte• Graph-Grammatik• Layout-Graph-Grammatik• Gruppierung von Teilgraphen und Parser-Graphen• Reversed Graph Grammar• VisPro• RGG mit Layout-Regeln in VisPro• Anwendung im Beispielfall• Auswertung

Page 3: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

3

Einführende Worte

• Grammatik-basiertes Layout• Grafische Programmiersprachen• Kombination

Page 4: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

4

Graph-Grammatik

• Definition Graph– Ein Graph G ist ein Tupel (V, E), wobei V die

Menge der Knoten, sowie E die Menge der gerichteten Kanten und somit Teilmenge von ist.

– Gibt es ferner eine Menge B von Beschriftungen, heißt eine Abbildung , die jedem Knoten eine Beschriftung zuordnet Knotenmarkierung.

– Eine Abbildung , die jeder Kante eine Beschriftung zuordnet, heißt entsprechend Kantenmarkierung.

Page 5: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

5

Graph-Grammatik

• Definition Graph-Grammatik– Eine Graph-Grammatik S ist ein Tupel (N, T, A, R). N ist die

Menge der Nichtterminale, T die Menge der Terminale, das Anfangs-Nichtterminal und R die Menge der Regeln.– Eine Regel ist dabei das Tupel (L, R, C) mit L als linke Seite der

Regel in Form eines Nichtterminals. R ist die rechte Seite und stellt einen markierten gerichteten Graphen dar. C ist eine Menge von Einbettungsregeln mit und mit und die Kantenmarkierung, die Richtung der Kante und der betroffene Knoten. Zu interpretieren ist es wie folgt: Eine f-markierte Kante, die den nichtterminalen Knoten L durch eine d-gerichteten Kante mit dem Graphen verbindet, wird stattdessen an den Knoten g gelegt.

Page 6: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

6

Graph-Grammatik

• Aufbau der Grammatik wie bei Wörtern• Graph muss markiert sein• Regeln müssen angepasst werden– Einbettungsinformationen– Graph als Rechte Seite der Regel

• Gleichheit bedeutet Isomorphie

Page 7: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

7

Layout Graph-Grammatik

• Definition– Eine Layout Graph-Grammatik L ist ein Tupel (S, K) mit der

Graph-Grammatik S und der Layout-Komponente K(S) passend zu der Grammatik

– Für jede Regel existiert in K(S) eine Menge von Positionsbedingungen P(r)

– kann dabei entweder eine Positions- oder eine Kantenregel sein

– Eine Positionsregel beschreibt die Position von zwei Knoten über ihre Kante zueinander, eine Kantenregel beschreibt, selbiges für die Kanten die über die Einbettungsregel in r spezifiziert ist

Page 8: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

8

Layout Graph-Grammatik

• Trotz Layout-Komponente wieder eine Graph-Grammatik

• Positionsbedingung müssen konsistent sein• Nach Brandenburg werden nur allgemein die

Horizontale und die Vertikale bedacht. Keine konkreteren Angaben

F. Brandenburg: Layout graph grammars: The placement approach

Page 9: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

9

Gruppierung von Teilgraphen und Parser-Graphen nach McCreary et al.

• Bildung von Gruppen von Teilgraphen• Parser-Graph, gebildet aus Gruppen als

Knoten und Nichtterminalen als Blätter• Ein Algorithmus bildet aus dem Parser-Graph

mit Hilfe von Relationsinformationen einen neuen Graphen

C. McCreary, R. Chapman, and F.-S. Shieh. Using graph parsing for automatic graph drawing

Page 10: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

10

Reversed Graph Grammar

• Nicht kontextfrei• Keine Kanten im herkömmlichen Sinne• Knoten enthalten Verbindungsinformationen

K. Z. D-Q. Zhang. Reserved Graph Grammar: A Specication Tool for Diagrammatic VPLs

Page 11: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

11

Struktur

• Einführende Worte• Graph-Grammatik• Layout-Graph-Grammatik• Gruppierung von Teilgraphen und Parser-Graphen• Reversed Graph Grammar• VisPro• RGG mit Layout-Regeln in VisPro• Anwendung im Beispielfall• Auswertung

Page 12: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

12

VisPro

• Programm zum erstellen von visuellen Programmiersprachen

• Grammatik der Sprache über Graph-Grammatik

• Parser zur Auswertung kann generiert werden• Layout-Generierung kann auf den Regeln der

Auswertung der Sprache beruhen

K. Z. D-Q. Zhang. VisPro: A Visual Language Generation Toolset

Page 13: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

13

RGG mit Layout-Regeln in VisPro

• Der Parser kann beim Prüfen der Syntax direkt das neue Layout berechnen

• Beim Auswerten des Graphen kann dann das neue Layout gezeichnet werden

• Layout ist an Korrektheit gebunden

Page 14: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

14

K.-B. Zhang, K. Zhang, and M. Orgun. Grammar-based layout for a visual programming language generation system

Page 15: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

15

Anwendung im Beispielfall

K.-B. Zhang, K. Zhang, and M. Orgun. Grammar-based layout for a visual programming language generation system

Page 16: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

16

Anwendung im Beispielfall

1. Prüfen der Syntax2. Parser-Graph mit Gruppen erstellen3. Größen-Bestimmung der Teilbäume in den

Gruppen4. Optimierung der Kantenverläufe5. Bestimmung der Positionen der einzelnen

Knoten anhand der Layout-Regeln

Page 17: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

17

Auswertung

• Anwendbarkeit– Programmabhängig, unwahrscheinlich, dass viele

Programme solch Tiefe Layout-Bestimmungen anbieten

– Mit VisPro jedoch, einfach und nebenbei umsetzbar

– Kann an jede visuelle Programmiersprache angepasst werden

Page 18: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

18

Auswertung

• Endnutzerfreundlichkeit– Visuelle Programmiersprachen Entwickler (VisPro):• Kann mit den syntaktischen Regeln zusammen erstellt

werden• Ergibt sich mit der Sprache

– Nutzer von solchen Programmiersprachen:• Layout ist intuitiv, da an Syntax gekoppelt• Kein zusätzlicher Aufwand, Layout wird, bei korrekter

Syntax, angepasst

Page 19: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

19

Auswertung

• Flexibilität– Wenig, da es sich um ein Regelsystem handelt– Ausnahmen sind schwer einzurichten, grade

wegen der Verknüpfung zur Syntax– Jede Regel kann jedoch individuell das Layout

beeinflussen und die Einteilung in Gruppen tut dies ebenso, daher nicht ganz unflexibel

Page 20: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

20

Auswertung

• Fazit+ Passt sehr gut zu visuellen Programmiersprachen+ Benötigt keine weiteren Programmierkenntnisse und es müssen keine Algorithmen angepasst werden- Wenig Flexibel- Entwicklungsprogramm muss diese Art von Layout unterstützen

Page 21: Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts

21

Ende

• Fragen?