Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

FoPra-Vortrag von Bernadette Blum und Marvin Schiller 03.04.2003.

Ähnliche Präsentationen


Präsentation zum Thema: "FoPra-Vortrag von Bernadette Blum und Marvin Schiller 03.04.2003."—  Präsentation transkript:

1 FoPra-Vortrag von Bernadette Blum und Marvin Schiller 03.04.2003

2 Übersicht Kontext Motivation Vom Wert zur Darstellung Inkrementalität Transientenverwaltung Ausblick

3 Kontext erste Pretty Printer für LISP 1980: Derek Oppen: Pretty Printing generischer Algorithmus am Lehrstuhl Prof. Smolka: 1994: Bernhard Latz: Eine Benutzerschnittstelle für Oz Oz-Browser in Oz 1996: Konstantin Popov: Der Oz Browser 2000: Thorsten Brunklaus: Der Oz Inspektor -... Alice- bzw. Oz-Browser in Oz

4 Übersicht Kontext Motivation Vom Wert zur Darstellung Inkrementalität Transientenverwaltung Ausblick

5 Komplexität von Alice-Werten graphisches Browser-Tool – Implementierung in Alice Motivation [1, 2, 3, 4] [(1, 2), (3, 4), (5, 6)] horizontale Anordnung vertikale Anordnung Alice-Werte nicht selbstbeschreibend explizite Typinformation

6 Flexibilität / Interaktivität Anpassung an Benutzerpräferenzen benutzerdefinerte Typen Schnelligkeit Inkrementelles Update Ziele

7 Übersicht Kontext Motivation Vom Wert zur Darstellung Inkrementalität Transientenverwaltung Ausblick

8 layout draw Layout Zeichnen create Erzeugung interner Darstellung inspectBrowser-Ausgabe Vom Wert zur Darstellung (Wert, Typ)

9 Abstrakte Beschreibung doc := simple | doc 1 ^... ^doc n | #[doc 1,..., doc n ] create: value * type doc

10 Beispiel Wert (1, 2) #[ ] ^ ^ ( ) 2 1, Baumstruktur

11 strukturelle vs. abstrakte Typen strukturelle Typenabstrakte Typen create-Funktionalität einstufige Transformations- funktionen Registrierung !

12 Typregistrierung doc := simple | doc 1 ^... ^ doc n | #[doc 1,..., doc n ] doc = doc | value * type register: typename * (value * type doc) unit createDoc

13 Beispiel #[(1, 2), (3, 4)] register(vector, createVector) register(int, createInt) (int * int) vector

14 Beispiel #[ ] ^ ^ #[ ], (1, 2), int * int (3, 4), int * int #[(1, 2), (3, 4)], (int * int) vector createVector

15 Beispiel #[(1, 2), (3, 4)], (int * int) vector doc (1, 2), int * int (3, 4), int * int createVector

16 Beispiel #[(1, 2), (3, 4)], (int * int) vector doc (1, 2), int * int (3, 4), int * int doc 4, int 3, int 2, int 1, int create createVector

17 Beispiel #[(1, 2), (3, 4)], (int * int) vector doc (1, 2), int * int (3, 4), int * int doc 4, int 3, int 2, int 1, int doc createInt create createVector

18 Filter (1) Eingrenzung des Darstellungsbereichs doc := simple | doc 1 ^... ^ doc n | #[doc 1,....., doc n ] | limit

19 Ausblenden von Teilbäumen außerhalb des Darstellungsbereichs (vom Benutzer einstellbar) Breitenlimit Tiefenlimit Filter (2)

20 simple : atomare Werte doc 1 ^ doc 2 ^ doc 3 : Konkatenation ZXY A #[ doc 1, doc 2, doc 3 ] : Akkumulation nur simples nicht nur simples Layout ZXY X Y Z limit:

21 Übersicht Kontext Motivation Vom Wert zur Darstellung Inkrementalität Transientenverwaltung Ausblick

22 Inkrementalität der Darstellung Benutzer will Teilbaum verändern

23 Inkrementalität der Darstellung neue Konstruktion, Layout, Zeichnen neues Layout, Zeichnen Unterbäume verschieben

24 Übersicht Kontext Motivation Vom Wert zur Darstellung Inkrementalität Transientenverwaltung Ausblick

25 Transientenverwaltung (1) N1 future (1) Wächter future-Wert[ N1 ]

26 Transientenverwaltung (2) N1 N2 future (1) (2) Wächter future-WertN2 :: [ N1 ]

27 Transientenverwaltung (3) XX future wurde Wert X zugewiesen Wächter future-Wert[ N2, N1 ]

28 Übersicht Kontext Motivation Vom Wert zur Darstellung Inkrementalität Transientenverwaltung Ausblick

29 Benutzung neuer Gtk-Schnittstelle in Alice automatische Typreflektion nur Wertübergabe an inspect-Funktion


Herunterladen ppt "FoPra-Vortrag von Bernadette Blum und Marvin Schiller 03.04.2003."

Ähnliche Präsentationen


Google-Anzeigen