Kurs:Wirtschaftsinformatik WS09 10 Modelle der Informatik/Uebungsblaetter/Uebung1+2 WS2006

Aus Wikiversity

Übungsblatt 1 & 2[Bearbeiten]

Aufgabe 1: Begriffe und Definitionen[Bearbeiten]

1. Definieren Sie die Begriffe Alphabet, Wort und Sprache! (1-2)

  • Alphabet: eine Menge von Zeichen (Symbolen, Buchstaben)
  • Wort: endliche Zeichenkette von Symbolen eines Alphabets
w = a1, a2, a3, …, ak (ein Wort der Länge k)
leeres Wort = ε (Länge 0)
  • = Menge aller Worte inklusive ε
  • = Menge aller nicht-leeren Worte
  • Sprache: Teilmenge von

2. Nennen und erläutern Sie die Bestandteile einer Grammatik! (1-8)

Eine Sprache L(G) wird definiert durch eine Grammatik G = (N, T, P, S), wobei gilt:

  • N sind die nichtterminalen Symbole (Variable),
  • T sind die terminalen Symbole (Terminale), wobei T N = ∅,
  • P sind die Produktionsregeln der Form α β, wobei

α ∈ , β ∈ (N T)*,

  • S ∈ N ist das Startsymbol, ein spezielles nichtterminales Symbol

3. Wie stehen die Begriffe Grammatik und Sprache miteinander in Beziehung? (1-7)[Bearbeiten]

Eine Grammatik ist ein System zur Ableitung von Worten einer Sprache.

4. Was beschreibt die Chomsky-Hierarchie? (1-15ff)[Bearbeiten]

Die Chomsky-Hierarchie beschreibt eine Hierarchie von vier Grammatiktypen zur Erzeugung von formalen Sprachen:

  • Typ 0-Sprache (rekursiv aufzählbar): keine Einschränkungen bezüglich der Produktion
  • Typ 1-Sprache (kontextsensitiv): auf der linken Seite vom Produktionspfeil sind Terminal- und Nichtterminalsymbole erlaubt

α1Aα2 α1βα2 , wobei A ∈ N, α1, α2 ∈ ( N T )*, ß ∈

  • Typ 2-Sprache (kontextfrei): auf der linken Seite vom Produktionspfeil ist nur ein Nichtterminalsymbol erlaubt

A 􀃆 β, wobei A ∈ N, β ∈

  • Typ 3-Sprache (regulär): analog zu Typ2, jedoch dürfen Worte entweder nur von links nach rechts

(rechtsregulär) oder nur von rechts nach links (linksregulär) erzeugt werden

A aB oder A a, wobei A, B ∈ N und a ∈ T

5. Worin unterscheiden sich kontextfreie und kontextsensitive Grammatiken ?[Bearbeiten]

Der Unterschied zwischen diesen beiden Grammatiken besteht darin, dass bei einer kontextfreien Grammatik auf der linken Seite vom Produktionspfeil nur ein nichtterminales Symbol erlaubt ist, während bei einer kontextsensitiven Grammatik ein oder mehrere nichtterminale und terminale Symbole erlaubt sind.

Aufgabe 2: Grammatiken[Bearbeiten]

Gegeben sei folgende Grammatik mit dem Startsymbol S:

  • N = {S, A, B}
  • T = {a, b, c}
  • P = {S abc, S aAbc, Ab bA, Ac Bbcc, bB Bb, aB aaA, aB aa}

1. Welchen Typ hat die Grammatik bzgl. der Chomsky-Hierarchie ?[Bearbeiten]

Die Grammatik ist kontextsensitiv, da auf der linken Seite der Produktionsregeln sowohl Zeichen aus N und aus T vorkommen.

2. Zeigen Sie, dass die von dieser Grammatik erzeugte Sprache gegeben ist durch die Sprache[Bearbeiten]

L(G) = { | n>0 } = {abc, aabbcc, aaabbbccc, …}!

  • S abc
  • S aAbc abAc abBbcc aBbbcc aabbcc aaAbbcc
) analoger Aufbau, Rekursion)

Aufgabe 3: Grammatiken[Bearbeiten]

Gegeben sei der folgende Auszug aus einer Grammatik:

<Expression> <number>
<Expression> ( <Expression> )
<Expression> <Expression> + <Expression>
<Expression> <Expression> - <Expression>
<Expression> <Expression> * <Expression>
<Expression> <Expression> / <Expression>
<number> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

1. Wie lautet die Definition der entsprechenden Grammatik, welchen Typ hat sie ?[Bearbeiten]

G = (N, T, P, S)
N = {<Expression>, <number>}
T = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +. -, *, /, (, )}
S = <Expression>
P = siehe oben

Es handelt sich um eine Typ 2-Grammatik (kontextfrei), da auf der linken Seite der Produktionsreageln nur ein Nicht-Terminalsymbol vorhanden ist.

== 2. Prüfen Sie, ob folgende Worte Elemente der durch die Grammatik beschriebenen Sprache sind: (1+2)*3, (1-2)+(4-13), -1, (-1)*(+1), 3-1++2 ==

  • (1+2)*3:
S <Expression>
<Expression> * <Expression>
( <Expression> ) * <Expression>
( <Expression> + <Expression>) * <Expression>
( <number> + <number> ) * <number>
(1+2)*3
  • (1-2)+(4-13):
keine zweistelligen Zahlen ableitbar
  • -1
keine negativen Zahlen ableitbar
  • (-1)*(+1)
keine negativen Zahlen ableitbar,
+-Operator ist in dieser Grammatik ein binärer Operator
  • 3-1++2
kein doppeltes-Pluszeichen ableitbar