Home
        Handbuch - Universität Siegen
         Contents
1.      Abbrechen       Abbildung 2 8  Automat   Erreichbare Zust  nde     Aktiviere die erreichbaren Zust  nde  z0  z1     Zustand z0 fertiggestellt  noch zu berechn             27    Kapitel 3    Wie erstelle ich einen  Kellerautomaten        Wie ein normaler Automat angelegt wird  wurde bereits besprochen  In diesem  Kapitel geht es darum  einen Kellerautomaten anzulegen  der die Sprache a   b     f  r n  gt  0 erkennt  Als erstes muss der Neu Dialog ge  ffnet werden  im ersten Tab  muss    Automat    gew  hlt werden  anschlie  end der    Kellerautomat     F  r das  Beispiel muss sowohl als Eingabe   wie auch als Kelleralphabet das Alphabet  a   b  gew  hlt werden  Dazu kann das Alphabet bei beiden Eingabefeldern einzeln  eingestellt werden  oder nur bei    Eingabe Alphabet     wobei dann der Haken  bei    Keller Alphabet    entfernt werden muss  Dadurch werden automatisch die  gleichen Alphabete verwendet     Ist die Datei angelegt  muss   berlegt werden  welche Zust  nde und   berg  nge  ben  tigt werden  um die Sprache zu erkennen  Dabei kommt man dazu  dass  mindestens folgende Zust  nde und   berg  nge n  tig sind  um die Sprache zu  erkennen     e Ein Zustand z0  der sowohl Start   wie auch akzeptierenden Zustand ist    e Ein Zustand z1    Ein akzeptierender Zustand z2    e Einen   bergang von z0 nach z1  der das erste Symbol a vom Eingabewort  liest und auf den Keller schreibt    e Einen   bergang von z1 nach z1  der alle weiteren Symbole a vom Einga   bewort liest und
2.    ausgew  hlt  wird das  Wort genau wie der Keller rechtsb  ndig dargestellt  Eine weitere   nderung ist   dass die gelesenen Symbole nicht hervorgehoben  sondern ausgeblendet werden     Die Einstellungsm  glichkeit    Zoom Faktor    bezieht sich auf den Graphen des  Automaten  es handelt sich dabei um die f  r jede Datei benutzte Voreinstellung   Der Zoom Faktor kann aber auch f  r jede Datei einzeln eingestellt werden     Mit Hilfe der Einstellung    Fehlerzustand in Regul  ren Ausdruck in DEA   Umwandlung anzeigen    kann man einstellen  ob der Fehlerzustand im Um   wandlungsalgorithmus angezeigt wird  oder nicht  Im erstellten DEA wird der    40    5 2  AUTOMATEN EINSTELLUNGEN ANPASSEN 41    Zustand unabh  ngig von der Einstellung angelegt     Auf dem Tab    Ansicht    kann die Einstellung    Auto Step    angepasst wer   den  Im GTI Tool kann an verschiedenen Stellen  zum Beispiel bei der Wort   Navigation  diese Navigation auch automatisch ablaufen  Der hier eingestellte  Wert wird dabei als Zeit zwischen zwei Schritten verwendet     u Einstellungen  2 gt     Allgemein Ansicht Farben Alphabet Grammatik       Zustand    bergang  Symbol  Produktion  Nichtterminalzeichen  Normal  E Fehlerhaft  E Hervorgehoben  W Start  Terminalzeichen  Parser  Regul  rer Ausdruck                Standard Ok       bernehmen     Abbrechen       Abbildung 5 1  Einstellungen    Der Tab    Farben    bietet die M  glichkeit  die verwendeten Farben seinen  Bed  rfnissen anzupassen  Zur Auswahl ste
3.    deln  Dazu betrachten wir den Beispielautomat aus der Vorlesung      0    1    0     Aa fe     F  r diesen Beispielautomat liefe der Algorithmus wie folgt ab     Zun  chst wird ein Ausdruck f  r den gesamten Automaten angelegt  In  unserem Fall wurde L3      L2 a E22   L2       L2    angelegt    e Nun werden die einzelnen Sprachen konkretisiert  In unserem Beispiel  zun  chst L2     Dies wird in Li a HI e Ll umgewandelt     2021   2021     2020 2021    e Im n  chsten Schritt wird dann Lt    zz  In 1 umgewandelt     e Dies wird solange fortgesetzt bis alle Sprachen zu regul  ren Ausdr  cken  umgewandelt sind     e In unserem Fall ist das Ergebnis   1  OJe  OJe  1   1  Ole  Ole  1   1le  O Ole    Us   1le  O Ole    1      Achtung  Wie im Beispiel zu sehen  wird der regul  re Ausdruck selbst bei  einem kleinen Automaten schon relativ gro    Daher ist bei gr    eren Automaten  mit erheblichem Rechenaufwand zu rechnen     26 KAPITEL 2  WIE ERSTELLE ICH EINEN AUTOMATEN     Bellen          lir   213   L20212 j120712121212 17171   2071    120711 120201120201 120211  ER     1212     1  212    rOr11 1202011202017120717       f1  01      0 ER   LZz0Z11  L20201120201  L20z11   Lz1z12  Lia                       Abbildung 2 7  Automat   Umwandeln in regul  ren Ausdruck    2 3 8 Erreichbare Zust  nde      ber den Men  eintrag    Extras    kann der Punkt    Erreichbare Zust  nde    aus   gew  hlt werden  In dem erscheinenden Dialog kann  wie in den anderen auch   durch die einzelnen Schri
4.    hnlich dem Folgenden      llejogienuts    Alle Produktionen durchgehen    Wenn zwei Produktionen der From B   gt  BAY und A   gt       vorhanden sind    dann wird die Produktion B   gt  DX aufgenommen           Danach alle e Produktionen bis auf S   gt  e entfernen    Wobei S Startsymbol ist                 Als Text speichern     Drucken         Abbildung 6 1  Algorithmenfenster    In diesem Fenster kann man sich den Algorithmus  welcher gerade ausgef  hrt  wird in Kurzform noch einmal anschauen  W  hrend das Fenster ge  ffnet ist kann  man trotzdem den Algorithmus laufen lassen  Es bleibt dann im Vordergrund    Diesen Text kann man entweder als Textdatei speichern oder drucken     6 2 Zweite Ansicht    Im Men  punkt    Ansicht    ist die Option    Zweite Ansicht    zu finden  Wird dieser  Men  eintrag ausgew  hlt  wird eine zweite Ansicht eingeblendet  in der Dateien  ge  ffnet werden k  nnen  Dabei ist darauf zu achten  dass keine Dateien ge  ffnet    44    6 2  ZWEITE ANSICHT 45    werden k  nnen  die bereits in der anderen Ansicht ge  ffnet sind  Wird trotz   dem eine solche Datei ge  ffnet  wird die Datei ausgew  hlt  Da immer nur eine  Datei aktiv sein kann  wird die aktive Ansicht durch eine dunklere Umrandung  dargestellt  als das bei der nicht aktiven der Fall ist  Die Button Stati bezie   hen sich dann auf diese aktive Ansicht  Die aktive Ansicht kann durch einfaches  Anklicken einer Komponente in der Ansicht ge  ndert werden     D a GI 10017000    Datei Bearbeit
5.    wird jetzt  eine neue Datei mit dem minimierten Automaten erstellt  mit welchem man  dann weiter arbeiten kann     Nat  rlich kann der Minimierungsprozess jederzeit abgebrochen werden  In  diesem Fall wird keine neue Datei angelegt  man kann den Ausgangsautomaten  weiter bearbeiten     Wenn man in den Navigationsbereich des Dialogs schaut  stellt man fest   dass noch weitere Button verf  gbar sind  auf welche jetzt noch nicht eingegan   gen wurde  Zun  chst einmal gibt es die Button    Bis zum Ende vor    und    An  den Anfang zur  ck     Mit    Bis zum Ende vor    kann man alle Zwischenschritte    berspringen  und gelangt direkt zur Ansicht des minimalen Automaten     An  den Anfang zur  ck    bewirkt genau das Gegenteil  und springt zur Ausgangsan   sicht zur  ck  Dann gibt es noch einen    Schritt zur  ck    Button  welcher einzelne  Verfeinerungsschritte r  ckg  ngig macht  Und schlussendlich gibt es noch einen  Button    Automatische Schritte     welcher nach einer kurzen Verz  gerung auto   matisch den n  chsten Schritt macht  bis der Minimierungsprozess abgeschlossen  ist  Diese Funktion kann durch den    Stop    Button wieder deaktiviert werden     Wenn man die neue Datei mit dem minimalen Automaten erstellen m  chte   ohne sich die Minimierung im Detail anzuschauen  besteht jederzeit die M  glich   keit  den Dialog mit    OK    zu best  tigen  Die Minimierung wird dann im Hinter   grund beendet  man gelangt sofort zur Ansicht des neu entstandenen Automaten  und ka
6.   m  ssen wir zuerst den entsprechenden  Modus ausw  hlen  Folgende Modi sind in der Toolbar verf  gbar     N Maus Modus  Neuer Zustand    Neuer   bergang    Neuer Start Zustand    Neuer Akzeptierender Zustand    Da wir zu Beginn den Startzustand anlegen wollen  w  hlen wir    Neuer Start  Zustand    und klicken auf eine freie Fl  che im unteren Teil  um den Zustand  dort zu erstellen  Um den Zustand nachtr  glich zu bearbeiten  m  ssen wir in  den Maus Modus wechseln  Den Konfigurationsdialog erreicht man dann   ber  Doppelklick oder das Kontextmen      ber das Kontextmen   l  sst sich ein Zu   stand auch wieder l  schen     Auf diese Weise lassen sich alle Zust  nde anlegen  die f  r den Beispielau   tomaten ben  tigt werden  Nachdem wir alle Zust  nde angelegt haben  fehlen  noch die   berg  nge zwischen den Zust  nden  Daher wechseln wir in den    Neu   er   bergang    Modus  Um jetzt einen neuen   bergang anzulegen  klicken wir auf  einen Zustand und ziehen  bei gedr  ckter Maustaste  die Maus auf einen anderen  Zustand  Beim Loslassen   ffnet sich der Konfigurationsdialog f  r   berg  nge  In  diesem Dialog ziehen wir jetzt die Symbole  die in dem   bergang enthalten sein  sollen  aus der linken Liste mit allen Symbolen in die rechte Liste  welche die    bergangsmenge repr  sentiert  Als Hilfestellung wird im unteren Dialog der ent   stehende   bergang angezeigt  Nach best  tigen durch    OK    wird der   bergang  angelegt     Die   berg  nge lassen sich auf die gleiche
7.   rfen  Bei der Funktion    Vorlage f  r       spielen  Fehler allerdings keine Rolle     8 KAPITEL 1  WIE ERSTELLE ICH EINE NEUE GRAMMATIK     1 3 1 Einheitsproduktionen entfernen    Hierzu nutzen wir die folgende Beispielgrammatik   G        N  S  P  mit          a b c d   N   A S   S S    P    S     Aa  S     b  A  gt  Ac  A  gt  Sd  A  gt      A  gt  S   Nun findet man im Men   unter    Ausf  hren    den Punkt    Einheitsproduk   tionen entfernen     Es erscheint das folgende Fenster     ENEE prod AKA ONEMENMIM ETEN                                                                      KK   m m  SS   Outline  Original RA Einheitsproduktion gefunden  A     5   Nichtterminalzeichen Nichtterminalzeichen Neue Produktion A    Au erzeugt   us D  S    Startsymbol Startsymbol   5 s   Termin  alzeichen Terminal Izeichen   EE Heen   Produktionen Produktionen   EEN  A Ac   A gt sd A gt  Sd   Ae A gt    S gt  Aa S gt  Aa   S b  S b   A sS A gt S   A  gt   Aa   Drucken 1   Algorithmus anzeigen ok    Abbrechen       Abbildung 1 4  Grammatik   Einheitsproduktionen entfernen    Ganz links befindet sich die urspr  ngliche Grammatik  Rechts daneben fin   det man die neue Grammatik  Diese ist am Anfang gleich der Urspr  nglichen  und wird erst im Verlauf des Algorithmus ver  ndert    Zun  chst sucht der Algorithmus nun nach einer Einheitsproduktion und fin   det die Produktion A     S    Nun wird f  r jede Produktion von S eine entsprechende Produktion f  r A  hinzugef  gt  Dies w  re in unse
8.   werden     30 KAPITEL 3  WIE ERSTELLE ICH EINEN KELLERAUTOMATEN     Z      Datei Bearbeiten   nsicht Ausf  hren Extras Hilfe  pana   n e 5    Navigation  pda    Alphabet    Keller Keller Alphabet     a  b        Das Wort aaab wird nicht akzeptiert       Abbildung 3 1  Automat   Kellerautomat Navigation    Wird f  r diesen Automaten die Wort Navigation mit dem Wort aabb ge   startet  ergibt sich im zweiten Schritt der Navigation  dass der   bergang  der  verwendet werden kann  nicht mehr eindeutig ist  Oben auf dem Keller be   findet sich das Nichtterminalzeichen E  welches entweder durch e oder durch  aEb ersetzt werden k  nnte  Da wir das Wort aabb erkennen wollen  muss der    bergang E     aEb ausgew  hlt werden  Der n  chste Schritt ist wieder eindeu   tig  da nur der   bergang ausgew  hlt werden kann  der a vom Eingabewort liest  und a vom Keller entfernt  Im n  chsten Schritt muss wieder ausgew  hlt wer   den  welcher   bergang verwendet werden soll  Da als n  chstes Terminalzeichen  wieder ein a auf dem Eingabewort steht  muss wieder der   bergang E     aEb  ausgew  hlt werden  Genau wie zuvor ist der n  chste Schritt wieder eindeutig   Da als n  chstes das Terminalzeichen b auf dem Keller steht  muss diesmal der    bergang E     e ausgew  hlt werden  Durch diesen   bergang wird das oben auf  dem Keller stehende Nichtterminalzeichen E entfernt  Mit den n  chsten zwei  eindeutigen Schritten werden die Terminalzeichen b auf dem Eingabewort gele   sen und vom Keller entf
9.  2 nach 1 mit Symbol b er     Transition von 2 nach 2 mit Symbol b er          alse             Lastpos    6                                   Drucken     Agorithmus anzeigen       Abbildung 4 4  Regul  rer Ausdruck   Umwandeln in NDEA  Wenn wir den Algorithmus an unserem Beispiel durchgehen  erhalten wir  folgenden Ablauf     e Zun  chst wird f  r jede Position aus firstpos des gesamten Ausdrucks ein  Startzustand angelegt     38 KAPITEL 4  WIE ERSTELLE ICH EINEN REGUL  REN AUSDRUCK     Danach l  uft der Algorithmus ab  Es wird f  r jeden Zustand  also f  r  die Position  die Funktion followpos generiert  diese kann man sich anse   hen  indem man im regul  ren Ausdruck auf die jeweilige Position klickt   F  r jede Position in followpos wird dann ein Zustand angelegt und ein    bergang mit dem Symbol an der Position des ausgehenden Zustandes   In unserem Beispiel w  rde zun  chst ein   bergang vom Zustand 1 zu sich  selbst mit Symbol a angelegt     Im Anschluss wird von 1 zu 2 sowie 3 jeweils ein   bergang mit a gemacht   Dann wird der Zustand 1 markiert   Dies wiederholt sich f  r die anderen Zust  nde     Zum Schluss wird der Zustand mit der Position des Endmarkers zum End   zustand  In unserem Beispiel ist das der Zustand 6     4 4 3 Exportieren nach BTEX    Man kann einen regul  ren Ausdruck auch nach ATEX exportieren    Dazu gibt es im Men   den Eintrag    Datei           Exportieren nach LaTeX      Nach einem Klick auf den Eintrag erscheint ein Dialog  in welchem man de
10.  3 2 Vorlage f  r       Ein Automat kann als Vorlage f  r einen neuen Automaten benutzt werden  Dies  sollte nicht mit    Umwandeln in       verwechselt werden  Es wird eine neue Datei  angelegt  die alle Zust  nde und   berg  nge des Ausgangsautomaten enth  lt   Allerdings kann man den Automatentypen neu festlegen     2 3 3  Wort Navigation    Wir k  nnen f  r einen Automaten eine Wort Navigation starten  Das bedeutet   dass wir ein Wort eingeben k  nnen  welches wir den Automaten verarbeiten  lassen wollen und k  nnen dann schrittweise vor und zur  ck navigieren  Dabei  werden die aktuell aktiven Zust  nde und   berg  nge farblich hervorgehoben   Am Ende k  nnen wir dann sehen  ob der Automat das von uns gew  hlte Wort  akzeptiert oder nicht  Dies wird   ber ein Statusfeld im unteren Fenster signali   siert  Es gibt auch die M  glichkeit  zu erkennen  ob ein Wort zu einem fr  heren  Zeitpunkt der Navigation akzeptiert w  rde  Dies kann man anhand eines Rah   mens um das aktuelle Wort Feld erkennen  Ein roter Rahmen steht daf  r  dass  das Wort bis zum aktuellen Symbol von unserem Automat nicht akzeptiert wird   ein gr  ner Rahmen hingegen gibt zu verstehen  dass es akzeptiert wird     18 KAPITEL 2  WIE ERSTELLE ICH EINEN AUTOMATEN     W  hrend man sich im Wort Navigations Modus befindet  l  sst sich der Auto   mat nicht weiter bearbeiten  Das bedeutet  wir k  nnen Zust  nde und   berg  nge  weder anlegen noch l  schen oder bearbeiten  Dies ist erst nach Verlassen dieses  Mo
11.  Base N    Grammar cfg                          Extras Hilfe       Nichtterminalzeichen     E           Startsymbol       E       Terminalzeichen              6 i          0  1  x  Y        Produktionen    Abbildung 1 3  Grammatik   Kontextfreie Grammatik    1 3 Was fange ich mit einer Grammatik an     Wir haben jetzt eine Grammatik angelegt und stellen uns jetzt vielleicht die  Frage  was wir damit eigentlich anfangen k  nnen  Es bestehen zur Zeit zwei  Verwendungsm  glichkeiten f  r eine Grammatik     Zun  chst einmal kann man die Grammatik als Vorlage f  r eine neue Gram   matik nutzen  Das ist zum Beispiel sinnvoll  wenn wir eine kontextfreie Gram   matik haben und jetzt eine regul  re Grammatik mit den gleichen Produktionen  erstellen wollen  Dazu   ffnet man den Men  punkt    Ausf  hren    und w  hlt un   ter    Vorlage f  r       den gew  nschten Typ der neuen Datei aus  Dabei ist zu  beachten  dass die Grammatik nicht konvertiert wird  sondern nur als Vorlage  verwendet wird     Die andere Verwendungsm  glichkeit beinhaltet  sich aus der Grammatik  einen entsprechenden Automaten generieren zu lassen  Es besteht die M  glichkeit   sich f  r eine regul  re Grammatik den entsprechenden NDEA  und f  r eine kon   textfreie Grammatik den entsprechenden Kellerautomat erzeugen zu lassen  Zu  finden ist die Umwandlung im Men  eintrag    Ausf  hren    unter    Umwandeln    Mi    Es ist zu beachten  dass beim Umwandeln einer Grammatik keine Validie   rungsfehler vorhanden sein d
12.  Dieses Informationsfenster beinhaltet die Informationen zum aktuell aus   gew  hlten Knoten im Graph Fenster  Diese Informationen bestehen aus den in  der Vorlesung Compilerbau I definierten Funktionen nullable  firstpos  lastpos  und followpos  Au  erdem wird jetzt auch unter den Blattknoten die jeweilige  Position angegeben     4 4 Was macht man mit regul  ren Ausdr  cken     4 4 1   bersetzen in Kernsyntax    Ein regul  rer Ausdruck kann im GTI Tool folgende Erweiterungen enthalten     ee a    aax    34 KAPITEL 4  WIE ERSTELLE ICH EINEN REGUL  REN AUSDRUCK     e a    qaje  e  a    an    Lol  lan   e Jo      ak     aiQi 1  an  wenn i  lt  k und i k     N    Also w  re zum Beispiel auch  a z  ein regul  rer Ausdruck  wenn das Alpha   bet die Zeichen von a bis z umfasst    Wenn man nun einen Ausdruck mit diesen Erweiterungen erstellt hat  kann  man diesen    in Kernsyntax   bersetzen     Dies funktioniert   ber den Men  punkt     Ausf  hren             bersetzen in Kernsyntax       Dann wird eine neue Datei erstellt  die den Ausdruck in Kernsyntax bein   haltet  Dabei wird das Alphabet einfach   bernommen     4 4 2 Einen regul  ren Ausdruck umwandeln    Einen regul  ren Ausdruck kann man in einen Automaten umwandeln  Dazu gibt  es drei verschiedene Algorithmen  Zum einen der    Thompson Algorithmus     der  aus dem regul  ren Ausdruck einen e NDEA konstruiert und zwei Algorithmen   um aus dem regul  ren Ausdruck einen NDEA bzw  direkt einen DEA zu kon   struieren     Regul  
13.  Konkatenation  a br  a     b  erstellen          altea O           O                            Drucken ok     Abbrechen       Abbildung 4 2  Regul  rer Ausdruck   Umwandeln in  NDEA    4  Aus der Blackbox f  r  alb   wird der Automat f  r einen Kleene Abschluss  konstruiert und dadurch eine Blackbox f  r den Ausdruck alb erstellt     5  Aus der Blackbox f  r alb wird der Automat f  r eine Disjunktion erstellt  und damit zwei Blackboxen f  r a und b     6  Nun werden nacheinander von links nach rechts  in der Baumansicht des  regul  ren Ausdruck  die Blackboxen f  r die einzelnen Symbole durch einen  Ubergang mit dem jeweiligen Symbol gebildet     Achtung  Vor der Umwandlung wird der regul  re Ausdruck in Kernsyntax  umgewandelt  Au  er Charakterklassen  diese bleiben erhalten und werden im  Algorithmus wie ein Symbol behandelt     Regul  ren Ausdruck in DEA umwandeln    Im Men   findet sich unter    Ausf  hren    der Punkt    Umwandeln in              DEA      Es   ffnet sich ein Fenster  das sehr   hnlich dem Fenster der Umwandlung in einen  e NDEA ist  Zus  tzlich ist hier aber neben dem Graph Fenster auch noch das  Informationsfenster f  r die Knoten im Graphen eingeblendet  Au  erdem wurde  der Ausdruck um ein Endzeichen       erweitert    Wenn wir den Algorithmus an unserem Beispiel durchgehen  erhalten wir  folgenden Ablauf     e Zun  chst wird der Startzustand  aus allen Positionen die in firstpos des  gesamten Ausdruck enthalten sind  gebildet  Die Positionen kann m
14.  Weise bearbeiten und l  schen  wie  es bei den Zust  nden m  glich ist  Es gibt allerdings eine Besonderheit  Wenn  man die Maus anstatt   ber einem Zustand    ber einem leeren Bereich los l  sst   entsteht beim Anlegen des   bergangs zus  tzlich ein neuer Zustand     16 KAPITEL 2  WIE ERSTELLE ICH EINEN AUTOMATEN     Diesen Vorgang wiederholen wir jetzt f  r alle   berg  nge  die f  r den Bei   spielautomaten ben  tigt werden  Wenn wir damit fertig sind  k  nnen wir den  Automaten noch validieren  um zu sehen  ob uns beim Anlegen der Zust  nde  und   berg  nge irgendwelche Fehler unterlaufen sind  Diese Funktion erreicht  man   ber das Kontextmen   oder   ber den Men  punkt    Ausf  hren        Sollten die Zust  nde nicht ganz so optimal platziert sein  kann man versu   chen    ber die Auto Layout Funktion ein besseres Ergebnis zu erreichen  Diese  ist   ber    Ausf  hren    und    Auto Layout    oder   ber das Kontextmen   erreich   bar     2 3 Was fange ich mit einem Automaten an     F  r einen erstellten Automaten gibt es folgende Verwendungsm  glichkeiten     2 3 1 Bearbeiten per   bergangstabelle    Die   berg  nge eines Automaten k  nnen   ber die Tabelle bearbeitet werden   Diese ist im rechten Teil des Fensters zu finden  Es ist m  glich  neue   berg  nge  anzulegen  Bestehende   berg  nge k  nnen gel  scht oder editiert werden     Betrachten wir ein einfaches Beispiel  Wir legen zwei Zust  nde z0 und z1  an und arbeiten auf dem Alphabet  0  1   Die   bergangstabell
15.  Wird ein  e NDEA in einen NDEA umgewandelt  entf  llt das Anlegen des Zustandes Q  es  wird einfach kein   bergang mit dem entsprechenden Symbol angelegt  da bei  einem NFA nicht alle Symbole vorhanden sein m  ssen     Wird ein  NDEA umgewandelt  kommen jeweils zwei Schritte dazu  So wird  nach dem Aktivieren der alten Zust  nde  bei unserem Beispiel die Schritte eins   sieben  etc   der e Abschluss berechnet  es werden also auch alle Zust  nde ak   tiviert  die mit e   berg  ngen zu erreichen sind  Gleiches gilt f  r das Anzeigen  der neuen Zust  nde  bei unserem Beispiel in den Schritten vier  neun etc   auch  hier werden in einem einzelnen Schritt alle Zust  nde hervorgehoben  die mit  e   berg  ngen zu erreichen sind     2 3  WAS FANGE ICH MIT EINEM AUTOMATEN AN  25    2 3 6 Umwandeln in     Potenzmenge     DI    Der einzige Unterschied zwischen den Men  punkten    Umwandeln in       und     Umwandeln in     Potenzmenge     ist  dass alle Zust  nde bei Verwendung der  Potenzmenge bereits zu Beginn angelegt werden  auch solche  die nicht ben  tigt  werden  die also nicht erreichbar sind  In dem in Abschnitt gew  hlten  Beispiel w  re das der Zustand  z1   da dieser nicht zu erreichen ist und nur einen    bergang mit allen Symbolen zu dem Zustand H hat  Wie solche Zust  nde im  Anschluss entfernt werden k  nnen  kann im Abschnitt 2 3 8jnachgelesen werden     2 3 7 Umwandeln in regul  ren Ausdruck    Es besteht die M  glichkeit einen DEA in einen regul  ren Ausdruck umzuwan
16.  angelegt wird     Dies geht dann immer so weiter  bis der letzte Zustand  1 2 3 6  ab   gearbeitet wurde  Es gibt nun keine unmarkierten Zust  nde mehr und  es werden die Endzust  nde gesucht  Diese sind alle  die die Position aus  lastpos des gesamten Ausdrucks beinhalten  In unserem Fall ist dies der  zuletzt erstellte Zustand  1 2 3 6      4 4  WAS MACHT MAN MIT REGUL  REN AUSDR  CKEN  37    Achtung 1  Auch hier wird  wie bei der Umwandlung in einen e NDEA  der  Ausdruck erst in Kernsyntax   bersetzt  nur dass er hier komplett   bersetzt  wird     Achtung 2  Wenn das Alphabet viele Symbole umfasst  kann es zu langen  Berechnungszeiten kommen  daher empfiehlt es sich  dass Alphabet nicht zu  gro   zu w  hlen     Regul  ren Ausdruck in NDEA umwandeln    Im Men   findet sich unter    Ausf  hren    der Punkt    Umwandeln in              NDEA      Es   ffnet sich ein Fenster  das sehr   hnlich dem Fenster der Umwandlung in  einen DEA ist  Au  erdem wurde auch hier der Ausdruck um ein Endzeichen     7     erweitert    Der Algorithmus l  uft im Prinzip genau so wie der Algorithmus zum Erstel   len eines DEA  nur das hier nicht Positionsmengen als Zust  nde dienen  sondern  einzelne Positionen     u Regularen Auedruckumwandeln DER                   Outline   Nullable Startzust  nde erstellen  firstpos a by a  Transition von 1 nach 1 mit Symbol a er  Transition von 1 nach 2 mit Symbol a er  Transition von 1 nach 3 mit Symbol a er  Firstpos  Zustand 1 markieren   DEE Transition von
17.  auf den Keller schreibt    e Einen   bergang von zl nach z2  der das erste b vom Eingabeband liest  und das oberste a vom Keller l  scht    e Einen   bergang von z2 nach z2  der alle weiteren Symbole b vom Einga   bewort liest und die entsprechenden Symbole a vom Keller l  scht       28    3 1  NAVIGATION 29    Damit das Wort akzeptiert wird  muss sich somit bei der Wort Navigation  ergeben  dass das Eingabewort komplett gelesen wurde  Zus  tzlich muss sich  der Automat entweder im Zustand z0 oder im Zustand z2 befinden  wobei der  Keller leer sein muss     Wie die Zust  nde und   berg  nge angelegt werden  wurde bereits in die   sem Handbuch beschrieben  deshalb wird an dieser Stelle nur auf die Besonder   heiten des Kellerautomaten eingegangen  Es werden insgesamt vier   berg  nge  ben  tigt  um die Sprache zu erkennen  Alle   berg  nge m  ssen Ver  nderungen  am Keller durchf  hren  Wir nehmen als Beispiel den   bergang von z0 nach z1   bei dem das Symbol a vom Eingabeband gelesen und auf den Keller geschrie   ben werden muss  Beim Anlegen oder Editeren dieses   bergangs besteht die  M  glichkeit  das    Keller Lese Wort    und das    Keller Schreib Wort    zu editie   ren  In diesem Fall soll das Symbol a auf den Keller geschrieben werden  es muss  also beim    Keller Schreib Wort    das Symbol a eingetragen werden  Das    Keller  Lese Wort    muss leer bleiben  da nichts vom Keller gelesen werden soll     3 1 Navigation    Wurden auf diese Weise alle Zust  nde und   ber
18.  dem eingestellten Port auf eintreffende  Dateien  Per    Abbrechen    kann der Server wieder gestoppt werden  sollte keine  Datei empfangen werden  Wird eine Datei empfangen  wird diese automatisch  ge  ffnet und der Server beendet  Der Austausch Dialog wird nicht geschlossen  so  dass weitere Dateien empfangen oder verschickt werden k  nnen  Wird eine Datei  empfangen  kann der vom Sender eingestellte Kommentar im Nachrichtenfenster  eingesehen werden     6 4 Bild exportieren    Im Men  punkt    Datei    besteht die M  glichkeit  den Automaten Graphen in  ein Bild zu exportieren  Der Eintrag ist nur aktiv  wenn eine Automaten Datei  selektiert ist  Wird der Eintrag    Bild exportieren    angeklickt    ffnet sich ein  Speichern Dialog  mit dem das Bild gespeichert werden kann  Damit das Ergeb   nis nicht zu viele freie Bereiche enth  lt  wird nur der vom Automaten benutzte  Bereich exportiert  zus  tzlich zu einem 20 Pixel breiten Rand     
19.  verschl  sselt    bertragen     Wenn eine Datei verschickt werden soll  muss diese als erstes selektiert wer   den  Anschlie  end muss der Austausch Dialog ge  ffnet werden  Dieser bietet  die M  glichkeit  zwischen    Senden    und    Empfangen    zu w  hlen  Um die Da   tei zu verschicken  muss also    Senden    ausgew  hlt werden  au  erdem muss der     Host    angegeben werden  auf dem ein GTI Tool empfangsbereit ist  Zus  tzlich  ist der    Port    anzugeben  standardm    ig ist Port    64528    eingestellt  Der Port  muss also nur ge  ndert werden  wenn der Empf  nger der Datei ihn ebenfalls  ge  ndert hat  Beim Senden kann zus  tzlich ein Kommentar vergeben werden   den der Empf  nger angezeigt bekommt  wenn die Datei empfangen wurde  der  aber sonst keinen Einfluss hat  Wenn alle Werte eingestellt sind  kann die Datei  mit    Ausf  hren    verschickt werden        lt EE EE Eeieike kt x    Datei Bearbeiten Ansicht Ausf  hren Extras Hilfe  DG a BB HP Nki OSL Od Ekaakr bg   neueDateid enfa     0                    m Austausch    Horche an Port 64528  Eine Datei empfangen   Routing enfa    Port  64528    Host  localhost       Empfangen  Beschreibung Sende  senden      Ausf  hren   Abbrechen     Schlie  en       Abbildung 6 3  Austausch von Dateien    Das Empfangen einer Datei funktioniert sehr einfach  es muss nur der Port    6 4  BILD EXPORTIEREN 47    eingestellt werden  auf dem der Server auf eingehende Dateien horchen soll   Per    Ausf  hren    horcht der Server auf
20. 0       F  ge einen   bergang von  z0  nach    Symbol a fertiggestellt      Aktiviere alten Zustand  z0    Berechne mowe   z0   b        aktiviere neue Zust  nde move   z0        F  ge einen   bergang won  z0  nach      Symbol b und Zustand  z0  fertigge         Aktiviere alten Zustand  z0  z1   Berechne move   z0  z1   a                Drucken ok    Abbrechen       Abbildung 2 6  Automat   Umwandeln in       2 3  WAS FANGE ICH MIT EINEM AUTOMATEN AN  23    Werden die Schritte einzeln durchgegangen  ergibt sich folgender Ablauf     1   2   3     10     11     12     13     Der Start Zustand zO wird aktiviert   In der unteren Ansicht wird der Start Zustand  z0  angelegt     Die   berg  nge mit dem ersten Symbol aus dem Alphabet  also a  wer   den hervorgehoben  um anzuzeigen  welche Zust  nde mit dem Symbol zu  erreichen sind       In unserem Beispiel sind das die Zust  nde z0 und z1  die hervorgehoben    werden       In der unteren Ansicht wird ein   bergang von  z0  nach  z0  z1  mit    Symbol a angelegt  Da dieser zweite Zustand in unserem Beispiel noch  nicht existiert  wird er angelegt       Dieser Schritt zeigt an  dass das Symbol a fertiggestellt ist       Da f  r den Zustand  z0  noch nicht alle Symbole betrachtet wurden  wird    er aktiviert       Es wird die gleiche Berechnung wie bei Schritt drei durchgef  hrt  aller     dings f  r Symbol b  Da es in unserem Beispiel keinen   bergang von den  betroffen Zust  nden  bei uns nur z0  gibt  werden in der oberen Ansicht  
21. Datei Bearbeiten Ansicht Ausf  hren Extras Hilfe  KEN ETA DN EST KA STT Me    History enfa       z0 1   228  z3       Drucken Schlie  en                Wort Alphabet      0  1   Keller Keller Alphabet              0  1     Das Wort 0 wird akzeptiert       Abbildung 2 4  Automat   Minimieren    Um die Wort Navigation zu beenden  klickt man einfach wieder auf den  Button    Wort eingeben    in der Toolbar oder man w  hlt im Men      Ausf  hren     den Punkt    Automat bearbeiten     Jetzt befinden wir uns wieder im normalen  Modus und wir k  nnen den Automaten wieder normal bearbeiten     2 3 4 Minimieren    Es besteht auch die M  glichkeit sich aus einem DFA den minimalen Automaten  berechnen zu lassen  F  r diese Funktion darf der Automat allerdings keine Feh   ler mehr enthalten  was wir durch eine Validierung ausschlie  en k  nnen  Das  Minimieren startet man   ber den Men  punkt    Ausf  hren    und    Minimieren        Es   ffnet sich ein neuer Dialog mit einer Ansicht des Automaten und einer  Tabelle  Der Automat sieht im Moment noch genau wie unser Ausgangsautomat  aus  Wenn man allerdings jetzt auf    Schritt vor    klickt  werden als erster Schritt    20 KAPITEL 2  WIE ERSTELLE ICH EINEN AUTOMATEN     alle nicht erreichbaren Zust  nde entfernt  In der Outline wird angegeben  um  welche Zust  nde es sich dabei handelt  Der zweite Schritt besteht darin  die  erste Einteilung der   quivalenzklassen vorzunehmen  Dazu unterteilen wir die  Zust  nde des Automaten in akzepti
22. GTI Tool    Benutzerhandbuch    Christian Fehler  Benjamin Mies  Simon Meurer    Fachbereich 12   Informatik und Elektrotechnik  Universit  t Siegen    30  Juli 2009    Inhaltsverzeichnis    3  e EE ar ee Doing 3  1 2 Anlegen von Produktionen        2 2 2 2 2 22 nennen 4  1 3 Was fange ich mit einer Grammatik an        2 2222    6   1 3 1 Einheitsproduktionen entfernen   e  7  1 3 2 Produktionen entfernen     T  EE 8  1 3 4 Links Faktorisierung        2  222 22mm en 10  BEEN 11   12   13    2 2 Zust  nde und   berg  nge anlegen 14                         2 3 Was fange ich mit einem Automaten an   15  2 3 1 Bearbeiten per   bergangstabelle                 15   2 3 2 Vorlage f  r  Le 16  EE 16  er Ar ei 18  SE A E ee 20   2 3 6  Umwandeln in     Potenzmenge         2 2 2 2    24   2 3 7 Umwandeln in regul  ren Ausdruck  24   2 3 8 _ Erreichbare Zust  ndel       2 22 22 2m  25   27  EE EE EE 28  ee EEEE 28   31  e e EPE EEEE EEEE 31  EEEE e e e E 31  4 3 Das Informationsfenster     32  4 4 Was macht man mit regul  ren Ausdr  cken                32  SE 32  ee 33    INHALTSVERZEICHNIS    4 4 3 Exportieren nach BTE   X         5 Einstellungen  5 1 Oberfl  che anpassen    5 2 Automaten Einstellungen anpassen    5 3 Grammatik Einstellungen anpassen    6 Sonstiges    6 1 Algorithmen         2 2 2 2     6 2 Zweite Ansicht       6 3 Austausch von Dateienl          6 4 Bild exportieren                            37    39  39  40  41    43  43    Kapitel 1    Wie erstelle ich eine neue  G
23. an sich    36 KAPITEL 4  WIE ERSTELLE ICH EINEN REGUL  REN AUSDRUCK     m Keguieren AuedrickumwandeinErDeR       Kam S am       een  0                 Outline    Nullable Startzustand erstellen  firstpos alb  a b d      1 2 3  d Gr  Transition f  r Symbol a erstellen    Transition f  r Symbol b erstellen    PA   6 Zustand  1  2  3  markieren    Firstpos Transition f  r Symbol a erstellen  1  2                 3 Lastpos    12                                     OK     Abbrechen       Abbildung 4 3  Regul  rer Ausdruck   Umwandeln in DEA    auch anschauen  indem man den obersten Knoten im Graph markiert  In  unserem Beispiel wird der Zustand  1 2 3  als Startzustand zum Automat  hinzugef  gt     Danach l  uft der Algorithmus ab  Es wird f  r jedes Symbol  das im Al   phabet vorhanden ist  geschaut  ob man eine weitere Position erreicht   followpos   In diesem Fall wird f  r das Symbol a die Position 4 als Nach   folger gefunden  Daher wird ein   bergang a vom Startzustand zu einem  neuen Zustand  4  angelegt     Als n  chstes kommt das Symbol b  F  r dieses wird ein   bergang zum  Zustand  1 2 3  angelegt     e Nun wird dieser Zustand markiert  da f  r ihn  wenn unser Alphabet nur  die Symbole a und b umfasst  alle Symbole durchgegangen wurden     e Nun kommen wir zum n  chsten Zustand  1 2 3 4   F  r diesen wird das  Symbol a getestet und es wird ein   bergang auf sich selbst angelegt     e Danach ist b an der Reihe  F  r welches ein   bergang in einen neuen  Zustand  1 2 3 5 
24. der Recursive Descent Parser in einer einfachen Programmierspra   che erstellt    Es wird f  r jedes Nonterminal eine Funktion erstellt  Also in unserem Bei   spiel zun  chst eine f  r E  Darin werden dann verschiedene F  lle behandelt  Da  es f  r E nur die Produktion E     b gibt  gibt es auch nur einen Fall  In diesem  wird das Eingabezeichen b gelesen  angedeutet durch das macht     b        Danach wird eine Funktion f  r S erstellt  Diese beinhaltet drei F  lle  Zun  chst  wird im ersten Fall die erste Produktion von S behandelt  Als erstes wird i ge   lesen  dann wird die Funktion f  r das Nonterminal E aufgerufen und so weiter    Den Recursive Descent Parser kann man entweder als Text speichern oder  drucken     Kapitel 2    Wie erstelle ich einen  Automaten     Wir wollen uns anhand des folgenden Beispiels anschauen  wie ein Automat  erstellt wird      0  1  2  3  4  5  6  7  8  9   0  1  2  3  4  5  6  7  8  9      a  Li  0  1  2  3  4  5  6  7  8  O    6  7  8  9            g    GA  0 1  2 3 4 7         0  1  2  3  4  5  6  7  8  9      4   6 0 1 2 3 4  5 6  7  8       q5        0 1  2  3  4  5  6  7  8  9           13    14 KAPITEL 2  WIE ERSTELLE ICH EINEN AUTOMATEN     2 1 Neue Automat Datei anlegen    Am Anfang m  ssen wir dazu erst einmal den    Neu       Dialog   ffnen  Dort  w  hlen wir aus  dass wir einen Automaten erstellen wollen und klicken auf     Weiter        Im n  chsten Dialog werden wir gefragt  von welchem Typ unser neuer Auto   mat sein soll  In u
25. dus wieder m  glich     Lei u GI T001000    Datei Bearbeiten Ansicht Ausf  hren Extras Hilfe W    BB HP DN EST KA xy e    Navigation dfa     a     u b  E    Wort Alphabet    Keller Keller Alphabet    Das Wort aaab wird nicht akzeptiert       Abbildung 2 3  Automat   Wort Navigation    Zur Wort Navigation gelangt man   ber den Men  punkt    Ausf  hren    und     Wort eingeben    oder direkt   ber den Button in der Toolbar  In dem Feld     Wort    k  nnen wir jetzt ein Wort eingeben  Als Hilfestellung sehen wir rechts  neben dem Eingabefeld das aktuelle Alphabet mit den g  ltigen Symbolen     Nachdem wir das Wort eingegeben haben  startet man die Navigation   ber     Start    in der Toolbar oder im Kontextmen    Jetzt kann man mit    Schritt vor     und    Schritt zur  ck    durch das Wort navigieren  Es existiert auch noch ein auto   matischer Modus  Dabei wird nach einer kurzen Verz  gerung das n  chste Sym   bol gelesen  Dieser Modus l  sst sich durch den Button    Automatische Schritte     aktivieren und deaktivieren     2 3  WAS FANGE ICH MIT EINEM AUTOMATEN AN  19    Wenn man wissen m  chte    ber welche Pfade man zu den momentan aktiven  Zust  nden gelangt ist  kann man sich dies   ber    Extras    und    Zustands Pfad     anzeigen lassen  Es   ffnet sich ein neuer Dialog mit einer Tabelle  in welcher f  r  jeden aktiven Zustand der aktuelle Pfad angezeigt wird  Dabei wird als erstes  der k  rzeste Pfad angezeigt  und dann alle weiteren     K   m GTi 00At                
26. e besteht somit  aus vier Spalten  in der ersten Spalte werden die Zust  nde dargestellt  in der  zweiten die   berg  nge mit e und in den anderen die Symbole des Alphabets   also in unserem Fall je eine Spalte f  r O und 1     Um von z0 nach z1 einen e   bergang anzulegen  muss die erste Zeile mit  z0 bearbeitet werden  Da ein e   bergang angelegt werden soll  muss die zweite  Spalte bearbeitet werden  Um dies umzusetzen  muss auf die entsprechende  Zelle doppelt geklickt werden  Es steht ein Parser zur Verf  gung  in den mit  Komma getrennte Zust  nde eingetragen werden k  nnen  Die Zust  nde m  ssen  vorhanden sein  In userem Beispiel tragen wir also in der zweiten Spalte  in der  ersten Zeile den Zustand z1 ein und best  tigen die Eingabe mit Enter  Es wird   wie erwartet  ein e   bergang von z0 nach z1 angelegt     Als n  chstes sollen zwei   berg  nge auf einmal mit Symbol 0 angelegt wer   den  Beide sollen von Zustand z1 ausgehen  der erste soll bei z0 enden  der  zweite bei z1  Um dies umzusetzen  muss die Zeile von z1 und die Spalte von O  bearbeitet werden  Da der   bergang zu den beiden Zust  nden gehen soll  muss  z0  z1 eingetragen werden     Das L  schen und Erweitern von   berg  ngen erfolgt analog     2 3  WAS FANGE ICH MIT EINEM AUTOMATEN AN  17    D  Setbt  dbkrkkd    Datei Bearbeiten Ansicht Ausf  hren Extras Hilfe    Danasa  gt     Machine enfa       Keller Operation   z0         e  z1              Abbildung 2 2  Automat     bergangstabelle bearbeiten    2
27. eder Datei einzeln angepasst und gespeichert werden  Die Eingabe kann in ge   schweiften Klammern erfolgen und muss auf jeden Fall mit Komma getrennt wer   den  Die verwendeten Symbole d  rfen nur ein Zeichen enthalten  oder m  ssen  in Anf  hrungszeichen stehen  Somit w  re zum Beispiel  0   if    then   eine  g  ltige Eingabe  Au  erdem gibt es die M  glichkeit ganze Klassen von geordne   ten Zeichen als Alphabet anzugeben  Beispiele hierf  r w  ren  a z    0 9   aber  auch  a Z     Mit dem Haken bei    Keller Alphabet    kann man angeben  dass man ein eige   nes Keller Alphabet benutzen will  Ist der Haken nicht gesetzt  wird als Keller   Alphabet das Eingabe Alphabet verwendet  Die Eingabe des Keller Alphabets  erfolgt auf gleiche Weise wie die des Eingabe Alphabets     5 3 Grammatik Einstellungen anpassen    Im Tab    Grammatik    k  nnen die Voreinstellungen f  r Nichtterminalzeichen   Terminalzeichen und f  r das verwendete Startsymbol  das aus der Menge der  Nichtterminalzeichen sein muss  eingestellt werden  Die Eingabe muss genauso  wie beim Alphabet erfolgen  Zu beachten ist  dass die Menge der Nichtterminal     5 3  GRAMMATIK EINSTELLUNGEN ANPASSEN 43    zeichen und die Menge der Terminalzeichen disjunkt sein m  ssen  Auch hierbei  handelt es sich nur um die Voreinstellung die im    Neu Dialog    verwendet wird     Kapitel 6    Sonstiges    6 1 Algorithmen    In allen Algorithmen Fenstern gibt es einen Button    Algorithmus anzeigen      Dann erscheint ein Fenster
28. en Ansicht Ausf  hren Extras Hilfe  k   nf  N  ac  Gap Alken Ol  gt    PR m  Grammar cfg Machine pda  Nichtterminalzeichen     E  F     Start    Startsymbol    E    Terminalzeichen    Produktionen       Abbildung 6 2  Zweite Ansicht    Um die Dateien in der anderen Ansicht zu   ffnen  gibt es zwei verschiedene  M  glichkeiten  Zum einen kann die zweite Ansicht durch Anklicken aktiviert   anschlie  end eine neue Datei erstellt oder eine bestehende ge  ffnet werden  Eine  andere M  glichkeit ist das Verschieben von ge  ffneten Dateien  Dies ist m  glich   indem auf einem Tab das Popupmen   ge  ffnet wird    ber    Nach rechts verschie   ben    oder    Nach links verschieben    k  nnen die Dateien in die andere Ansicht  verschoben werden  Eine zweite M  glichkeit ist  das ebenfalls auch f  r das nor   male Umsortieren von Tabs verf  gbare  Verschieben per Drag and Drop  Dazu  kann ein Tab einfach in die andere Ansicht gezogen und dort an der richtigen  Stelle wieder losgelassen werden     Wird die zweite Ansicht wieder geschlossen  werden alle ge  ffneten Datei   en auf die normale Ansicht verschoben  Beim Verlassen des Programmes wird  gespeichert  welche Dateien auf welcher Ansicht ge  ffnet waren     46 KAPITEL 6  SONSTIGES    6 3 Austausch von Dateien    Das GTI Tool bietet die M  glichkeit  ge  ffnete Dateien zu versenden und Da   teien von anderen GTI Tool Benutzern zu empfangen  Zu erreichen ist der Aus   tausch   ber den Hauptmen  eintrag    Extras     Die Dateien werden
29. en Ausdruck eingeben    Nun ist ein Bildschirm wie in Abbildung  4 1  zu sehen    Oben rechts ist das Eingabefeld f  r den regul  ren Ausdruck  Darunter fin   det man nochmal zur Orientierung das Alphabet  dass wir gerade eingegeben  haben  Wie bereits oben erw  hnt kann das Alphabet nur   ber den Button    Do   kument editieren    ver  ndert werden  Im Eingabefeld tragen wir nun unseren  Beispielausdruck  alb  abb ein    Direkt bei der Eingabe wird im Graph Fenster in der Mitte der regul  re  Ausdruck als Baum dargestellt     32    4 3  DAS INFORMATIONSFENSTER 33    SO TE  SES    Datei Bearbeiten Ansicht Ausf  hren Extras Hilfe  EI al   o app   d IS   example regei    Regul  rer Ausdruck Graph Information   lb  abb    Ba   Nullable  f b alse  5  N Firstpos  b       Gs N    l    a    3                   Lastpos         1   Alphabet   N    a   a  b  4          b  2       Followpos       1  2  3                          Fehler A Warnungen    Meldung Beschreibung                   Abbildung 4 1  Regul  rer Ausdruck   Eingabefenster    Beachte  Um ein e einzugeben kann man sowohl das Zeichen an sich einge   ben  aber  da die meisten Anwender nicht   ber ein griechisches Tastaturlayout  verf  gen  auch indem man die Zeichenfolge epsilon eingibt     4 3 Das Informationsfenster    Im Men   findet sich unter    Ansicht    der Eintrag    Regul  rer Ausdruck Info      Wenn dieser Punkt aktiviert wird  erscheint auf der rechten Seite  neben dem  Graph Fenster  ein Informationsfenster   
30. erende und nicht akzeptierende Zust  nde   In der Automatenansicht werden immer die Zust  nde in der selben Farbe dar   gestellt  welche sich in einer   quivalenzklasse befinden  Jetzt haben alle nicht  akzeptierenden Zust  nde die gleiche Farbe  Gleiches gilt f  r alle akzeptierenden  Zust  nde  welche nat  rlich in einer anderen Farbe dargestellt werden     m Automatminimieren    Outline  Die folgenden Zust  nde sind ni      Die folgenden Zust  nde sind a     Die folgenden Zust  nde sind in     Die folgenden Zust  nde sind in     Die   quivalenzklassen k  nnen                    Drucken OK   Abbrechen          Abbildung 2 5  Automat   Minimieren    2 3  WAS FANGE ICH MIT EINEM AUTOMATEN AN  21    Man kann jetzt durch Klicken auf    Schritt vor    die   quivalenzklassen wei   ter verfeinern  In der Outline wird angegeben  welche Zust  nde in eine eigene    quivalenzklasse gekommen sind  und diese werden jetzt auch in einer ande   ren Farbe dargestellt  Gleichzeitig werden auch die   berg  nge hervorgehoben   welche bei diesem Verfeinerungsschritt eine Rolle gespielt haben  Dabei bezie   hen sich die hervorgehobenen   berg  nge immer auf den aktuell ausgew  hlten  Tabelleneintrag     Auf diese Weise kann man den Automaten jetzt Schritt f  r Schritt weiter  verfeinern  bis keine Verfeinerung der   quivalenzklassen mehr m  glich ist  Wenn  das der Fall ist  wird auch eine zweite Automatenansicht eingeblendet  dem  entstandenen minimierten Automaten  Durch best  tigen mit    OK 
31. ernt  Da am Ende der Keller leer ist und der Zustand f  aktiv ist  wird das Wort akzeptiert     3 2  KELLERAUTOMAT AUS GRAMMATIK ERSTELLEN 31    v CCEkfeieikkrkrtt    Datei Bearbeiten Ansicht Ausf  hren Extras Hilfe    KEEN ECKE A DN EST KA  gt    ko          Navigation pda    Start gp    Pa  bergang ausw  hlen E    Welcher   bergang soll benutzt werden    Net Ei       E  Et ei  R O  e  Et aEb                       Wort Alphabet  Keller Keller Alphabet          Das Wort a wird nicht akzeptiert             Abbildung 3 2  Automat   Nicht deterministische Kellerautomat Navigation    Kapitel 4    Wie erstelle ich einen  regul  ren Ausdruck     Wir wollen uns dies anhand des folgenden Beispiels anschauen   alb  abb    4 1 Neue  regex Datei anlegen    Zu Beginn m  ssen wir dazu  wie auch beim Automat und bei Grammatiken  den     Neu       Dialog   ffnen  Zu finden ist dieser in der Toolbar oder im Men  eintrag     Datei     Dort w  hlen wir    Regul  rer Ausdruck    an und klicken auf    Weiter        Danach m  ssen wir im n  chsten Dialog nur noch ein Alphabet festlegen  auf  welchem der regul  re Ausdruck definiert ist  Hier ist es auch m  glich eine Klasse  von Zeichen anzugeben  zum Beispiel  a z      In unserem Beispiel w  rde also ein Alphabet bestehend aus a und b gen  gen   Man kann dieses Alphabet auch im Nachhinein noch   ber den Button    Doku   ment editieren    ver  ndern  Nachdem wir ein Alphabet festgelegt haben best  tigen  wir dies mit    Fertig        4 2 Regul  r
32. g  nge angelegt  kann der Au   tomat validiert werden und sollte keine Fehler mehr aufweisen  Bei der Wort   Navigation ist jetzt nicht nur das Eingabewort interessant  sondern auch der  dargestellte Keller  Wird zum Beispiel das Wort aaabbb gew  hlt  wird im ers   ten Schritt das Symbol a gelesen und auf den Keller geschrieben  Anschlie  end  werden die restlichen zwei Symbole a auf den Keller gepackt und anschlie  end  durch die   berg  nge von z1 nach z2 bzw  von z2 nach z2 wieder entfernt  Am  Ende wurde das komplette Wort aaabbb gelesen  der Automat befindet sich im  Zustand z2 und der Keller ist leer  das Wort wird somit akzeptiert     3 2 Kellerautomat aus Grammatik erstellen    Im folgenden soll ein Sonderfall der Navigation mit dem Kellerautomat betrach   tet werden  Dazu muss die Grammatik erstellt werden  die W  rter der Form  a   b    f  r n  gt  0 erkennt  Wie in Kapitel  1  angegeben  m  ssen die beiden Pro   duktionen E     e und E     aEb angelegt werden  Anschlie  end wandeln wir die  Grammatik in einen Kellerautomaten um  dies erfolgt mit    Umwandeln in        im Men  punkt    Ausf  hren     Bei dieser Art der Umwandlung entsteht immer ein  Kellerautomat mit zwei Zust  nden s und f  Der Unterschied zu normalen Auto   maten ist  dass jetzt vom Zustand f mehrere   berg  nge in sich selbst existieren   so dass eine Beschriftung des   berganges keinen Sinn h  tte  Welche   berg  nge  genau vorhanden sind  kann in der    Keller Operationen    Tabelle nachgesehen
33. hen sowohl die beim Automaten   wie auch die bei der Grammatik verwendeten Farben  aber auch einige andere   Der Tooltip  der auf jeder Farbe angezeigt wird  gibt genauere Informationen  dar  ber  wo die Farbe verwendet wird     5 2 Automaten Einstellungen anpassen    F  r einen Automaten gibt es verschiedene Einstellungsm  glichkeiten  so kann  eingestellt werden  wie   berg  nge angelegt werden k  nnen und wie sich die  Auswahl der aktiven Buttons zum Anlegen von   berg  ngen und Zust  nden  verh  lt  Das Anzeigen der Komponenten  die nur bei Kellerautomaten einen  richtigen Sinn ergeben  kann angepasst werden und es kann eine Vorauswahl  des verwendeten Alphabetes getroffen werden     Die Einstellung      bergang    bietet zwei M  glichkeiten  Wird    Maus Drag  Modus    ausgew  hlt  kann ein   bergang zwischen zwei Zust  nden per    Drag  and Drop    angelegt werden  Dazu muss der Drag auf dem Anfangszustand be   ginnen  der Drop auf dem Endzustand oder auf einer freien Stelle  wobei dann  ein neuer Zustand angelegt wird  erfolgen  Die zweite M  glichkeit ist die Einstel   lung    Maus Klick Modus     Ist diese ausgew  hlt  muss auf dem Anfangszustand    42 KAPITEL 5  EINSTELLUNGEN    ein Mausklick erfolgen  anschlie  end kann auf dem Endzustand oder auf einer  freien Stelle wieder mit der Maus geklickt werden  um den   bergang anzulegen     Der Punkt    Maus Auswahl    bietet die M  glichkeit  auszuw  hlen  welcher  Button nach dem Anlegen eines Zustandes oder eines   be
34. inieren    Hierzu nutzen wir eine Beispielgrammatik aus der Compilerbau 1 Vorlesung   G        N  S  P  mit          a b c d   N  4 A S   KE    P    S     Aa  S  gt  b  A  gt  Ac  A  gt  Sd  A  gt  e     10 KAPITEL 1  WIE ERSTELLE ICH EINE NEUE GRAMMATIK     Im Men   findet man unter    Ausf  hren    den Punkt    Links Rekursion elimi   nieren     Es erscheint das folgende Fenster     EN    Se                                                   d Ad tt   amp  RH  Outline  Original   Nichtterminalzeichen Eins  a  s  ante  Startsymbol Bl Einheitsproduktionen entfernen  d Nichtterminalzeichen  Terminalzeichen 3   A  HeEn   Produktionen   A gt  ac   a gt  Sd Startsymbol  Ae A  S Aa  S b Terminalzeichen   Heem                Produktionen  EE  GEET     EEN  S gt b             Drucken EN    Abbrechen                     Abbildung 1 6  Grammatik   Links Rekursion eliminieren    Dieses Fenster   hnelt den Fenstern zum Entfernen der Einheits  bzw  e  Produktionen    Oben im Fenster der konvertierten Grammatik kann man einstellen ob zun  chst  die Epsilon  bzw  Einheitsproduktionen entfernt werden sollen  Diese M  glichkeit  wurde gegeben  da der Algorithmus eigentlich eine Grammatik ohne Epsilon   bzw  Einheitsproduktionen verlangt  Aber im Beispiel aus der Vorlesung Com   pilerbau I wurde die eProduktion in der Grammatik belassen mit dem Hinweis   dass dies nichts ausmacht  Da aber das Ergebnis dann nicht exakt das selbe  w  re  ist hier die M  glichkeit gegeben die Produktionen zu bela
35. keine   berg  nge hervorgehoben       Wie in Schritt vier werden die mit Symbol b erreichbaren Zust  nde in der    oberen Ansicht hervorgehoben  In unserem Beispiel existiert kein   bergang  von Z0 mit Symbol b  deshalb werden in der oberen Ansicht keine Zust  nde  hervorgehoben     Da wir in diesem Beispiel in einen DEA umwandeln  wird auch f  r die   sen Fall ein Zustand angelegt und zwar der nicht akzeptierende Zustand      Wird dieser Zustand w  hrend der Wort Navigation erreicht  kann das  Wort nicht mehr akzeptiert werden  Aus diesem Grund wird direkt der    bergang von diesem Zustand in sich selbst mit allen Symbolen des Al   phabets angelegt  Es wird ein   bergang mit Symbol b zu diesem Zustand  H angelegt     Wie in Schritt sechs wird angezeigt  dass das Symbol b fertig verarbeitet  wurde  Da dieses Symbol das letzte im Alphabet ist  ist der Zustand  z0   fertiggestellt     In diesem Schritt wird der n  chste  bis jetzt noch nicht verarbeitete  Zu   stand  zO  z1  in der unteren Ansicht hervorgehoben  Gleichzeitig werden  in der oberen Ansicht die entsprechenden Zust  nde zO und z1 hervorge   hoben     Es folgt wieder das Hervorheben der   berg  nge mit dem Symbol a  wie  dies in Schritt drei der Fall war     24 KAPITEL 2  WIE ERSTELLE ICH EINEN AUTOMATEN     14  Wie in Schritt vier werden die Zust  nde z0 und z1 hervorgehoben     15  In Schritt f  nf wurde der   bergang zum Zustand  z0  z1  mit Symbol a  angelegt  gleiches geschieht jetzt in diesem Schritt  Da wir a
36. llerdings im  Moment den gleichen Zustand bearbeiten  wird der   bergang von diesem  Zustand in sich selbst angelegt     16  Das Symbol a ist fertiggestellt     17  Da der Zustand  z0  z1  noch nicht fertiggestellt ist  wird er in beiden  Ansichten wie gehabt hervorgehoben     18  Alle   berg  nge  die von den Zust  nden z0 und z1 mit Symbol b ausgehen   werden hervorgehoben  In unserem Beispiel kommt das nicht vor     19  Die mit dem Symbol b erreichbaren Zust  nde werden hervorgehoben  in  unserem Beispiel ist das wieder kein Zustand     20  Deshalb wird in diesem Schritt wieder ein   bergang mit Symbol b zu dem  Zustand    angelegt     21  Der Zustand  z0  z1  ist mit dem letzten Symbol b fertiggestellt  Da  keine weiteren Zust  nde hinzugekommen sind  ist die Umwandlung fertig   gestellt     Bei Betrachten des entstehenden DFA   s erkennt man  dass dieser die gleichen  W  rter erkennt wie der urspr  ngliche NFA  Der Dialog kann mit    OK    best  tigt  werden  womit ein neuer DFA angelegt wird  Es ist jetzt m  glich  die Namen  der Zust  nde neu zu vergeben  wenn man mit dem Automaten weiterarbeiten  m  chte und nicht die l  ngeren Namen dargestellt haben m  chte  Dazu kann  man im Men      Extras    den Eintrag    Zustandsnamen neu vergeben    anklicken   wodurch die Zustandsnamen neu  nach dem Muster z0  z1     vergeben werden     Zu den anderen zwei Umwandlungarten gibt es noch kleinere   nderungen   die bei dem durchgespielten Beispiel nicht betrachtet werden konnten 
37. n Ort  und den Dateinamen der zu erstellenden KYIEX Datei angibt    Dann wird die Datei erstellt  Dies w  rde in unserem Beispiel zu folgendem  Code f  hren      documentclass  a4paper    1l1pt   article    usepackage german    usepackage   utf8  inputenc    usepackage tree dvips    begin  document    Erstellen des Tabulars fuer den Baum   begin  tabular HH ccececccccec   Erstellen der Knoten fuer den Baum   amp   amp  EE  amp   amp   amp   node fr0    cdot     4ex      amp   amp   amp   amp   amp   node r1    cdot       amp   amp   amp   node r3    cdot    amp   amp   amp   node r4  b    4ex    amp   node r5       amp   amp   amp   node r6  a    4ex    amp   node r7         4ex    node r8  a   amp   amp   node r9  b     end tabular      Verbinden der Knoten    nodeconnect r0  r1     nodeconnect r1  r3     nodeconnect r3H r5     nodeconnect r5  r7     nodeconnect r7 H r8     nodeconnect r7 H r9      amp  E  node r2  b    4ex     4 4  WAS MACHT MAN MIT REGUL  REN AUSDR  CKEN  39     nodeconnect r3  r6    nodeconnect r1  r4    nodeconnect r0  r2     kend  document     Dies ist ein komplettes EYIEX Dokument  dass hei  t diese Datei kann so f  r  sich genutzt werden  Man kann aber auch nur den Inhalt von    document    in  eine andere KITEX Datei einf  gen     Achtung 1  Es wird das Package    tree dvips    f  r KTEX genutzt  Das Package  muss daher auf dem Rechner vorhanden sein  um die Datei nutzen zu k  nnen     Achtung 2  Wenn man den Inhalt in anderen KIEX Dokumenten nutzen 
38. n uns ben  tigten Nichtterminalzeichen ein  Dabei  handelt es sich bei uns lediglich um das Symbol E  Also schreiben wir in das  Feld     E         Nun legen wir das Startzeichen fest  Das ist bei uns das E  welches wir in  das Feld f  r das Startzeichen schreiben   Zum Schluss m  ssen wir noch die Terminalzeichen festlegen  Dazu tragen wir  in das entsprechende Feld     0  1  x  y                    ein   Damit haben wir alle ben  tigten Information eingegeben und k  nnen die neue  Grammatik durch Klick auf    Fertig    erstellen     Neu    B    Einen neuen Automaten oder eine neue Grammatik anlegen    Nichtterminalzeichen    e          Startsymbol       E       Terminalzeichen       e 1 8966               Zur  ck    fenig     Abbrechen                Abbildung 1 1  Grammatik   Neu Dialog    Alle Einstellungen  die wir gerade im letzen Dialog f  r die neue Datei ge   troffen haben  lassen sich   ber    Dokument editieren    nachtr  glich   ndern     1 2 Anlegen von Produktionen    Um eine neue Produktion anzulegen  k  nnen wir den entsprechenden Button in  der Toolbar verwenden oder   ber den Kontextmen  eintrag gehen     Im Dialog f  r neue Produktionen m  ssen wir zun  chst einmal angeben   f  r welches Nichtterminalzeichen wir eine Produktion anlegen m  chten  Die   ses k  nnen wir aus einer Liste der verf  gbaren Zeichen ausw  hlen  Da wir in  unserem Beispiel nur ein Nichtterminalzeichen haben  ist schon das richtige aus   gew  hlt  und wir k  nnen diesen Schritt   bers
39. nn mit diesem weiterarbeiten     2 3 5 Umwandeln in       Es besteht auch die M  glichkeit  zwischen verschiedenen Automatentypen um   zuwandeln  Dabei stehen drei Umwandlungen zur Verf  gung  die sich in den  verwendeten Schritten unterscheiden     e NDEA     DEA  e  NDEA     DEA  e  NDEA     NDEA    22 KAPITEL 2  WIE ERSTELLE ICH EINEN AUTOMATEN     Betrachten wir als erstes einen einfachen NDEA mit zwei Zust  nden zO  und z1 und zwei   berg  ngen  der auf dem Alphabet  a  b  arbeitet  Der Zu   stand zO ist ein Start Zustand  der Zustand z1 ein akzeptierender Zustand   Der erste   bergang besteht zwischen z0 und z1 mit Symbol a  der zweite  geht von 20 in sich selbst   ber  ebenfalls mit a  Der Automat erkennt somit  W  rter von der Form a    f  r n  gt  1    ber den Eintrag    Umwandeln in       im  Men  eintrag    Ausf  hren    kann ausgew  hlt werden  in welchen Automaten um   gewandelt wird  Da wir einen NDEA angelegt haben  ist hier nur der DEA  verf  gbar  Wird dieser ausgew  hlt  steht die schon aus anderen Ansichten be   kannte Oberfl  che zur Verf  gung  Auch hier kann in einzelnen Schritten  sowie  automatisch navigiert werden  Wird der Dialog mit    OK    best  tigt  steht in  der Hauptansicht der umgewandelte Automat zur Verf  gung  Mit    Abbrechen     wird der Dialog einfach nur geschlossen     m Automat umwandeln  NDEA DEA    Outline      Aktiviere Start Zustand z0   F  ge Start Zustand  z0  ein   Berechne move   z0   a       Aktiviere neue Zust  nde move   z
40. nserem Beispiel handelt es sich um einen    e NDEA     welchen  wir ausw  hlen und mit    Weiter    best  tigen     Dann m  ssen wir das gew  nschte Alphabet f  r den neuen Automaten an   geben  Im Alphabet k  nnen alle Symbole werwendet werden  die nicht zur  Syntax der Eingabe geh  ren  Das bedeutet        und   k  nnen hier nicht  verwendet werden  Symbole  welche l  nger als ein Zeichen sind  m  ssen in  Anf  hrungszeichen angegeben werden     In dem Dialog sind an allen Stellen schon vordefinierte Werte eingetragen   Dabei handelt es sich um die Vorgaben  die man als Standardwerte in den  Einstellung eingetragen hat  Wie man diese Standardwerte   ndert  kann man  in Kapitel  5  nachlesen     Wir m  ssen noch die von uns ben  tigten Symbole angeben  Dazu tragen  wir in das Feld Alphabet     0  1  2  3  4  5  6  7  8  9        ein  Damit haben  wir alle ben  tigten Information eingegeben und k  nnen den neuen Automaten  durch Klick auf    Fertig    erstellen     Neu    B    Einen neuen Automaten oder eine neue Grammatik anlegen  Eingabe Alphabet        0  1  2  3  4  5  6  7  8  9                       Keller Alphabet      Zur  ck     Eertig     _ Abbrechen                               Abbildung 2 1  Automat   Toolbar    Das f  r den Automaten angegebene Alphabet  l  sst sich jeder Zeit   ber den  Button    Dokument editieren    n  chtr  glich   ndern     2 2  ZUST  NDE UND   BERG  NGE ANLEGEN 15    2 2 Zust  nde und   berg  nge anlegen    Um einen Automaten zu bearbeiten
41. pringen     Jetzt m  ssen wir noch das Produktions Wort angeben  Als Hilfestellung wird  in dem Dialog angezeigt  welche Nichtterminalzeichen und Terminalzeichen uns  zur Verf  gung stehen  Wir fangen an mit der Produktion    E      E E      Al     6 KAPITEL 1  WIE ERSTELLE ICH EINE NEUE GRAMMATIK     so geben wir als Produktions Wort     E   E     ein  Als weitere Hilfestellung  wird im unteren Dialog die resultierende Produktion im Ganzen angezeigt  Wir  best  tigen den Dialog noch mit    OK    und die neue Produktion erscheint in  unserer Liste     m Produktion    Nichtterminalzeichen    Nichtterminalzeichen Terminalzeichen     E  It  A  Se       0  1   X  Y     Produktions Wort    Resultierende Produktion           _ Abbrechen       Abbildung 1 2  Grammatik   Produktions Dialog    Wir k  nnen die Produktion selbstverst  ndlich auch editieren und wieder  l  schen  Beide Funktionen sind   ber das Kontextmen   f  r die ausgew  hlte Pro   duktion verf  gbar     Diesen Vorgang wiederholen wir jetzt f  r unsere komplette Menge    P     Wenn  wir alle Produktionen angelegt haben  sind wir auch mit dem Anlegen der Gram   matik fertig  Es besteht jetzt noch die M  glichkeit  die Grammatik zu validie   ren  um zu sehen  ob man beim Erstellen irgendwelche Fehler gemacht hat   Diese Funktion erreicht man   ber das Kontextmen   oder   ber den Men  punkt     Ausf  hren        1 3  WAS FANGE ICH MIT EINER GRAMMATIK AN  7    u GT 10011000    Datei Bearbeiten Ansicht Ausf  hren    g a E  
42. rammatik     Wir wollen das jetzt einmal an Hand folgenden Beispiels aus den Vorlesungsun   terlagen durchgehen     G    2 N    P  mit         0 1 x y              N  4 E    S E   P    E  gt  0  E  gt  1  E  gt  x  E  gt  y  E  gt    E    E      E E   E     gt   E E   E      E E         1 1 Neue Grammatik Datei anlegen    Am Anfang m  ssen wir dazu erst einmal den    Neu       Dialog   ffnen  Zu finden  ist dieser in der Toolbar oder im Men  eintrag    Datei     Dort w  hlen wir aus   dass wir eine Grammatik erstellen wollen und klicken auf    Weiter        Im n  chsten Dialog werden wir gefragt  von welchem Typ unsere neue Gram   matik sein soll  In unserem Beispiel handelt es sich um eine    Kontextfreie Gram   matik     welche wir ausw  hlen und mit    Weiter    best  tigen     Als n  chstes m  ssen wir die ben  tigten Nichtterminalzeichen  N   Terminal   zeichen      und das Startzeichen  S  angeben  Als Zeichen k  nnen alle Symbole  werwendet werden  die nicht zur Syntax der Eingabe geh  ren  Das bedeutet          und   k  nnen hier nicht verwendet werden  Symbole  welche l  nger als ein  Zeichen sind  m  ssen in Anf  hrungszeichen angegeben werden     In dem Dialog sind an allen Stellen schon vordefinierte Werte eingetragen   Dabei handelt es sich um die Vorgaben  die man als Standardwerte in den  Einstellungen eingetragen hat     1 2  ANLEGEN VON PRODUKTIONEN 5    Wie man diese Standardwerte   ndert  kann man in Kapitel  5 nachlesen  Wir  tragen jetzt als erstes die vo
43. rem Beispiel zun  chst die Produktion A     Aa  und danach die Produktion A     b    Zum Schluss werden die Einheitsproduktionen entfernt  Also in unserem Fall  A S     1 3 2 eProduktionen entfernen    Hierzu nutzen wir die folgende Beispielgrammatik     1 3  WAS FANGE ICH MIT EINER GRAMMATIK AN  9    G        N  S  P  mit    X      a b c d   N  A S   EE    P    S     Aa  S  gt  b  A  gt  Ac  A  gt  Sd  A  gt  e   Unter dem Men  punkt    Ausf  hren    findet man den Punkt    e Produktionen  entfernen     Es erscheint das folgende Fenster               Outline  oriai  Produktion f  r A gefunden  Nichtterminalzeichen SE Neue Produktion A   c erzeugt    an a  s                 Star  symbol en          B 5          Terminalzeichen Terminalzeichen    caa  BEER                            Produktionen  A gt  AC  A  Sd  Ase  S gt Aa  EE   AE             Drucken 1   Agorithmus anzeigen       Abbildung 1 5  Grammatik   e Produktionen entfernen    Dieses Fenster ist im Prinzip das gleiche  wie beim Entfernen der Einheits   produktionen    Zun  chst sucht der Algorithmus nun nach einer eProduktion und findet die  eine f  r A    Nun wird f  r jede Produktion  wo A auf der rechten Seite vorkommt  eine  gleiche Produktion  ohne A auf der rechten Seite angelegt  In unserem Beispiel  wird zun  chst die Produktion A     c und dann S     a angelegt    Zum Schluss werden die e Produktionen entfernt  au  er der f  r das Start   symbol  Also in unserem Fall A             1 3 3 Links Rekursion elim
44. ren Ausdruck in  NDEA umwandeln    Im Men   findet sich unter    Ausf  hren    der Punkt    Umwandeln in              e  NDEA     Es   ffnet sich ein Fenster  in welchem in der oberen Ansicht der regul  re  Ausdruck als Graph dargestellt ist  Links ist die Outline zu sehen  in der die  Informationen   ber den aktuellen Schritt zu finden sind und unten ist ein noch  leerer Automat in welchem im Verlauf des Algorithmus der  NDEA erstellt  wird    Oben befindet sich die Navigationsleiste  mit der durch den Algorithmus  navigiert werden kann    Der Algorithmus geht im Prinzip den Graph von oben nach unten durch und  legt dabei jeweils eine Blackbox f  r alle nicht Blattknoten an    Wenn wir nun den Algorithmus f  r unser Beispiel durchgehen  kommen wir  zu folgender Reihenfolge     1  Zun  chst wird der Automat f  r die Konkatenation  alb  ab b  welche im  Graph Fenster markiert wird  erstellt  Dieser besteht aus zwei Blackboxen   eine f  r den regul  ren Ausdruck  alb  ab und eine f  r das Symbol b  Es  werden dabei auch der Start  und der Endzustand des Automaten erstellt   Diese   ndern sich auch w  hrend des Algorithmus nicht mehr     2  Aus der Blackbox f  r  alb  ab werden zwei Blackboxen  Eine f  r  alb  a  und eine f  r b     3  Aus der Blackbox f  r  alb  a werden zwei Blackboxen  Eine f  r  a b    und eine f  r a     4 4  WAS MACHT MAN MIT REGUL  REN AUSDR  CKEN  35       Kam bb Bn          Outline    N  Automat f  r Konkatenation  a b  ab     b  erstellen  Automat f  r
45. rganges aktiviert wird   Ist    Ohne R  cksprung zur Maus    ausgew  hlt  bleibt der zuletzt aktive Button  unver  ndert  In diesem Modus k  nnen also mehrere   berg  nge nacheinander  angelegt werden  ohne  dass jedesmal wieder der Button    Neuer   bergang    ak   tiviert werden muss  Wenn    Mit R  cksprung zur Maus    ausgew  hlt ist  wird  nach jedem Anlegen wieder der Maus Button aktiviert  Dieser Modus ist bes   ser dazu geeignet  wenn nur einzelne Zust  nde oder   berg  nge angelegt werden  m  ssen  da nach dem Anlegen direkt wieder Komponenten im Graphen aus   gew  hlt werden k  nnen     Mit der Option    Kellerautomat Modus    kann eingestellt werden  welche In   formationen der Benutzer angezeigt bekommt  wenn er einen Automaten ohne  Keller bearbeitet  Ist    Alle Komponenten anzeigen    ausgew  hlt  werden auch  auf einem Automaten ohne Keller die Information zu diesem angezeigt  Dies be   trifft die    Keller Operationen Tabelle     das Eingeben der W  rter  die vom Keller  gelesen  bzw  auf ihn geschrieben werden im   bergangs Dialog und noch eini   ge andere Komponenten  Ist    Nur anzeigen  wenn Kellerautomat ausgew  hlt     aktiviert  werden diese Komponenten bei Automaten ohne Keller ausgeblendet   bzw  deaktiviert     Im Tab    Alphabet    befindet sich die M  glichkeit  das Eingabe Alphabet   sowie das Keller Alphabet zu bearbeiten  Bei den hier eingestellten Werten han   delt es sich um die Voreinstellung f  r neue Dateien  Beide Alphabete k  nnen auf  j
46. ssen  F  r ande   re Beispiele sollte man aber diese beiden Optionen angestellt lassen  da sonst  der Algorithmus falsche Ergebnisse liefern kann    In unserem Beispiel schalten wir die Option Epsilonproduktionen entfernen  aus    Als n  chstes kann die Reihenfolge der Nichtterminalzeichen eingestellt wer   den  da auch diese sich auf die Ergebnisse des Algorithmus auswirken  Die Rei   henfolge kann nat  rlich genau wie die beiden Optionen zum Entfernen von Pro   duktionen nur am Anfang ver  ndert werden    In der Vorlesung wurde die Reihenfolge S  A gew  hlt  daher schieben wir  das A einfach nach oben    Nun kann der Algorithmus ablaufen     e Im initialen Schritt passiert nichts mit der Grammatik  da i   j ist und    1 3  WAS FANGE ICH MIT EINER GRAMMATIK AN  11    f  r S keine direkte Linksrekursion existiert     e Nun kommen durch den Durchlauf im Algorithmus zwei Produktionen   A     Abd  A     bd  hinzu und die Produktion A     Sd wird entfernt     e Im letzten Schritt dieses Beispiels ist      j und es wird daher nur noch  die direkte Linksrekursion von A entfernt     1 3 4 Links Faktorisierung    Hierzu nutzen wir folgende Beispielgrammatik aus der Compilerbau 1 Vorlesung    G        N  S  P  mit         a b e i t    N    E S    KEE   P    S     iEtSeS S     iEtS S   a E   b   Nun findet man im Men   unter    Ausf  hren    den Punkt    Links Faktorisierung       Es erscheint das folgende Fenster              EARO EEr    E E       Outline   Original Konvertiert  Nicht
47. terminalzeichen  KS      S     Startsymbol                      g          Terminalzeichen                       a  b  e  i  t           Produktionen  E b  S  iEtses  SU  s gt a             Drucken ok     Abbrechen                   Abbildung 1 7  Grammatik   Links Faktorisierung    Ganz links befindet sich die urspr  ngliche Grammatik  Rechts daneben fin   det man die konvertierte Grammatik    Wenn man den Algorithmus dann ablaufen l  sst  ist der Algorithmus be   reits nach einem Schritt fertig  Der Algorithmus findet als l  ngstes gemeinsames  Pr  fix iEtS und erzeugt ein neues Nichtterminalzeichen S     Als Produktionen  kommen hinzu  S     iEtSS    S        e S        eS  entfernt wurde die Produktion  S     iEtSeS     12 KAPITEL 1  WIE ERSTELLE ICH EINE NEUE GRAMMATIK     1 3 5 Recursive Descent Parser erstellen    Hierzu nutzen wir eine Beispielgrammatik aus der Compilerbau 1 Vorlesung   G        N  S  P  mit          a  b e i t   N 1 E S   EE    P    S   iEtSeS S     iEtS S     a E   b  Nun findet man im Men   unter    Ausf  hren    den Punkt    Recursive Descent  Parser erstellen     Es erscheint das folgende Fenster     Gett   Hate DESCENLPATSET  ja  x      void E0            case    match  b              void 50     case    matchi     E0   match  t     S0   match  e     50         case    matchi       E0   match   50        case    match  a                        Als Text speichern     Drucken         Abbildung 1 8  Grammatik   Recursive Descent Parser    Es wurde 
48. tte navigiert werden  Es geht hierbei darum  in m  glichst  kleinen Schritten zu erkennen  welche Zust  nde erreichbar sind und welche nicht   Der verwendete Algorithmus geht dabei in folgenden drei Schritten vor     e Ein Zustand  der noch nicht berechnet wurde  wird ausgew  hlt  am An   fang wird mit dem Start Zustand begonnen     e Die von dem ausgew  hlten Zustand aus zu erreichenden Zust  nde werden  hervorgehoben  und falls sie noch nicht berechnet wurden  zu der Menge  der noch zu berechnenden Zust  nde hinzugef  gt    e Die bis jetzt erreichbaren Zust  nde werden hervorgehoben  Die Menge der  noch nicht berechneten Zust  nde angezeigt    Der Algorithmus l  uft so lange  bis die Menge der noch nicht berechneten  Zust  nde leer ist  Am Ende werden alle erreichbaren Zust  nde farblich hervor   gehoben  Wie in den anderen Dialogen besteht jederzeit die M  glichkeit  den  Dialog abzubrechen  wobei er dann einfach geschlossen wird  Man hat auch je   derzeit die M  glichkeit  mit einem Klick auf    OK    die komplette Berechnung  durchzuf  hren und einen Automaten anzulegen  der nur noch die erreichbaren  Zust  nde enth  lt     2 3  WAS FANGE ICH MIT EINEM AUTOMATEN AN     m Erreichbare zustande    Outline     Aktiviere Start Zustand z0    iviere n  chsten Zustand z1  tiviere die erreichbaren Zust  nde  z3  z5   Zustand z1 fertiggestellt  noch zu berechn      tiviere n  chsten Zustand z3  iviere die erreichbaren Zust  nde  z5  z7                              Drucken       ok
49. will   muss unbedingt die Zeile     usepackageftree dvips   zur Pr  ambel des Dokuments hinzugef  gt werden   Achtung 3  Wenn die erstellte EIIEX Datei mit pdflatex ausgef  hrt wird     werden die Kanten nicht mit gezeichnet  Daher sollte man zun  chst    latex da   tei tex    ausf  hren und danach    dvipdf datei dvi    oder   hnliches nutzen     Kapitel 5    Einstellungen    Die Oberfl  che des GTI Tools kann den eigenen Bed  rfnissen angepasst werden   Dazu kann man die Einstellungen im Men  punkt    Bearbeiten      ffnen  Alle Ein   stellungen werden erst bei Klick auf      bernehmen    oder    OK      bernommen   Per Klick auf    Standard    kann man die Einstellungen auf die Standardwerte  zur  cksetzen     5 1 Oberfl  che anpassen    Auf dem Tab    Allgemein    kann die Sprache eingestellt werden  zur Auswahl  stehen im Moment Deutsch und Englisch  Ist    Default    ausgew  hlt  wird die  Systemsprache verwendet  sollte diese Deutsch oder Englisch sein  Ist dies nicht  der Fall  wird Englisch verwendet     GTI Tool verwendet standardm    ig    TinyLaF    als    Look  amp  Feel     es kann  aber auch jedes andere auf dem System zur Verf  gung stehende Look  amp  Feel  benutzt werden     Die Option    Wort Modus    bezieht sich auf die Darstellung des Wortes  w  hrend der Wort Navigation  Ist    Linksb  ndig    ausgew  hlt  wird das Wort  normal linksb  ndig dargestellt  W  hrend der Navigation werden schon gelese   ne Symbole hervorgehoben  Ist dagegen    Rechtsb  ndig 
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
  Copyright © All rights reserved. 
   Failed to retrieve file