31.01.2014 Aufrufe

Skriptes - Uni Bremen - Universität Bremen

Skriptes - Uni Bremen - Universität Bremen

Skriptes - Uni Bremen - Universität Bremen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Teil I + II: Automatentheorie und<br />

formale Sprachen<br />

Formale Sprachen, also (endliche oder unendliche) Mengen von Wörtern, sind ein wichtiger<br />

Abstraktionsmechanismus der Informatik. Hier ein paar Anwendungsbeispiele:<br />

• Die Menge aller wohlgeformten Programme in einer gegebenen Programmiersprache<br />

wie Pascal, Java oder C++ ist eine formale Sprache.<br />

• Die Menge aller wohlgeformten Eingaben für ein Programm ist eine formale Sprache.<br />

• Die Menge aller wohlgeformten Eingaben für ein Eingabefeld auf einer Webseite<br />

ist eine formale Sprache (z.B. Menge aller Kontonummern / Menge aller Geburtsdaten).<br />

• Jeder Suchausdruck (z.B. eine Regular Expression in Linux ) definiert eine formale<br />

Sprache: die Menge der Dokumente, in der der Ausdruck zu finden ist.<br />

• Kommunikationsprotokolle: die Menge aller wohlgeformten TCP-Pakete kann als<br />

eine formale Sprache betrachtet werden.<br />

• Das “erlaubte Verhalten” von Soft- und Hardwaresystemen kann in sehr natürlicher<br />

Weise als formale Sprache modelliert werden.<br />

Wir beginnen mit einem kurzen Überblick über die zentralen Betrachtungsgegenstände<br />

und Fragestellungen.<br />

1. Charakterisierung:<br />

Nützliche und interessante formale Sprachen sind i.d.R. unendlich. Dies ist auch in<br />

den obigen Beispielen der Fall, denn es gibt zum Beispiel unendlich viele wohlgeformte<br />

Pascal-Programme. Die Frage ist nun: Wie beschreibt man derartige Sprachen<br />

mit endlichem Aufwand? Wir betrachten folgende Möglichkeiten.<br />

• Automaten oder Maschinen, die genau die Elemente der Menge akzeptieren.<br />

Wir werden viele verschiedene Automatenmodelle kennenlernen, wie z.B. endliche<br />

Automaten, Kellerautomaten und Turingmaschinen.<br />

• Grammatiken, die genau die Elemente der Menge generieren; auch hier gibt<br />

es viele verschiedene Typen, z.B. rechtslineare Grammatiken und kontextfreie<br />

Grammatiken (vgl. auch VL „Praktische Informatik“: kontextfreie Grammatiken<br />

(EBNF) zur Beschreibung der Syntax von Programmiersprachen).<br />

7

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!