Zur Hauptnavigation springen [Alt]+[0] Zum Seiteninhalt springen [Alt]+[1]

Überblick

Die sogenannten formalen Sprachen sind ein wichtiges Teilgebiet der theoretischen Informatik. Es beschreibt (in sehr mathematischer Prägung) Eigenschaften von Wortmengen, die als Eingabe von einem Informatiksysteme akzeptiert werden sollen. Eine solche Wortmenge nennt man „Sprache“. In der Regel muss das Informatiksystem mit der Eingabe eine Gültigkeitsprüfung durchführen („soll dieses Wort als Eingabe akzeptiert werden?“) und/oder die Eingabe in irgendeiner Form verarbeiten (also analysieren, in andere Form übersetzen o.ä.).

Es gibt viele Beispiele für formale Sprachen bzw. Software, die damit umgeht:

  • Eingabefelder prüfen Mailadressen: Eine Eingabe wie „anna@mail.de“ soll akzeptiert, „annaQmail.de“ oder „anna@mailde“ aber sofort zurückgewiesen werden, weil das keine global gültigen Mailadressen sein können1 . Eine gültige Adresse ist hier ein „Wort“, die Menge aller gültigen Mailadressen eine „Sprache“ im oben genannten Sinne.
  • Webbrowser verarbeiten HTML: Der angelieferte HTML-Quelltext muss zuerst analysiert und interpretiert werden. Sind die Fragen „ist das korrektes HTML?“ und „was soll ange­zeigt werden?“ beantwortet, erzeugen sie schließlich eine bunte Bildschirm­dar­stel­lung.
  • Compiler übersetzen Programme: Sie nehmen den Quelltext eines Programms entgegen, prüfen auf syntaktische Korrektheit und übersetzen es in eine andere Form, die der Computer (mehr oder weniger direkt) ausführen kann.

Mit den formalen Sprachen untrennbar verbunden ist die zugehörige Theorie der Automaten2 , wobei Automat hier eher „Denkmodell“ bedeutet als „Maschine“. Es gibt unterschiedliche Klassen von Automaten, die einerseits mathematisch präzise beschrieben und untersucht wer­den; andererseits kann jeder Typ Automat jeweils einen bestimmten Typ Sprachen verarbei­ten. Weil man sie zudem leicht in Software implementieren kann, sind sie in der praktischen Informatik extrem nützlich.

In ihrer Kombination sind formale Sprachen und Automaten ein Grundpfeiler der Informatik. Der Abschnitt 3.3.5 des Bildungsplans für allgemein bildende Gymnasien in Baden-Württemberg enthält im Wesent­lichen reguläre und kontextfreie Sprachen und die dazu passenden Typen von Automaten:

Typ der Sprache bzw. Grammatik dazu passender Automatentyp Beispielsprache Hier behandelt
reguläre
BP: Items 9, 10
endliche Automaten
BP: 7, 10, 15
gültige Mailadressen ja
kontextfreie
BP: 13, 14
Kellerautomaten
BP: 13
Rechenausdrücke mit beliebig tief geschachtelten Klammern:
((2+a)*((3+x)*2)-1)/5
ja
kontextsensitive
BP: 14
Turingmaschinen
BP: nicht enthalten
XML, Java nein (nur als Kontrast zu kontextfreien)
rekursiv aufzählbare
BP: nicht enthalten
Turingmaschinen
BP: nicht enthalten
nein

 

1 LibreOffice (mit dem dieses Dokument entsteht) sieht offenbar auch das dritte Beispiel als gültige Adresse an – sie wird daher ohne Zutun des Autors in anderer Farbe gesetzt und mit einem Link auf ein Mailprogramm unterlegt.

2 Wichtige Fachbegriffe werden bei ihrem ersten Auftreten innerhalb dieses Skripts fett gesetzt.

 

Hintergrundinformationen: Herunterladen [odt][669 KB]

 

Weiter zu Alphabet, Wort, Sprache