Wiki: Mathe und Info

Unterrichtsmaterialien für Mathematik und Informatik

Benutzer-Werkzeuge

Webseiten-Werkzeuge


info:sek-ii:q3:sprachen:l2-grammatik

Lektion 2: Grammatiken

Ihr wisst bereits, was formale Sprachen sind. In dieser Lektion werdet ihr lernen, wie man mit Grammatiken Wörter einer Sprache konstruieren kann und welche Regeln Grundlage einer Grammatik sind.

Aufgabe 1: Grammatiken

Lies das Fachkonzept: Grammatik und beantworte folgende Fragen:

  • Aus welchen Bestandteilen besteht eine Grammatik?
  • Welche "Sonderregel" gilt für reguläre Grammatiken?
  • Was ist die Chomsky-Hierarchie?

Aufgabe 2: Syntaxdiagramme

Lies das Fachkonzept: Syntaxdiagramm und stelle im Anschluss daran die Grammatik für EMails aus dem Fachkonzept Grammatik als Syntax-Diagramm dar.

Aufgabe 3: Übungsaufgaben

Aufgabe: Grammatik für Bezeichner
Bezeichner = Buchstabe {Buchstabe | Ziffer}.
Ziffer = "0" | "1" | "2" | "..." | "9".
Buchstabe = "a" | "b" | "c" | "..." | "z".

Beantwortet in eurem Gruppendokument:

  1. Welche Nichtterminalsymbole und welche Terminalsymbole enthält die Grammatik?
  2. Gib ein Wort der Sprache an und ein Wort, das nicht zur Sprache gehört.
  3. Zeichne ein Syntaxdiagramm dazu (per Hand!). Kontrolliert euer Ergebnis mit dem EBNF-Tool.
Aufgabe: ABBA
Gegeben sei die Grammatik $G$ mit $N=\{X,C\}$, $T=\{a,b\}$ und $S=X$. Die Regeln $P$:
  • $X\to aCa$
  • $C\to\varepsilon|bbC$

Das Symbol $\varepsilon$ soll das leere Wort darstellen, C kann also durch "nichts" oder durch bbC ersetzt werden.

a) Zeichne mit dem EBNF-Tool ein Syntaxdiagramm.

b) Prüfe, ob die folgenden Wörter in der Grammatik abgeleitet werden können:

  • aa
  • abba
  • abbbba
  • abbba

Notiere die Begründungen, warum oder warum nicht, in eurem Gruppendokument.

Aufgabe: Binärzahlen
Gegeben sei die Grammatik $G$ mit $N=\{s_0,s_1,s_2\}$, $T=\{0,1\}$ und $S=s_0$. Das Symbol $\varepsilon$ soll das leere Wort darstellen. Die Regeln:
  • $s_0\to\varepsilon|0s_0|1s_1$
  • $s_1\to 0s_2|1s_0$
  • $s_2\to 0s_1|1s_2$

{
  s0 = [ "0" s0 | "1" s1 ].
  s1 = "0" s2 | "1" s0.
  s2 = "0" s1 | "1" s2.
}

1. Die Worte können als Binärzahlen interpretiert werden. Stelle fest, welche der Binärzahlen in der Grammatik ableitbar sind:

WortDezimalzahlableitbar?
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111


2. Erläutere im Gruppendokument die Ableitung am Beispiel 10101.

Aufgabe: Post

Entwickle eine Grammatik in EBNF für Postanschriften. Beachte die folgenden Aspekte:

  • Eine Postanschrift besteht aus einem Personenteil, gefolgt von einer Straße, gefolgt von der Stadt.
  • Der Personenteil besteht aus einem Titelteil und einem Namensteil, gefolgt von einem Zeilenende.
  • Der Titelteil besteht aus einem Titel (z.B. "Dr." oder "Prof.") oder ist leer.
  • Der Namensteil besteht aus einem Vornamensteil, einem Nachnamen oder aus einem Vornamensteil und wiederum aus einem Namensteil.
  • Der Vornamenteil besteht aus einem Vornamen oder einem Initial, auf den ein Punkt folgt.
  • Eine Straße besteht aus einem Straßenname, gefolgt von einer Hausnummer, gefolgt von einem Zeilenende.
  • Eine Stadt besteht aus einer Postleitzahl, gefolgt von einem Stadtnamen, gefolgt von einem Zeilenende.

Erstelle mit dem EBNF-Tool ein Syntax-Diagramm. Notiere den EBNF-Code und das Diagramm in eurem Gruppendokument.

Aufgabe: Biber-Perlenketten
Die Kinder der kreativen Biberdame Grace basteln Perlenketten. Sie haben verschiedene Holzperlen (quadratisch und kreisförmig), die sie rot oder blau einfärben können. So können sie beispielsweise die folgende Kette basteln:

Grace erklärt den Kindern, dass diese Kette die folgende Kettenbeschreibung hat:

Grace fertigt nun zwei Zeichnungen an, die "kette" und "teil" heißen. Sie möchte nur Ketten haben, deren Kettenbeschreibung man erhalten kann, wenn man den Pfeilen in den Zeichnungen folgt:

Die kleinen Biber basteln vier Ketten. Leider passt nur eine zu Graces Zeichnungen. Welche? Notiere die Begründungen im Gruppendokument.

Notiere dir im Gruppendokument auch die EBNF der Sprache.

info/sek-ii/q3/sprachen/l2-grammatik.txt · Zuletzt geändert: 2022-09-26 14:34 von christian.weber