Informatik

Formale Sprache: Alphabet, Wörter und Regeln

Formale Sprache: Alphabet, Wörter und Regeln
Formale Sprache: Alphabet, Wörter und Regeln
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Eine formale Sprache ist eine genau festgelegte Menge endlicher Wörter über einem Alphabet. Du kannst deshalb mit eindeutigen Regeln prüfen, ob eine Zeichenfolge zur Sprache gehört. Die Syntax beschreibt dabei den Aufbau; eine Semantik kann den gültigen Zeichenfolgen zusätzlich Bedeutung geben.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Vom Alphabet zur formalen Sprache

Stell dir einen Prüfer vor, der nur die Zeichen 0 und 1 akzeptiert. Diese erlaubten Zeichen bilden sein Alphabet.

Definition

Alphabet

Ein Alphabet $\Sigma$ ist eine endliche Menge erlaubter Symbole. Zum Beispiel gilt $\Sigma=\{0,1\}$.

Ein Wort über $\Sigma$ ist eine endliche Folge von Symbolen dieses Alphabets. 0, 101 und 1100 sind Wörter über $\{0,1\}$; 102 ist keines, weil 2 nicht zum Alphabet gehört.

$\Sigma^*$ bezeichnet die Menge aller endlichen Wörter über $\Sigma$, einschließlich des leeren Wortes. Eine formale Sprache wählt daraus bestimmte Wörter aus:

$$L\subseteq\Sigma^*$$

Beispiel

Über $\Sigma=\{0,1\}$ sei $L_0$ die Sprache aller nichtleeren Wörter, die auf 0 enden.

  • 0 gehört zu $L_0$.
  • 1010 gehört zu $L_0$.
  • 1011 gehört nicht zu $L_0$, weil das letzte Zeichen 1 ist.
  • 1020 gehört nicht einmal zu $\Sigma^*$, weil es das unerlaubte Zeichen 2 enthält.

Beim Prüfen gehst du also in zwei Schritten vor: Zuerst kontrollierst du die verwendeten Symbole, danach die Sprachregel.

Merke

Alphabet → mögliche Wörter → Auswahl durch eine Regel. Erst diese Auswahl ist die formale Sprache.

Teste dich
Frage 1 von 2LeichtWelche Aussage beschreibt eine formale Sprache korrekt?
Lösung: Sie ist eine Menge ausgewählter endlicher Wörter über einem Alphabet. — Das Alphabet legt die Symbole fest. Die Sprache legt fest, welche daraus gebildeten Wörter gelten.
Frage 2 von 2MittelFür $\Sigma=\{a,b\}$ enthält $L$ genau die Wörter, die mit a beginnen. Welches Wort gehört zu $L$?
Lösung: abbabb besteht nur aus a und b und erfüllt zusätzlich die Regel „beginnt mit a“.
Syntax und Semantik trennen

Ein Ausdruck kann korrekt aufgebaut sein, ohne in der gemeinten Situation sinnvoll zu sein. Dafür brauchst du zwei verschiedene Begriffe.

Definition

Syntax

Die Syntax umfasst die Regeln für den zulässigen Aufbau von Wörtern oder Ausdrücken. Eine Syntaxprüfung fragt: „Ist die Form erlaubt?“

Definition

Semantik

Die Semantik ordnet einem syntaktisch zulässigen Ausdruck eine Bedeutung zu. Sie fragt: „Was bedeutet der Ausdruck?“

Der Satz „Eine Blume kocht flüssige Uhren“ folgt einem möglichen deutschen Satzmuster, wirkt inhaltlich aber unsinnig. Das zeigt: Ein korrekter Aufbau garantiert noch keine sinnvolle Bedeutung.

Bei einer Programmiersprache prüft die Syntax beispielsweise, ob Zeichen und Bestandteile richtig angeordnet sind. Erst die Semantik legt fest, welches Verhalten eine gültige Anweisung bezeichnet.

Merke

Syntax prüft die Form. Semantik erklärt die Bedeutung.

Teste dich
Frage 1 von 1MittelEin Prüfprogramm meldet: „Die Zeichenfolge erfüllt alle Aufbauvorschriften.“ Was ist damit sicher festgestellt?
Lösung: Die Zeichenfolge ist syntaktisch zulässig. — Aufbauvorschriften gehören zur Syntax. Eine Bedeutung entsteht erst durch eine zusätzliche semantische Zuordnung.
Leeres Wort und leere Sprache unterscheiden

„Kein Zeichen“ und „kein Wort“ klingen ähnlich, sind mathematisch aber grundverschieden.

Definition

Leeres Wort

Das leere Wort $\varepsilon$ enthält null Symbole und hat die Länge $0$. Es ist trotzdem ein Wort.

Definition

Leere Sprache

