[Playlisten] [Impressum und Datenschutzerklärung]

13A.1 Formale Sprachen, reguläre Ausdrücke, endliche Automaten, Pumping-Lemma


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

sodie letzten Wochen des Semester soll ein Rundgang durch die Informatik sein?? ansatzweise erzählt was Datenstrukturensinddickes Thema in der Informatik wenn man es komplett machtersowas wie Warteschlangenund Stack wir hattendases bei Symmetrix auch nochLWS können sich genauso zu Ostern gehören auch zudann ansatzweisemal was zu AlgorithmeninsbesondereSortierverfahrenRhythmendass esauch ein Thema mit dem man sich ein oder mehrere Messe auseinandersetzenkann man es etwas tiefsinnige machen wirunsheute möchte ich einmal quer noch mal durch die formalen Sprachensprachenund parallel dazuetwas das anscheinend nicht damit zu tun hat aber lustigerweise doch sehr viel damit zu tun hatdie endlichen Automatenautomatendas ist ein ziemliches dickes Thema in der theoretischen Informatik und Informatik an einer Uni studieren wenn sie dagnadenlos mit gequältensie abstrakte Geschichte aber andererseits glaube der Teil den ich heute erzählen willdann auch eine sehr praktische Geschichtehabendie man dann doch für sehr viele Sachen verwenden kanneine formale Sprache in der Informatiksoll einfach eine Sammlung von ZeichenkettenseinSprachesoll sein eine Sammlung von Zeichenkettenalle Zeichenketten die erlaubt sind die gültig sind in dieser Sprachedie korrekt sind in dieser Sprache und sonst keine Zeichenkettenwollten mit ihm gleich zwei Spiel Telefonnummernangucken die formale Sprache die aus allenin welcher Weise auch immer korrekt gebildeten Telefonnummernbesteht zum Beispiel null eins zwei drei vier fünf sechs soll so eine korrekt gebildete Telefonnummerseineine ebenso soll null fünf zwo einseins zwei drei vier fünf sechs eine korrekt gewählte Telefonnummer seindas wäredie Sprache der korrekt gebildeten Telefonnummern was nicht dabei istheute so schreibenan Telefonnummer die nicht Element ist Element durchgestrichen hat sich dasRundschreiben damit klar zu lesen ist ?? mit durchgestrichen an die nicht dabei wäre es wäre zum Beispiel hundert zehndie fängt nicht mit null an und hat kein Schrägstrichsollte alsonicht von allgemeinen Telefonnummernreden sondern ich solltevon Telefonnummernreden die man alsnormaler Menschkriegen dann das meine ich damitsollen alle mit Null anfangen sollen Schrägstrich habendie Zahl nach dem Schrägstrich soll keine Null haben am Anfangund so weiter das müsste man jetzt mal normalisierendas es was ich mir unter dieser Sprache vorstelle die Sprache dergebildetenTelefonnummerfürnormale Leuteandere formale Sprachen werdendannsie nehmen alle korrekt gebildeten WebseitenHTML Codedie erste direkt gewählte Webseite die zweite und so weiter es gibt unendlich viele korrekt gebildete Webseitengroße Sprachedie Sprache die aus allen gebildeten C Programm steht hier schon als Zeichenketteein komplettes Seeprogrammdas nächste komplette C Programm und so weiter und so weiterbis ?? sicheralle korrekt gebildeten Seeprogramme aufgelistetPunkt das wäreeine formale Sprachein der Informatik und man sich einfach nuran wie diese Zeichenkettengebildet werdenwie kann ich das in Regeln fassen solche Zeichenketten zu bilden gibt's verschiedene Sorten an Regeln an an Komplexitätbei diesen Regelnwas folgt aus den Regeln was kann ich direkt ableitenohne tief in die Sprache reingeguckt zu haben ?? sowas guckt man sich anes geht also um die Grammatikso schön heißt es geht um die Grammatik von einer solchen Sprachewas ist korrekt gebildet und das ist nicht korrekt gebildetganz im Deutschunterrichtes geht nicht um die Semantikkann sich die Semantik angucken an einigen Stellen aber hauptsächlich geht nicht um die Semantiksemantikwäre Bedeutungdass ich hier den Rückruf habedas wäre Bedeutung oder dass das hier die TelefonnummervonHeinz Mülleis oder Wasser Komma das wären Bedeutung der hinter die guckt man sich bei den formalen Sprachen eher selten anes ging größtenteils um die Grammatik das korrekte Bildenvon Zeichenkettenwobeiman natürlich dann auch nichtauf die üblichen Zeichen beschränkte Sommertag danach ?? aus irgend einem endlichen Alphabetsollen diese Zeichenstammenegal welches Alphabet das ist das chinesische oder alle mathematischen Sonderzeichendazu und so weitertypischerweise wird das Alphabet schon das sein was man soauf der Tastaturdarum geht's und ich möchte jetztdiese Sprache hier dereinflussreichenüblichen Telefonnummernetwasbesser formalisierteneine Möglichkeit dazu hatte ich in denVideos gezeigt an Syntaxdiagrammichmöchte das so eine korrekt gebildeteübliche Telefonnummermit null anfängtzu C null Sandbank Ringel Drummond zu sagen dass dasdas ein Zeichen seinich möchte mit der null anfangenund dann soll eine Zahl kommendie keine null ist keine null null irgendwas keine Auslandsnummeralso wäre das jetzteine Zahl von eins bisneun eine Ziffer vielleicht sogar eine Ziffer von eins bis neunund danachKönnenweitere Ziffern kommenund irgendwann kommt ein Schrägstrichund danach geht es auch noch irgendwie weiterdies mit den weiteren Ziffern wie kann ich das sinnvoll hinschreibendas jetzt nochbeliebig viele vielleicht sogar weitere Ziffern kommen soll und fange damit an beliebig viele weitere Ziffern wie kann ich das auf maldie nächste Ziffer soll beliebig sein diezweite Ziffer soll keine Null sein damit wenig mit null null Staatenzur Rennstrecke nocheine formalMetternich mit null null Staatendie nächste darf nicht nur sein Leben aus dem Grunde und hier würde ich alle Ziffern erlauben von null bis neunwaskann ich nun veranstaltendamit es beliebig viele Ziffern von null bis neun werden könnendas ist der Trickeinfallzum Schrägstrichzur Wissens ?? Kommaeinen Fall zum Schrägstrichunentwegtanschließend gleich den Schrägstrichund einenoben rumdas heißt jetzt so eine korrekt gebildete Telefonnummer fängt mit null andann kommt was von eins bis neundann kommt was von null bis neun und dann kommt ein Schrägstrich odernach dem null bis neun kommtnoch was von null bis neunund ein Schrägstrichoder noch was von null bis neundann ein Schrägstrich und so weiter das heißt die kann ich jetztbeliebig vieleZiffern von null bis neun nochdazwischen pumpen das Komma weiterhin umso schöner machen beliebig viele Ziffern vor dem Schrägstrich es wird auch nicht schön aberdas wäre schon mal seineerste Richtlinie weniger gebildete Telefonnummer aussehen sollnach dem Schrägstrich soll sinnvollerweise nicht mit null weitergehenandie reineOrtstelefonnummerhier fängt auch nicht mit nun an das heißt die habe ich wieder was von einsbis neun nurwas von eins bis neunund danachkann ich wieder was von null bis neun habenund in dieser erstenAnnäherungbeliebig viel von der Sorte das heißt hier würde ich dann auch erlaubeneinerseits das ich fertig binund andererseitsdas ich das sie auch wieder in der Schleife haben kann nach dem Schrägstrich eine Ziffer von Uppsalavoneins bis neun und nach der Ziffer von eins bis neun eine von null bis neun und eines Feierabendsind sehr kurz die Telefonnummern ?? oder noch Vereine von null bis neun und noch eine von null bis neun noch eine von null bis neun des Landessowas einSyntaxdiagramminsofern eine sehr spezielle Form eines Syntaxdiagrammsagt das dasjenige komplett ausformuliertist die viel später noch kompetenter sind als Diagramme zeigen wo hier Platzhaltereingesetzt sinddamit Komma dass die kompetente Sachen formulierendas hier ist diealler einfachste aller primitivste Form eines Syntaxdiagrammkomplettüberallmit Symbolen belegt fertigen Symbolen aus meinem Alphabet belegt und nicht mit Platzhalterdass es eine Art diese Sprache zu beschreiben jetzt kann ich sagenwelcheZeichenfolgenaus Ziffern und Schrägstrich anscheinend nur welche Zeichenfolgen korrekt gebildet sindwelche nicht zurückgebildetsind alle korrekt gebildeten gehören zu dieser Sprache die durch diese Syntaxdiagrammschrieben beschrieben wirdalle anderen gehören nicht dazu das ist eine Art seine formale Sprache zu beschreibenander andere Artikel ich gleich auch tatsächlich dann mal vorführen in Software ein anderer dasselbe zu beschreiben nennt sich regulärer Ausdruckderkommt tatsächlich beim Programmieren gerne mal vorinsbesonderedas Internet Technikam?? ist das in den üblichen Programmiersprachensofort eingebaut dieses Ding regulärer Ausdruck es darum geht festzustellenob ein bestimmterZeichenfolgeein bestimmten Format genügtverwendet man im allgemeinen dann reguläre Ausdrücke ist eine Telefonnummerdie jemanden sein Kundenkontaktformulareingegeben hat wirklich eine Telefonnummeruntersteter Unsinn drin ist eine E-Mail-Adresseeine E-Mail-Adresse seiner Webadresse eine Webadressesie von HTTP Doppelpunkt Schrägstrich Schrägstrich?? steht hinten was Punkt DEund so weiter All daskann man auf solcheArtformulierenund sagen wie eine korrekte Webadresse wie eine korrekte E-Mail-Adresse aussieht oder eine korrekte Telefonnummer aussieht ?? die üblicher das zu tun ist nicht mit Syntaxdiagrammübrig hat das zu tun ist regulären Ausdrückenanso sieht das dann aus meineroben behaltenmeine Telefonnummersoll mit einer null anfangenund jetzt habe ich eine Wahlmöglichkeitvon eins bis neunschreibt man damit Klammern einsoder zweioder und so weiterbis neun eine Wahlmöglichkeitirgendwasaus den runden Klammerndiese einzelnen Abteilungen mitgeraden Strichen getrenntund dann kommt was von null bis neundavonaber beliebig viel dafür gibt ?? Spezialsymbolsternchendas einzige besondere was man braucht wird danach ein softwaregebautesdannist wesentlich komplizierter man kann sowas hier von bis elegant hinschreiben man kann sagenaber nichtsman kann Bereiche rausnehmenund kann sagenbeliebig oftaber nichtnull mal das sie nämlich ?? Problem wenn ich das so hin schreibe heißt das beliebig oft einschließlichnull malwas nicht ganz korrektesSinnes muss er mindestens einmal kommen sofern sich das jetzt so schreibeneinmalund danach beliebig oft einschließlichnull malso sieht das gerechter ausmuss ich einmal durchund danach kann ich es wiederholeneinmalund ?? Sternchen hast dann null maldaseinmal das zweimal das sind dann an das wäre die Formulierung für den Teil vor dem ?? Schrägstrich dann kommt der Schrägstrichund hinten geht es natürlich analog weiteram Mittwoch eine Ziffer voneins bisneun und danachmindestens einmalund dann beliebig ofteinschließlich null mal Ziffer von null bis neunSternchensieht dasmit regulären Ausdrücken aus?? sagte man das dann der Seriensoftware gibt viel mehr Möglichkeitenals nur den Strichunter Sternchenaber eigentlich geht das ganze zurück auf den Strich unter Sternchen alles andere ist dann nur Komfortdieselbe Sprache wird beschriebendurch diesen regulären Ausdruckumdas kann manchmal in OpenOffice anguckenin OpenOffice kann ich reguläre Ausdrücke direkt in dieser Form verwendenso richtig man daZiffernfolgenein die Telefonnummernsein könnten oder auch nicht ??Pages kann die Maschineeinfach aus einer Sprachbeschreibungherausfindenwas eine korrekt gebildete Telefonnummeristund was keine Gepäck gebildete Telefonnummerist das finden Sie bei den Suchen und Ersetzen Funktion auswoman unter richtig gebildetelangweiligsorgtdie erstes offensichtlich nicht richtig gebildet wegen des ABC ist da drinnendie nächstes nicht richtig gebildet weil das von mich mit nur null anfängt dieses nicht richtig gebildet weil der Schrägstrich die davon kann nur verzerrt ihr so machen das nur ein Fehler drin ist als die nullda steht der Schrägstrichdie null ist okay der Schrägstrich zweites Falls sovorsichtig unter BearbeitenSuchen und Ersetzen angucken Punktsie können suchen und ersetzenmehr Optionenregulärer Ausdruckähm sie können suchen und ersetzen in dem sie festZeichenketten angeben indem sie sagen such mir alles eins null eins zwei drei hundert sechzehn null eins zwei dreidurch irgendwasin der Formaber sie können auch mit regulären Ausdrücken jetzt suchen wenn es da unten anklicken als hier mehr Optionen unter unten regulärer Ausdruckbesser guckt ob das was er da gefunden hat ?? Teil dieser Sprache ist aber das wieder erkenntwas jetzt passieren wird das alle korrekt gebildeten Telefonnummerndurch die Zeichenkettetrefferersetzt werden und suchen danach zu suchen einfach dem andern alle korrekt gebildeten Zeichenim Textgroß das in üblichen Decksverarbeitungsprogrammangewendethaben in der Internetprogrammierungverwendet man's eben dann um irgendwelche Eingabefelder zu prüfen hat jemand seine E-Mail-Adresse halbwegs plausibel eingegeben oder seinePostleitzahlsein Telefonnummerhabe ich plausibel angegeben hierbei den Text VerwaltungsprogrammWiens gerne ?? suchen und ersetzenPunkt es gebe ich meinen Kram hier ein alsomeine richtig gebildete Telefonnummersoll anfangen mit einer null ??und dann sollin runden Klammern irgendwas kommen von eins bis neundas kann mangeschickter schreiben Sie Anbau man das geschickter schreiben kann aber das ist natürlich jetzt mal in so grundlegenden FormPunkt sie legensodas würde heißen ?? mit den runden Klammernnach der null irgendwas von eins bis neunund danach den bitte was von null bis neun??aber beliebig oftSinn habe ich noch den einen verpennt das ich nämlich sagen muss okay einmal mindestens so hatte ich eine Syntaxdiagrammgebauteinmal mindestens was von null bis neun Gesetze mit unübersichtlichenund danachbeliebig oft einschließlich null mal was von null bis neundann kommt ein Schrägstrichdann kommt etwas voneins bis neundann kommt wieder was von null bis neun und dann ?? beliebig oft was von null bis neunwowglaube ich gucke das immer raus sondern lediglich was er seine stehtdasder Städte also State mit nulldann eine Ziffer von eins bis neuneinssoll und warte dann eine Ziffer von null bis neun dann beliebig oft eine Ziffer von null bis neun hundert Schrägstrich ein Ziffer ??und war heftig anund jedes Mal wenn er eine Zeichenfolgefindet die diese Muster genügt dieser Sprache ist man in der Informatik sagen die Elemente der formalen Sprache istdann soll er das sich Treffer ersetzenich bin gespanntersetze alledas auch okaymach hier mal okay das jetztmit Andrew undAnton Guido kucken können was passiert ist sowie es erste Trefferbis zum ABChierist das korrekt gebildetdeshalbdachte ganz dreist okay bis zu dem ABC das ist der erste Trefferund ersetzt die Zeichenkette bis zu dem ABCman kann auf Verlangendass das wirklich dann mit einem Zeilenende aufhört will ich nicht vor versickern in dieser Eingabe auch wirklich verlangenZiffer Ziffer Ziffer und am Ende steht ein ZeilenumbruchPunkt aber mal in die Doku dann wäre das hier verboten das noch ABC und so weiter in steter Bier findet ?? einfach eine gottgebildeteTelefonnummer und ersetzt das Gesetz weitaus der nächste Treffer sind das ist kein Treffer die zweite Zahl ist kein Treffer Klassiker nicht mit null anvor dem Schrägstrich in der dritten Zeilesteht ein Trefferden bis zu dem Schrägstrich ist es Craiggebildes?? mit null anSchrägstrich und so weiter bis deines korrekt gebildetdas hier istnicht korrekt gebildet wie man sieht das nämlich nach dem Schrägstrich mit null ander hier ist wieder korrekt gebildet und ?? es auch korrekt gebildetdas sindreguläre Ausdrücke in Aktion für solche Sachen benutzt man das Suchen und Ersetzen bei der normalen Textverarbeitungund meine ganzen Internetprogrammierungum festzustellen ob irgendwelche Eingabenplausibel sindgut so sieht das in Aktion aus?? zwei Möglichkeiten dieselbe Sprache zu beschreiben einmal ihr SonnenSyntaxdiagrammder primitiven Art und einmalso einen regulären AusdruckKomma sie hat aber das kann man noch verfeinernvon Biss oder alle außerVernon und Jette noch in Zeilen und so weiter Defekten dutzendweise Spezialzeichenin üblichen Programmiersprachenund auch in Open Office und Konsortenin der Informatik beschränkt man sich hier auf das oderdas Sternchendas reichtfür alles andere alles andere ist dann nur Komfortfunktionensozusagenunddaslustige ist das man das jetzt auch noch etwas Drittes übersetzen kannin einen endlichen Automateneiner feinheitstechnischen?? endlicher Automatdass es ihr überraschend bei Automatendenkt man eher an Steuerungstechnikda werden sie auch Automaten endlich Automaten in genau dieser Form auch massiv noch sehenin der Veranstaltungstechnikirgend eine Maschinewas gerade mit halber Kraft voller Kraft des Stoppist gestoppt oder muss gewartet werden und so weiterein Aufzug steht im ersten Stock im zweiten Stockoder die Ampel steht auf rotgelb und so weiter endliche Automaten gibt's bei den Maschinenextrem häufig Presse beschäftigen sich dann in derSteuerungstechnikmit endlichen Automatenund in der Informatikfindet maneinen interessanten Zusammenhang zwischensolchen Sprachenund endlichen Automatendiese Prüfungob so eine Zeichenkettekorrekt ist korrekt gebildet ist oder nicht Komma mit einem endlichen Automaten vornehmenund umgekehrt alle Zeichenkettendie auf solche Art geprüft werden können kann man mit regulären Ausdrücken darstellenoder mit solchen ganzprimitivenSyntaxdiagrammin das Diagramm dieser einfachen ??ansoll das funktionierenendlicher Automatwas es war ganz abstrakt auf hat Zuständedie man dann in der theoretischen Informatikkringelmalt es gibt andere Arten das allen UMLund ?? Standard hatte an etwas anderer das zu meiner Sissi Siedler stehtdie theoretischen Komma die gemahlene Zustände mit Kringeles gibt einen Startzustandwenn ich Reset drückeund dabei die Maschine an schaltemuss dieser Automat in einem ganz bestimmten Startzustandseines gibtÜbergänge zwischen diesen Zuständendie von irgendwelchen Ereignissen ausgelöst werdendie man drückt auf einen Knopfund es vergeht soundso viel Zeit bei der Ampeles gibt solche Übergängevon ausgelöstund dann gibt es man sich ?? mit diesen Sprachen beschäftigt auch in zuständigen?? gerne mit so doppelten Kreisen gemalt einzustellendies prüfen ob eine Zeichenkette Teil einer Sprache es funktioniert dann soich füttere diesen Automatenmit der Zeichenkettedieses Schreiben durch die verschiedenen Zuständejeder mithilfe der Zeichen meiner Zeichenkettedas erste Zeichen ein A ist für dich von da nach Tagen zum Beispiel wenn das erste Zeichen ein Bees für die von der nach Tagen ebenfalls in das erste Zeichen an CS für die von da nach da gehenwenn ich da unten bin und das kommt als nächstes ein Ar würde ich dahingehendbin ich dahingehenddass es mir seit sie für dich dahingehend und so weiteralso alle diese Pfeile schreiben sieBuchstaben ihres Alphabets dranund wenn am Ende der Zeichenkette in einem Endzustand sind dann lange die Zeichenkette ist okayam Ende der Zeichenkette nicht in einem Endzustand sind sang die Zeichenkette ist nicht okay das wäre die Prüfungeiner Zeichenkette durch einen endlichen Automatendiese Übergänge werden genommen wenn jetzt als nächstes ein bestimmtes Zeichen kommtund das Ziel ist in einem der en Zuständenzu landenund sagt man Automat akzeptiertdie Zeichenketteimmer nicht am Ende der Zeichenkette in eine in Zustände ist Sackmann der Automat akzeptiert die Zeichenkette nichtdas istziemlich abstrakt das kommende Sommer für die Telefonnummernanregulären Ausdrücken sieht ich muss irgendwo ein Startzustandhaben soweit kein Dramaanders geht's nichtnurwas muss ich jetztals nächstes machen für mein endlichen Automateneinfallmit der null dieser Zustand hat jetzt nichts unbedingt einepraktische Bedeutung diesem Fall wäre die erste Stelleauf jeden Fall brauche ich einen Fall mit der null der sagt okaywenn eine Null am Anfang ist dann komme ich zu irgendeinem anderen Zustandund ich müsste doch nochganz streng bin sagen wenn irgendwas anders istkomme ich zu einem Zustand in dem ich nach alle Fehlerweit sammeln kannähmich habe mal ganz dreist nicht nur drandas ist mein Startzustandwenn die null kommtdann nicht da und da muss es weitergehen wenn da nicht die null kommt ?? irgendwas anderessagen landen wir daund egal was da jetzt kommt ich mal so wirklich ausdrücklich dran egal was jetzt kommtegallandesweit immer nur in diesem Zustand wenn es nicht mit der null anfängtnicht den klingenderwenn es nicht mit der null anfängtich da unten reinund egal was jetzt kommtman nicht weiter immer nur diesen Zustandauf jeden Fall wird das eh kein Endzustand seinwenn es mit der null anfängtdamit ?? weiter gucken okaydann ist alles in Ordnung wenn jetzt was von eins bis neun kommtwas von einsbis neunund wenn nichteins bis neun kommtdannkann ich wieder unten hin marschierenund versuchen von hierin dem Zustandals erstes kommt gleich Null meiner Zeichenketteich gehe in den Zustanddann ?? sich das nächste Zeichen der Zeichenkette einwenn es nicht eins bis Neuner sage ich ob ich die in den Zustandund damit einen hänge bleibenist die Zeichenkette durchwenn es aber eins bis Neuner gehe ich in einen neuen Zustandunddann erwarte ich was von null bis neunirgend eine Ziffer von null bis neunwenn es nicht null bis neun ist sie wieder derselbenullbis neun ist muss ich wieder zu meinem Fehlersojetzt wird spannend jetzt möchte ich das aber wiederholenkönnenwas heißt das eigentlichdas ich diesen Schritt jetzt wiederholen können willund es geht noch einfacher als dass siedas hier machen müsse ?? sowas haben wieder Sternchen für endliche Automatenund in dieser Situation das lustigerweise dieses hier wieder Zustand bleibt auf sich selbst stehen wenn der jetzt was von null bisneun kommtund wenn nicht nur bis neun kommtder geht jetzt für beide ja wenn nicht von null bis neun konntich wieder in den Zustand der untenalso wenn ich da angekommenbat ich das einmal null bis neun kommtund wir Netsommer null bis neun kommt schönlauf ich einfach im Kreiselund jetzt muss der Schrägstrich kommenwir sehen also nicht nur bis neun ist sogar falsch was ich da geziemt schreibe ich muss ein bisschen anders arbeiten wenn jetzt der Schrägstrich kommtmuss es auch erlaubt sein in diesem Zustand muss erlaubt sein das null bis neun kommtoder der Schrägstrich konnte mit dem Schrägstrichlaufe ich dann ein zweiterdas heißthier gehe ich raus wennwirdas am bestenwie der?? Schrägstrichnochnull bis neundas gilt für diesen Fall in dem Zustand erwarte ich Ziffer von null bis neunoderden Schrägstrichwowund nach dem Schrägstrichsolleine Ziffer von eins bis neun kommenalso hier habe ich was von eins bis neunmit den A neun Zustandund wenn dann was anderes kommtals eins bis neunhier wieder zu meinem Fehler hin nicht eins bisneunRichter und Minister Lagarde gucken wenn ich da unten bin?? was vorher hatten eine Zahl von null bis neun und dann beliebig häufig eine Zahl von null bis neunundneunzig wird das weitermit einer Zahl von null bis neun mindestens eineund hier noch mal eine Zahl von null bis neunüberlegen?? überlegen ob ich den hier schonals Kringel machen kannKomma zusammen überlegen ist das das ist das dieselbe Sprache wenn ich das hier Male ist das dieselbe Sprache wie ich sie oben hattedass ich hier aufhören mit einem Zustandder danneinedurch Eingabe von null bis neun immer wieder in sich über vier führt wird und das dann ein Endzustandist wäre das dieselbe Sprachehier oben beschrieben habehier will ichnach dem Schrägstricheine Ziffer von eins bis neun dann eine Ziffer von null bis neunund dannkeine Vereineoder so zu viel?? noch mal Ziffern von null bis neundas istaber nicht infrage das es lustigerweise nicht diese Sprache hier was ist der Unterschied zu meinemmeine sprach von ??ein Endzustand darf wiederholtwerden darf der ?? darf auch nach dem Endzustand wieder in andere Zustände zurückgehen wichtig ist nur wenn die Zeichenkette durchgelaufenist das dann die Maschine in diesem Zustand steht wenn die Zeichenkette lautet genau dann wenn Zeichenkette erlaubt istwas mir jetzt fehlt ist das nach der eins bis neunmindestens einmal noch null bis neun kommen muss so wie ich das in den Syntaxdiagrammaufgeschrieben habe hiermuss er mindestens einmal null bis neun kommen soll Komma klarmachen dass dieser Fall so rum läuftmindestens einmal muss null bis neun kommendaspassiert hier nichteins bis neunbin ich in dem Endzustandin meine Zeichenkette da aufhörtbin ich im Endzustand und sie wird akzeptiertich hätte nicht immer zwangsläufigeine weitere Ziffer von null bis neun des erforderlichen noch einen weiteren Zustand das kann nicht der Endzustand seinauf einen weiteren Zustandalso hiermit Ziffern von null bis neun wird in ein weiteren Zustand das ist der Endzustandund der Licht in der Schleife wenn ich nach dieser Ziffer von null bis neun noch weitere Ziffern habe von null bis neun keine Aktion bleibe ich in diesem Endzustandundgucken eins bis neun ?? wieder raus wenn ich hier nichtnull bis neun habehier wieder zu diesen Fehler gehen und wenn ich hier nicht nur bis neun habemüsse ebenfalls zu dem Fehler geheninderInformatik kann man danneinen Tag drauf verwendenzu beweisendass die Sprache die man so beschreiben kanngenau die selben sind die man so beschreiben kann mit regulären Ausdrücken denen sich dann die regulären Sprachenist nicht so wichtig an dieser Stellenicht vor die Finger vorführenwas für Arten es gibt Sprachen zu beschreibenalso eineübliche Art dannist praktisch auszudrückensind reguläre Ausdrückeinsbesondere weil es viele Programmier sprachen eingebaut istund eine ganz andere Auffassung die man ihm in der theoretischen Informatik entwickelt sind diese endlichen Automateneherich prüfe eine Zeichenkettemit so einer MaschineMaschinisteneben keine Ampel und keine Druckerpresseund kein Aufzug sondern eine Maschine die Zeichenketten prüft warum nichtundder Gedanke ist die Zeichenkettemuss dafür sorgen dass diese Maschine durchihre Zustände läuft jedes Zeichen Leerzeichen geht es quasi eine Eingabedurch den Club null drücke den Knopffünf drücke den Knopf null und so weiter jedes Zeichen ist eine Eingabeund ich frage mich zum Schlusssteht diese Maschinen einen der Zuständedie ich als in Zustände markiert habe ein Jahr dann ist die Zeichenkettekorrektwenn nein dann ist die Zeichenkette nicht dass wir gezieltein Automatder meine etwas komische Sprache der gebildeten Telefonnummern prüftandieses Ding gab's ja so ungefähr auch schon mal als Seminaraufgabeder was bisschen komplizierter hier des die Anzahl verfestigtedichjetzt nichtbis dahin durchführenund der meßprogrammiermäßigsehr zu Fuß gelöstwerden?? ad hoc wie man das so nennen Ziffer Ziffer für Ziffer durchgegangenüber Licht überprüfen kann wie man zählen kann sobald man auf diese Abstraktionhier istmit regulären Ausdrücken und endlichen Automatenkann man es sehr systematischangehen man kann jetzt tatsächlich diesen endlichen Automateneinfach programmierenund damit prüfen ob irgendwelche ZeichenkettenTelefonnummernin diesem speziellen Format sinddas geht dann ziemlich endlos durchwenn sieeinmal diesesDiagramm auf gemalt habenansich wird mal einfach die Zustände jetzt durch nummerierenden die Zustände als solche sind nicht so richtig sinnvollder hier naja gut das hat etwas mit Fehler zu tunihr Zustand aus mit akzeptiert zu tunamdas ist der letzte vor dem Schrägstrich der erste vor dem SchrägstrichmitetwasMühe kann man den schon Bedeutungen geben aber eint ich sie mir gar nicht überlegen was die Bedeutung dieser Zustände istich hab jetzt einfachhier ÜbergängeEreignisse und das ganzebaulich in einer Tabelle zusammen und die Tabelle programmiere ich dannalsowieder mal DurchsageZustand null eins zweidreidreivierfünfsechssieben Komma ??youdas sind also acht Zustände insgesamt die schmeiße gleich einfach in eine Tabelleund in der Tabelle steht dann was diese wie sich diese Zustände weiter entwickeln sollenwenn bestimmte Eingaben kommensehen was wir haben können und ich muss gucken obdie Eingabe nur lästig muss gucken ob sie eins bis neun ist ich muss gucken ob sie ein Schrägstrich istoder alles anderereigentlich habe ich effektiv nur drei Eingabenist die Eingabe null ist die Eingabeeine Ziffer von eins bis neunZiffer ein Schrägstrichoder alles anderemitdrei Fällen ebenso natürlich vier Fälle das sind die vier Fälle dich bei den Eingaben unterscheiden mussund euch dann einfach in C eine Tabelledie das ganzevorArztesdie wir dann so aussehenglaube letztes Jahr hatte ich die andersrum gezeigt man ganze Tabelle andersrum aufbauenhabenjetztvorschwebtdie Tabelle aufzubauenist folgendesdas hier in der Spalte linksdie Eingabe steht also nulleins bis neunSchrägstrichund alles andereund dasauf derx-Achseder horizontalenAchse die Zustände stehen von nullbissieben wir Kommadann schreibe ich auf diese Kreuzungspunktefolgendeswenn ich im Zustand zwei binund es kommt als Eingabe eins bis neunschreibe ich hier was passieren sollauf die jeweilige Kreuzung wenn ich im Zustand zwei bin und es kommt eins bis neun schreibe ich da rein was der nächste Zustand sein sollweiter gucken wenn ich in Zustand zwei binZustand zwei Wind es kommteins bis neunTeilmenge davon gehe ich zum Zustand dreitausend drei reinfür die Tabelle ausund schmeißt das dann in sein Programm reinund das Programmpaketeinfach durch die Tabelle durch es weißbin im Zustand so zu vierjetzt kommt die Eingabe soundsoalso muss ich dann in den Zustand soundsoviel gehen und ganz am Ende guckt das Programm ob sie meinte in Zustände ist diesem Fall nurZustand sechs istin der Tat die null geht auch des also wenn hier die null kommtin der auch hier den ZustandNummer dreiich hab die auseinandergehaltenhier die null und die eins bis neunum möglichst wenigeherEreignisse zu habeneigentlich ja nur vier Eingabenund hier sage ich eigentlichja eigentlich habe ich ihr dann zwei Eingabendurch das Somali nicht habe ich ein nicht Eingabe ?? neun oder die Eingabe nullso wäre das ein ganz streng auf gemaltPunktder Einfachheit halber lass ich mal so von null bis neungibt's jetzt zweiEreignisse die von zwei zu drei führendes eigenes Null sein eigenes eins bis neunso der erste Job ist jetzt diese Tabelle in C zu gießenmeine Zustände aber schon ganz dreist durchnummeriertvon null bis siebendieserEingabenkönnte man jetzt mit einer enum machendass sie wirklich was benanntes haben sie rohund schon einFlasheines Engels oder sowasam ?? für die jetzt auch einfach mal um es ganz schlicht zu habendurch nummerieren null eins zwei dreirömisch insgesamt einzweidimensionaleSylvainund in diesen zweidimensionalenWeg stehen einfach Zahlen an welcher Zustand wird als nächsterangenommensich sogar als Schar vielleichtzu viele Zeitscharein zweidimensionalte es istacht breitschonundvier hobdie äußerste Dimension müssen wir nicht angeben ?? göttliche Vieh reinschreibenPunkt das kann der Compiler selbst hinkriegenSonettinjeder Zeile acht Sachen drin stehenachtvon vier Stückoderso den hat man netterweise schoninderSpalte mit der Nummer zwei muss das losgehen mit drei dreiviertel ?? die noch zu ändernwenn im Zustand zwei ein Schrägstrich kommtZustand zweiein Schrägstrich kommtin zum sieben?? den Zustand zwar irgendwas anders aber kommt gehen wir zu sieben ?? das muss allessiebensieben seinHerrchen eintragen drei drei sieben siebenin der Spalte Nummer zweiSpaltennummer zweidrei dreisiebenwarenes gibt noch ein Ding das man sofort komplett eintragenkannwenn ich im Zustand sieben einmal gelandet bindann soll ich nie wieder rauskommenaus egal was passiert egal welche Eingabe kommt im Zustand siebenich muss wiederin Zustand sieben landenes heißt das für diese Tabellewenn ich im Zustand sieben bin und dann kommt die null solchen Zustand sieben bleiben wenn ich Zustand sieben bin und es kommt ein ?? bis neunzehn und so weiter hinten soll es immer auf der sie bleiben ?? auch noch geschenktmuss es überall sieben sieben sieben sieben heißengucken ob richtig gezählt habe einsdrei vier fünf sechssiebenacht einer zu vielsowie geht's weiter wenn ich im Zustand null bindann kann es nur mit der null weitergehendas es das erste mögliche die erste mögliche Eingabe in der ersten Zeilenur oben steht bei der null die eins ansonsten steht überall die siebeneinsansonsten steht über siebenwennich bei der A eins bingeht es nurmit der eins bis neun weiter und ansonstenimmer zum Zustand sieben eins bis neun wardie zweite Zeileergibt also wenn Zustand eins in der zweiten Zeile was ansonsten muss ich immer dritte sieben Ändernder zweiten Zeile steht bei der einst die zwei ansonsten die siebenzwei und ansonsten die siebenZustand Nummer zwei null eins zwei hatten war jetzt kommt der Zustand Nummer dreimännlichen Zustand Nummer drei bin jetzt schwierigbei der null bei der eins bis neun das eine Id zwei verschiedene Eingabenbei der nur bei der eins bis neungeht's wieder in dreibeim Schrägstrich geht's ins vieransonstengeht's in siebenalsoerwiesene Zustand selbst zurückeines null ist geht's in den Zustand selbst zurückbesser eins bis neun es geht in den Zustand selbst zurückwenn's ein Schrägstrich Wagens in den nächsten und wenn es alles andere war GC mein Fehlerzustanddas waren null eins zwei drei der Zustand Nummer drei hundert Zustand Nummer vierwenn es nach eins bis neun ist das ?? der zweiten Zeile gehe ich zur fünf und ansonsten ?? ich immer zu siebenwenn es nach eins bis neun ist der hier gehe ich zurfünf und ansonsten immer zusätzlichenNetz kommt der Zustand NummerfünfBeistrichkann also die null erlauben und die eins bis neun ?? sind die ersten beiden seinen ersten beiden Zeilen steht eine sechsund ansonsten steht die Siebensteht eine sechssteht ein siebenund der Zustand mit der Nummer sechsder hierbei der null?? für die sechs oder eins bis neun steht die sechsten ansonsten steht die siebenda steht die sieben das ist die TabelleSinn hat es auf dieseArtso ein Diagrammnichtso ein Diagramm jetzt umgewandeltin eine Tabellemit einfacher Zahlen stehen ich schreibe einfach wer auf welche Weise womit verbunden ist in die Tabelle reinund mein Programmverarbeitetjetzt diese Tabelle des weiß überhaupt nichts von Telefonnummernund was auch immer es sieht nur diese Tabellewasjetzt an der Tabelle rum als ich doch irgendwie mal eineZahl mit Steckersausprobieren kann und eine Zeichenkettegenauer gesagt erstmals das eine Zeichenkettedurch das ausprobieren kann nach ?? sollte das ganze war natürlich hübsch in irgendwelcheFunktion verpackt sein und eignet sie Dateien und Header-Datei verpackt sein Herz nochbisschen allesunschön gelöst was was die Programmierpraxisdavon sie angeht mich interessiert jetzt wirklich nurdie man damit umgehen kann ich dashübscher macht sauberer machen als ich die Männer Zeichenkette reinsojetzt möchte ich diese Zeichenketteprüfendas heißtmuss diese ZeichenketteBuchstabe für Buchstabeablaufenundin demAutomaten hier weiter schreitenwas muss ich jetztwie Tun wie kann ich jetzt weitermachenalso durch diese Zeichen jetzt durchzugehenich will ja ein Zeichen nach dem andernReinfüttern in den Automatenim sinnvollerweiseeine for-Schleife ich weiß wie viele Zeichen es sind es geht schon in einer Schrittendas Wirkung ?? das Intervallschleifemacht irgendwo muss jene for-Schleife stehennurkleinerist nämlich natürlich auchdie ganze Zeit der Namezursollte diese Zeichenkette auch mit einem Namen versehen?? als sieeher maximaldie Längemeiner Zeichenkette Aund denk längst zu haben brauche ich jetztKaraHeader-Dateiund in einer Schrittenin einer Schrittenund in der Schleife will ich jetzt Zeichen Anzeichenin den Automatenfilteranich muss mir merkenwo ich gerade bin im Automatenwelcher Zustand gerade angesagtistund dann guck ich in der Tabelle nach zuwegen zuständig gehen musswie merke ich mir welcher Zustand gerade angesagt istgenau sich zu merken wo sie gerade sindin dem Gestrüpp welcher der Zustände gerade angesagt istes einfach ein Kind merken was ist die Nummer des Zustands wenn diese Zustände jetzt hier hübsch benannt hätte mit einer enumvon wegen Start und Ende und Fehler undvor dem Schrägstrich nachdem Schrägstrichdannwürde ich eine enum eben niemalsTyp der variabler Wiederbeschaffung durchnummeriert?? entnehmenoder analog zu der Tabelle Dichte hatte er gesagt an sein Schargesondert Zustand zum anderen stehen deshalb ??an sein Schaf für dieNummer des Zustandsin dem ich gerade binRZund der Anfangszustandsinnvollerweiseweiter sich auch der mit der Nummer nullbesserte sich das auf die Nummer null und gucke jetzt was passiert Z sollenthalten in welchem Zustand ich gerade binich guck mir das nächste Zeichen an und gucke dann in der Tabelle nach zu welchem Zustand ich jetzt mussokayVoicebardas nächste Zeichen müsse sich relativeinfach erst mal aus dieser Zeichenkettedas Zeichen an der Stelle I bekommen Sie daranzu A in eckigen Klammern hier die Zeichenkette ist ein Püree aus diesem Array gibt mir das soundso fehlte Zeichen raus und jetzt will ich feststellen ob dieses Ding eine null ist oder an eins bis neun istoder ein Schrägstrich ist oder irgendwas anderesan der Summe nachher dann die Nummer hier der Zeile sagen Pensionist möchte ich in der Zeile mit der Nummer null nachgucken wenn's eins bis neun ist möchte ich in der Zeile mit der Nummereins nachgucken wenn sie Schrägstrich es neue Zeile mit der Nummer zweiund wenn's alles andere ist in der Zeile mit der Nummer dreidas muss irgendwie übersetzen ich baue mir eine Variableeinen vielleicht die verwegene ein Verwegenereignisoder sowas in dieAugenvielleicht kann ich Initialisierungdas klarzumachen alsowennmein aktuellesZeichenaus der gerade angesagtistdie Ziffer null ist so muss es dann ja aussehendesZeichenwar von ihr ist identisch mit der Ziffer null ?? nichtdie die einfachen Anführungszeichen Vergessens ist ja nicht in Symbol Nummer gleich null sondern diese Symbolnummerist dies Nummer des Symbolsnullwenn das der Fall ist dann habe ich das Ereignis mit der Nummer null die Eingabe mit der Nummer nullachtsind die Schweifklammer noch dieser Maschinewennman aber ganz wasistwennValentinsonstwenn das nichtnur Listen jetzt muss ich irgendwas haben eins bis neunwenn das eins bis neun istdann merklich mehr die Nummer meinesEreignisses ist einskönnen Sie das ausformuliertmöcht jetzt prüfen ob dasZeichen was ich kriege eine Ziffer von eins bis neun isttatsächlichzwischen diesen beiden kurz einschließliches ist größer gleich den Zeichencodefür die eins Mozilla für die einsund es ist kleiner gleich den Zeichencode für die neun dann habe icheine Ziffer zwischeneiner gleich eine Ziffer zwischen eins und neunso und merke mir das ist dasEreignismit der Nummer einsund wenn esder LC freute sich alle ausschließen gegenseitigkönnte das Geld auch weglassen sieht ein bisschen unschön aus mit dem L zwanzigsterdiese Fälle schließen sich alle gegenseitig aus es im Prinzip auch bisschen schnelleraber der wesentliche Effekt ist dass sie allen Leuten die dieses Programm lesen mitteilendass sie sich bewusst sind das diese Fälle sich gegenseitig ausschließenso wenn es ein Schrägstrich ist dann merke ich mireinen zweiundansonstenist es alles andere und ich merke mir eine dreiso könnte man das aufschreiben das es jetzt das übersetzen vondiesen Eingabemöglichkeitennulleins bis neun Schrägstrichalles anderein eine Zahlnull zweikönnt es auch etwas eleganter machen statt es hier hintennoch das Els in der Bauernkönnen Sie erfahren auch sofort sagen wir nehmen erst mal an es ist alles andereeh gleich dreiund prüfen nur noch die null eins bis neunten Schrägstrichich finde es jetzt so auf Anhieb übersichtlicherheißt dass ich alles erwischt habeund jetzt kann ich in meiner Tabelle nachguckenmeine Tabelle sagt mirder?? die erste Koordinatehiernimmt die Nummer des Ereignissesdas ist das eh die zweite Koordinatenimmt den aktuellen Zustandund was rauskommt ist der nächste Zustandwasschreiben Sie hinum jetzt zu zu schreiten in diesemAutomatenirgendwie muss jetzt ja genau der Tabelle nachgegucktwerden die hießBergernahm sehr schön??so soll das heißenAEZ Maschinen soll man Tabelle heißen in dieser Tabelle guck ich nach der ersteist die Zeile das ist das Ereignis unserer gerade rausgeprügelthabenmanmuss auch nicht was den von FS ähmEEund hinten steht der alte ZustandZustandnullerste SpalteZustandeins zweite Spalteund so weiter so war das zu verstehen was mache jetzt mit diesem Ergebnis was mache ich mit dem was sich aus der Tabelle ausgelesen habegenau das ist der neue Zustand sie weisen das einfach Z zu simpel sie das heraus das ist derendliche Automat wenn sie einmal alsTabelle formuliert habenichhabe gerade aus der Zeichenketteentnommen in welcher Zeile ich binist die Zahl null gekommen ist die Zahl eins bis neun gekommen Ziffer eins bis neun gekommen ist Schrägstrich kommt es was anders gekommen ich weiß in welcher Spalte ich bin dass der aktuelle Zustandjetzt ruhig auf der Kreuzung nach und was ist der nächste Zustand istdas einfach zeitgleichsowie finde ich jetzt Herausfilme fertig sindob denndieseZeichenkettedie ich am Anfang gegeben habe ob diese Zeichenkettejetzt auch wirklich diesem Format genügt hatwas muss ich jetzt machengenau das ist der Trick wenn wir fertig sind mit der Zeichenkette nur die abgearbeitet haben kuck ich einfach ob ich jetzt den Zustand Nummer sechs binder einzige Endzustand ich gucke ob ich in irgendeinem der Ent zustehende Sendung ja nur eine Nummer sechs wenn ich da gelandet bin ?? Zeichenkette okay bin nicht weil sie nicht okayPunkt hier schreibe ich es einfach griffzeitgleichsechseinfachaus korrektund ansonsten gebe ich aus das es nicht korrekt warnatürlich auch jetzt für das Kind F noch hundert bei UnionssohnesKomma Fehler suchen ?? ich bin gespannt wie viele der jetzigengenau damit den erstendas ist ja wahr was ich geschrieben habe das aber nicht seh was ich da geschrieben habe solldasFensterdie eckigen Klammern hinter dashinter den Variablennamensehenaber gucken was der Compiler bei SatyrMacein Fehler immer nochdie zu lang warendas heißt ich sollte man einen Tipp einstellendenn bisschen mehr Speicherplatz hatJanErikKommafür dreißig XKomma der müsse mehr Speicher hat??okayder kann das fressendas heißtgrammatischist das jetzt okay das ist ja genau das was jemand auch gesagt habe zuformalen Sprachender Compiler findet das okay das ist also grammatisch okay ob es das jetzt tut was ich will ?? ganz andere Sachesemantisch richtig istanneunzehnVerlassens verlaufenund ich brauche nicht diese sämtliche eines Terminalzuführen Punkt??okayzu dieser Telefonnummer sagte mir korrektgespanntwenn ich ihren zweiten Schrägstrich einbaue??sagte nicht korrekt?? müssen ein hundert verschiedene Fälle mal durch Nudelnwas ist wenn ich mich mit der Nullstarterdaskann natürlich ?? automatisierenes gibt dann auch Bibliotheken mit denen man genauso was automatisierenkann Unit Testssie schreibenhundert oder tausend Testfälle auf und was jeweils rauskommen soll und die Biotechnologieautomatisch durch?? nicht korrekt gefällt mir auchzweiSachen eingebunden Swing habe ich unten mit F benutzt habe zur Ausgabe ?? Standard Alkoweil ichhierdie Länge der Zeichenkette benutzt haben?? nicht zu Ende testen einfacheinfacher Zahlen eingebenist ja nicht so geradedie seriöse Art das zu testen müsst es wirklich sauber durch testenalle möglichen Kombinationenmal ausprobierenso sieht das dann beim Programmieren aus und sie sehen dass das im Unterschied zu der Seminaraufgabeoder was ähnliches hatten Telefonnummernerkennenob sie das richtige Format habendanndurch die zu dieser Seminaraufgabeist das ein komplettanderer Art anzugehentotal formaljuristischich schreibe eineSpracheabstrakt hin was ist diese Spracheder korrekten Telefonnummernübersetzte das in einen Automatenersetzt den Automaten in eine Tabellesehen was jetzt passiert auf einfach nur noch diese Tabelle durch das ist alles hier die mir das interessiert michan das es wesentlich leichter zu beherrschen ?? beim Programmieren als wenn man ad hoc sich über Licht Autismus dieses Zeichen kommen und da muss jenes Zeichen kommtandas es viel leichter zu verstehenvielleicht dazu verifizierenauchein vielleicht überzeugendes das richtige tutZeit verkraften zu so einer Lösungund das hübsche das ehrlich hier schon mit OpenOffice gezeichnet hübsche ist in dieser Form mit denregulären Ausdrückenist es sowieso die meisten Programmierspracheneingebaut führt sie gibt Bibliotheken die sie dazu laden können die dann auch sowas verstehen der Müßiggang selbst programmieren und beschreiben nur abstrakt hinwie die Sprache funktioniertdie wieder haben wollenabschließend noch mal soll ich zeigen dass die Sprachen von dieser Art hier dehnen sich die regulären Sprachen sprachen diese mit regulären Ausdrücken hinschreiben können und mitendlichen Automatentesten können diese Sprachensindnicht gerade sehraussagekräftigsie nicht gerade sehr vielseitigwas man zum Beispiel nicht prüfen kann mit solchen Sprachenist auf Klammern auch wieder zugemacht werden wenn es beliebig viele Klammern sein dürfen wenn sie eine Sprache bauen wollenin der Sauce ausgeklammert werden kann und dann wollte dafür sorgen das auch immer genauso auf die Klammern wieder zu gehengibt das ein Problem mit diesen regulären Sprachenwenn ich erlauben will dass es hier beliebig viele endlich aber beliebig viele Klammern sein dürfen kann ich das nichtmit einemendlichen Automaten prüfenärgerlicherweisealso das istaneine ganz dicke Limitierungdieser Spielwaren die man so darstellen kann mit regulären Ausdrücken und mit endlichenAutomaten dann prüfen kannmuss gerade noch mal überlegen warum kann man das nichtmit so einem Automaten prüfenwas haut da nicht hinwenn ichsicherstellenwill dass diese Sprachewieder vornetausend Klammer auf hat auch genau tausend Klammern wieder zu hartoder wenn sie von eine Million Klammer auf hat ein da hinten auch genau wieder eine Million Klammer zuwas ist das Problem wenn sie einen einzigenendlichen Automaten hin meint der das prüfen können sollgenauso viele Klammern wieder zu gehen wie vor aufgegangensindsie haben sofort eine praktische Lösung für das Problem sie zählen einfach die Klammer mitvier aufwärts und der abwärts das dumme ist das so einendlicher Automat nicht beliebig zählen kann der hat ja nur endlich viele Zuständeder kann deshalb nicht beliebig hoch zählt das Problem istfolgendes mit dem Zählen sollte man es wirklich dumm das sieht man daran der kann nicht beliebig mitzählenander Musnadie erste Klammer hat einen anderen Zustand seinerzeit die zweite Klammer hat das er nachher auch wieder zurückfeststellen kann ob er den zwei oder eine Klammer auf wenn die dritte Kammer da kommt müsse noch einem anderen Zustand sein in die vierte Klammer kommt muss er noch im anderen Zustand seit um nachher wieder feststellen zu können das den vier Klammernnötig sind und nicht drei Klammer nötig sinddas heißt wenn sie verlangendas System hier eine Million klammern auf ??annimmt und ähnlichem erzählt das es auch wieder eine Million Klammer zu geht brauchen sie mindestens eine Million Zuständewenn sie verlangendass die Zahl der Klammern ihr beliebig sein darf endlich aber beliebig sein darfwie das nicht funktionierendeSystem ist unendlich groß eingescannt ein endlicher Automat das prüf ?? es gibt eine billige Lösungsie zählen einfach die Klammern aber endlicher Automat kann das nicht und weil der endliche Automat das nicht kannangeht es dann auch hier mit den regulären Ausdrücken absurderweise nichtesgibt eine allgemeineresArgument das kommt in der theoretischen Informatik dann vorhört sich monströs an das Padding LemmaSpampinglemmafür reguläre Sprachensie mangels Seriendenkt der oder die sie studieren Raketentechnikam Dilemma fürSprachenversprachen dieser Artan wenn ich so einen Automaten habeund ich jeder mit einem sehr sehr langenWort reinaus mit einer sehr langen Telefonnummerjeder rein dieser Automatläuft durch die Gegendwas muss irgendwann passieren wenn das Wort sehr lang ist mit dem ich eingehtKlammer auf wenn Sie sich vorstellen dass ihr AutomatAngelazehn Zustände sowas hateine Million oder eine Milliarde eine festeendliche Zahl von Zuständen hat und jetzt gehen Sie mit einem super super superlangenWort einer super langen Zeichenkette dareinin diesen endlichen Automatenwann muss was passierenirgendwannirgendwann muss dann eine Schleife kommen das ist der Witz irgendwann muss ich das Dingwiederholen irgendwo muss dann Schleife drin sein wenn sie mit einer Million Zeichen reingehen und dieses Ding hat nur tausend Zuständemuss ich irgendwo Schleife ergebenwenn denndiese Zeichenkette mit einer MillionZeichen erlaubt es also wenn sie so eine lange Zeichenkette erlaubentatsächlich in der Sprachemuss in diesem Automateneine Schleife drin sein und das hat sofort eine Folgewendeein Schleife drinnen istals das ich kann diese Schleifeeinmal durchlaufen zweimal durchlaufen tausend Mal durchlaufen zehn tausend ?? durchlaufen auch all das muss erlaubt seindas es diese sogenannte Pappenlemma für reguläre Sprachen es gibt auch noch in anderes fürandere Sprachenähmwenn diese Sprache ein Wort enthält das lang genug istdann können Sie dieses Wort in drei Teile teilenunddieser Teil in der Mitte den können sie beliebig wiederholenweil das einfache Schleife sein muss Sie müssen mindestens ein Schleife drin haben und der Teil des Wortsder Zeichenkettein der Schleife läuft den können sie beliebig oft wiederholen und auch das muss wieder erlaubt sein als wenn das ABCistund dass ein erlaubtes Wort ist dann muss auch dieses hier ABBC ein erlaubtes Wort sein ich wiederhole einfach die Schleife und es mussA und den jetzt dreimal Bzehnein erlaubtes Wort sein wenn das geht muss das Gehen und das Gehen und so weiterwir teilen der Schleife muss beliebig oft wiederholbar sein und auch wieder erlaubt seindas ist eineEigenschaft von diesen regulären Sprachen hierund das schließt ganz viele Sprachen sofort ausweil eben nicht einfach in jeder Sprache so ein Bestandteil plötzlich wiederholt werden darf beliebig häufigregulär sprach ?? sofort die Eigenschaften sie sehr lange Wörter drin habenPunkt gibt es darin Teile die beliebig wiederholt werden dass er sich pampig auf PumpenPunkt hierdas erlaubte Wort ?? Bestandteile auf