OSA Baden-Württemberg
BW Quadrat Logo
× Die Beispielaufgaben sollten an einem PC bearbeitet werden.

Informatik – Formale Sprachen

In der (theoretischen) Informatik werden sogenannte Formale Sprachen verwendet. Hierbei abstrahieren wir von konkreten Programmiersprachen wie FORTRAN, C++ oder Java und gelangen so zu Regeln für eine (mathematisch) präzise Beschreibung des Umgangs mit Zeichenketten.


Das Quellen- und Literaturverzeichnis zu dieser Seite finden Sie hier.

Aufgabe 1 von 1

KONTEXTFREIE GRAMMATIK

Abb. 1: Die Basis von Programmiersprachen: Kontextfreie Grammatik
Foto: geralt / Pixabay Licence / Quelle: Pixabay

Bei dieser Aufgabe stellen wir Ihnen ein einfaches Beispiel für eine sogenannte kontextfreie Grammatik vor. Kontextfreie Grammatiken sind wichtig z. B. bei der Beschreibung von Programmiersprachen.

Die Aufgabe: Max entdeckt in seinem Kaktus eine merkwürdige Art Würmer. Sie bestehen aus roten, grünen und weißen Segmenten – Max schreibt die Segmente eines Wurms von vorne (die Würmer haben eine erkennbare Schnauze) nach hinten auf mit den Abkürzungen r (rot), g (grün) und w (weiß), etwa so: rwggr.

Dabei beobachtet er, dass ein Wurm wachsen kann, indem aus einem weißen Segment vorne ein rotes und hinten ein grünes herauswächst, z. B. wächst grgwr zu grgrwgr.
Eine genauere Betrachtung zeigt, dass das Wachstum immer passiert, indem ein weißes Segment durch eine Folge von Segmenten ersetzt wird – das eben beschriebene Wachstum notiert Max als w → rwg und er entdeckt, dass auch noch drei weitere Wachstumsarten vorkommen. Insgesamt sind es folgende:

1.  w → ww
2.  w → rwg
3.  w → gwr
4.  w → gr

Frisch geschlüpfte Würmer bestehen nur aus einem weißen Segment. Bei einem Wurm mit mehreren weißen Segmenten können diese unabhängig voneinander wachsen. Ein Wurm, der kein weißes Segment mehr hat, ist offensichtlich ausgewachsen. Der Wurm rgrggr könnte z. B. so gewachsen sein: w → ww → wgr → rwggr → rgrggr.

Max möchte eine komplette Sammlung aller möglichen Färbungen ausgewachsener Würmer mit genau vier Segmenten.

Welche möglichen Arten von diesen Würmern gibt es? (Tipp: Versuchen Sie lieber herauszufinden, welche Möglichkeiten es gibt, als für jede gegebene Variante zu überprüfen, ob sie möglich wäre.)

Bitte
auswählen

rrrr

rrrg

rrgr

rrgg

rgrr

rgrg

rggr

rggg

grrr

grrg

grgr

grgg

ggrr

ggrg

gggr

gggg

Die richtige Antwort lautet: Es gibt drei ausgewachsene Arten von Würmern, die genau vier Segmente haben: rgrg, grgr und ggrr.

  1. rgrg lässt sich herleiten als: w → rwg → rgrg. Im ersten Schritt wird Regel 2 angewendet, danach wird das mittlere weiße Segment nach Regel 4 durch ein gr ersetzt.
  2. grgr lässt sich herleiten aus: w → ww → grw → grgr. Im ersten Schritt werden aus einem weißen Segment zwei (Regel 1), danach wird das erste w durch ein gr ersetzt und danach das zweite w (beides nach Regel 4).
  3. ggrr lässt sich herleiten als: w → gwr → ggrr. Im ersten Schritt wird Regel 3 angewendet, danach wird wieder das mittlere Segment nach Regel 4 durch ein gr ersetzt.

Weitere Würmer mit vier Segmenten kann es nicht geben.