Download Endbericht
Transcript
2.4. EXISTIERENDE LÖSUNGEN 59 müssen nicht veröffentlicht werden. Das heißt, die Software steht nicht unter der Einschränkung des Copylefts. Die BSD-Lizenz schränkt einen User nur bezüglich der Copyright-Vermerke ein. Diese dürfen unter keinen Umständen entfernt werden. 2.4.2.2 dk.brics.automaton dk.brics.automaton [?] ist von Anders Møller am BRICS research center der Universität von Aarhus entwickelt worden. Es handelt sich hierbei um eine Bibliothek, die DFA/NFA-Automaten und reguläre Ausdrücke implementiert. Diese Bibliothek wird ständig weiterentwickelt. Die letzte verfügbare Version wurde am 8. August 2005 veröffentlicht und ist bereits an Java 1.5 angepaßt. Ältere Versionen für Java 1.4 sind ebenfalls erhältlich. Der Sourcecode ist nutzbar unter den Bedingungen der Open Source BSD Lizenz. Funktionsumfang: Mit Hilfe von dk.brics.automaton lassen sich Automaten auf zwei Arten modellieren. Zum einen kann man einen Automaten durch explizite Angabe der Zustände und Zustandsübergangsfunktion modellieren. Auf diese Art lassen sich auch NFAs implementieren. Die zweite Möglichkeit besteht darin, einen Automaten durch die Angabe eines regulären Ausdrucks erzeugen zu lassen. Automat: Auf Automaten sind eine Vielzahl weiterer Operationen erlaubt: Es stehen drei Algorithmen zur Minimierung von Automaten zur Verfügung: Brzozowski’s O(2n ); Hopcroft’s O(n log n); Huffman’s O(n2 ), Komplement, Produktsprache, Quotientensprache, Entfernen von überflüssigen Zuständen, Vereinigung von Automaten, Kleene’scher Abschluss von Automaten, Konvertieren eines NFA-Automaten in einen DFA-Automaten. Fazit: dk.brics.automaton ist eine sehr kleine und übersichtliche Automatenbibliothek. Sie besteht aus sechs Klassen, was sie sehr übersichtlich und verständlich macht. Sie erfüllt so gut wie alle Ansprüche an eine Automatenbibliothek und arbeitet darüber hinaus sehr effizient. Sehr positiv fällt außerdem auf, dass ein Automat aus Zuständen und Zustandsübergangsfunktion identisch zum Automaten seines regulären Ausdrucks ist. Dies klingt selbstverständlich, ist aber bei allen anderen Bibliotheken leider nicht der Fall.