Die leere Sprache $\varnothing$ enthält überhaupt kein Wort. Dagegen enthält $\{\varepsilon\}$ genau ein Wort, nämlich das leere Wort.

Daraus folgen drei verschiedene Fälle:

  • $\varepsilon$: ein Wort ohne Zeichen
  • $\{\varepsilon\}$: eine Sprache mit genau einem Wort
  • $\varnothing$: eine Sprache ohne Wörter
Beispiel

Hängst du das leere Wort an abba, bleibt das Wort unverändert:

$$abba\varepsilon=\varepsilon abba=abba$$

Mit einer leeren Sprache kannst du dagegen kein Wort auswählen und daher auch kein Ergebniswort bilden.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Das Wort ohne Symbole heißt . Es wird mit bezeichnet. Die Menge $\{\varepsilon\}$ enthält , während $\varnothing$ enthält.

Lösungen: Lücke 1: leeres Wort; Lücke 2: $\varepsilon$; Lücke 3: ein Wort; Lücke 4: kein Wort. Achte darauf, ob von einem einzelnen Wort oder von einer Menge von Wörtern die Rede ist: $\varepsilon$ ist ein Wort, $\{\varepsilon\}$ und $\varnothing$ sind Sprachen.
Wörter und Sprachen verketten

Bei der Konkatenation hängst du Zeichenfolgen ohne Zwischenraum aneinander. Die Reihenfolge ist entscheidend.

Für zwei Sprachen $L_1$ und $L_2$ enthält $L_1\circ L_2$ alle Wörter $uv$, bei denen $u$ aus $L_1$ und $v$ aus $L_2$ stammt:

$$L_1\circ L_2=\{uv\mid u\in L_1,\ v\in L_2\}$$

Beispiel

Gegeben sind $L_1=\{a,bb\}$ und $L_2=\{aa,b\}$. Jedes Wort aus $L_1$ wird mit jedem Wort aus $L_2$ verbunden:

  • a und aa ergeben aaa.
  • a und b ergeben ab.
  • bb und aa ergeben bbaa.
  • bb und b ergeben bbb.

Damit gilt:

$$L_1\circ L_2=\{aaa,ab,bbaa,bbb\}$$

Die zwei Auswahlmöglichkeiten aus $L_1$ und die zwei aus $L_2$ ergeben hier vier Paarungen.

Die Sprache $\{\varepsilon\}$ ist neutral, weil das leere Wort nichts hinzufügt:

$$L\circ\{\varepsilon\}=\{\varepsilon\}\circ L=L$$

Die leere Sprache ist dagegen absorbierend:

$$L\circ\varnothing=\varnothing\circ L=\varnothing$$

Gut zu wissen

Konkatenation ist im Allgemeinen nicht vertauschbar. Aus a gefolgt von b wird ab; in umgekehrter Reihenfolge entsteht ba.

Teste dich
Frage 1 von 2MittelEs gelten $L_1=\{a,b\}$ und $L_2=\{0\}$. Welche Konkatenation ist richtig?
Lösung: $L_1\circ L_2=\{a0,b0\}$ — Du verbindest jedes Wort der ersten Sprache mit jedem Wort der zweiten Sprache und behältst diese Reihenfolge bei.
Frage 2 von 2SchwerWas ergibt $L\circ\varnothing$ für eine beliebige Sprache $L$?
Lösung: $\varnothing$ — Die leere Sprache bietet kein Wort für eine Paarung. Deshalb kann kein Ergebniswort entstehen.
Potenzen und Kleene-Hülle verstehen

Sprachpotenzen beschreiben wiederholte Konkatenationen. Für jede Sprache gilt:

$$L^0=\{\varepsilon\}$$

Für $n\geq 0$ entsteht die nächste Potenz durch eine weitere Konkatenation mit $L$:

$$L^{n+1}=L^n\circ L$$

Beispiel

Für $L=\{a,b\}$ enthält $L^2$ alle Verkettungen aus zwei gewählten Wörtern:

$$L^2=\{aa,ab,ba,bb\}$$

Für die einelementige Sprache $K=\{ab\}$ gilt:

  • $K^0=\{\varepsilon\}$
  • $K^1=\{ab\}$
  • $K^2=\{abab\}$
  • $K^3=\{ababab\}$

Die Kleenesche Hülle $L^*$ vereinigt alle Potenzen ab der nullten:

$$L^*=\bigcup_{i\geq 0}L^i$$

Für $K=\{ab\}$ ist daher:

$$K^*=\{\varepsilon,ab,abab,ababab,\ldots\}$$

Der positive Abschluss $L^+$ beginnt dagegen mit $L^1$. Im Beispiel mit $K=\{ab\}$ enthält $K^+$ deshalb nicht $\varepsilon$.

Merke

$L^*$ enthält immer das leere Wort. Die Kleenesche Hülle muss aber nicht unendlich sein: Für $L=\varnothing$ gilt $L^*=\{\varepsilon\}$.

