Entwickler-Ecke

Open Source Projekte - Worte einer Grammatik erzeugen


Fiete - Mi 18.03.20 15:21
Titel: Worte einer Grammatik erzeugen
Moin,
mit dem Programm kann man cf(contextfreie) bzw. ca(contextabhängige) Grammtiken definieren und Worte erzeugen die zu L(G) gehören.
Beispiel1 (cf):

Quelltext
1:
2:
3:
4:
5:
S ---> BAb
B ---> Bb
B ---> b
A ---> ASA
A ---> a
Die ersten 18 Worte sind
bab bbab bbbab bbbbab bbbbbab bababab bbbbbbab bbababab babbabab babbbabab bbbbbbbab bbbababab
bbabbabab bbbbbbbbab bbbabbabab bbbbababab babbbbabab bbabbbabab

==> L(G)={(b^n(ab)^m)^r mit m, n, r>0 }

Beispiel2 (ca):

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
S ---> LaK
aK ---> WbbK
aW ---> Wbb
LWb ---> LaB
LWb ---> aB
Bb ---> aB
BK ---> K
BK --->  <leere Regel, wird zum Löschen benutzt>
Die ersten 5 Worte sind
aa aaaa aaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
==> L(G)={a^(2^n), n>0}
ChomskyScreen
Über <Start> kann man nach allen Worten der vorgegebenen Länge suchen lassen oder gibt die zu benutzende Regel durch anklicken vor.
Der Suchmodus kann mit <ESC> abgebrochen werden.
Wenn man genügend viele Worte erzeugt hat, dann ist es eventuell möglich L(G) zu definieren.
Die Logik in den Worten muss man selbst erkennen, siehe Beispiel 1!

In der Ausgabe stehen die Anzahl der benutzten Regeln, das Wort und die benutzten Regelnummern.

Aufgaben derTU Chemnitz:
https://www-user.tu-chemnitz.de/~knmat/Studium/aup/Algorithmen%20&%20Programmierung%20-%20Grammatiken.pdf
Viel Spaß beim Testen!
Gruß Fiete