Teste dich
Frage 1 von 2LeichtWelches Wort gehört für jede Sprache $L$ sicher zu $L^*$?
Lösung: $\varepsilon$ — Die nullte Potenz ist stets $L^0=\{\varepsilon\}$ und gehört zur Vereinigung $L^*$.
Frage 2 von 2MittelFür $L=\{0,11\}$: Welches Wort gehört zu $L^2$?
Lösung: 011011 entsteht aus 0 gefolgt von 11. Die möglichen Wörter sind 00, 011, 110 und 1111.
Eine formale Sprache selbst beschreiben

Eine kleine formale Sprache kannst du in drei Schritten festlegen:

  1. Bestimme das Alphabet.
  2. Formuliere eine eindeutige Bildungsregel.
  3. Prüfe gültige und ungültige Grenzfälle.
Beispiel

Gesucht ist eine Sprache für Codes aus genau drei Symbolen. Jeder Code beginnt mit A; danach folgen genau zwei Binärziffern.

Alphabet:

$$\Sigma=\{A,0,1\}$$

Bildungsregel: Das erste Symbol ist A. An zweiter und dritter Stelle steht jeweils 0 oder 1.

Sprache:

$$L_A=\{A00,A01,A10,A11\}$$

Grenzfälle:

  • A10 ist gültig.
  • A1 ist zu kurz.
  • AA0 verwendet zwar nur Zeichen des Alphabets, verletzt aber die Stellenregel.
  • B10 enthält ein Zeichen außerhalb des Alphabets.

So trennt die Prüfung zwei mögliche Fehler: ein unerlaubtes Symbol und einen unerlaubten Aufbau.

Eine Sprache kann durch vollständige Aufzählung, eine mathematische Bedingung oder Regeln einer Grammatik beschrieben werden. Für die kleine Sprache $L_A$ ist die Aufzählung praktisch; bei einer unendlichen Sprache brauchst du eine endliche Regelbeschreibung.

Teste dich
Frage 1 von 2MittelWelche Beschreibung legt die Sprache $L_A$ vollständig fest?
Lösung: Genau drei Symbole; zuerst A, danach zweimal 0 oder 1. — Eine vollständige Regel muss sowohl die Länge als auch die erlaubten Symbole und ihre Positionen bestimmen.
Frage 2 von 2SchwerEine neue Sprache enthält genau vierstellige Wörter über $\{x,y\}$, die mit x beginnen und mit y enden. Welches Wort gehört dazu?
Lösung: xxyy — Prüfe nacheinander Alphabet, Länge, Anfang und Ende. xxyy erfüllt alle vier Bedingungen.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Formale Sprache
    • Alphabet: legt erlaubte Symbole fest
    • Wort: reiht endlich viele Symbole aneinander
    • Sprache: wählt Wörter aus $\Sigma^*$ aus
    • Syntax: prüft den Aufbau
    • Semantik: ordnet Bedeutung zu
    • Konkatenation: verbindet Wörter in fester Reihenfolge
    • Kleene-Hülle: sammelt beliebig viele Wiederholungen
Abschluss-Check
Teste dich
Frage 1 von 4LeichtWas unterscheidet ein Alphabet von einer formalen Sprache?
Lösung: Das Alphabet enthält Symbole; die Sprache enthält Wörter. — Aus Symbolen des Alphabets entstehen Wörter. Eine formale Sprache wählt bestimmte dieser Wörter aus.
Frage 2 von 4MittelÜber $\Sigma=\{a,b\}$ enthält $L$ genau die zweistelligen Wörter, die mit a beginnen. Welches Wort gehört zu $L$?
Lösung: abab verwendet nur erlaubte Symbole, hat Länge zwei und beginnt mit a.
Frage 3 von 4SchwerEs gelten $L_1=\{a,bb\}$ und $L_2=\{\varepsilon,b\}$. Welche Ergebnissprache ist $L_1\circ L_2$?
Lösung: $\{a,ab,bb,bbb\}$ — Verknüpfe jedes Wort aus $L_1$ mit beiden Wörtern aus $L_2$: a gefolgt von $\varepsilon$ ergibt a, a gefolgt von b ergibt ab, bb gefolgt von $\varepsilon$ ergibt bb und bb gefolgt von b ergibt bbb.
Frage 4 von 4SchwerEin Prüfer bestätigt nur, dass ein Ausdruck alle Bildungsregeln erfüllt. Welche Schlussfolgerung ist zulässig?
Lösung: Der Ausdruck ist syntaktisch korrekt; über seine Bedeutung ist damit noch nichts entschieden. — Syntax und Semantik sind getrennte Ebenen. Erst eine zusätzliche Bedeutungszuordnung beantwortet die semantische Frage.

Passend dazu