Theoretische und technische Informatik - ganz praktisch
Herzlich willkommen auf der Question/Answer-Plattform zu Grundlagen der Informatik II. Wir wünschen Ihnen viel Spaß beim Lernen und Diskutieren!
Loggen Sie sich mit Ihrem KIT-Account (u...) ein, um loszulegen!
Beachten Sie auch diese Informationen zum Schnelleinstieg.
(Nicht-KIT-Studierende beachten bitte diese Informationen.)

Schöne Ferien!
 

 

Warum gibt es einen Unterschied in den jeweiligen Beziehungen zwischen Grammatiken und Sprachen?

+2 Punkte
149 Aufrufe

Wieso gilt die Beziehung: Typ-3-Grammatik ist eine Typ-2-Grammatik und Typ-1-Grammatik ist eine Typ-0-Grammatik auf diese Weise,

bei Sprachen jedoch durchgängig: Typ-3-Sprache ist Typ-2-Sprache ist Typ-1-Sprache ist Typ-0-Sprache?
 
Ich weiß: Eine Grammatik definiert eine Sprache durch L(G). Die Sprache L enthält Wörter, die durch die Grammatik erzeugt werden.
Gefragt 26, Dez 2015 in MON-AB von utdtz utdtz Eins-Komma-Null-Anwärter(in) (3,110 Punkte)  

Eine Antwort

+4 Punkte
 
Beste Antwort
Sie haben das richtig beschrieben. Für Sprachen gilt durchgehend:
$$L_3 \subseteq L_2 \subseteq  L_1 \subseteq L_0$$
Bei Grammatiken gilt allerdings nur (bspw.):
$$\mbox{rechtslineare} \subseteq \mbox{kontextfreie} \subseteq \mbox{allgemeine}$$
sowie
$$\mbox{kontextsensitive $=$ monotone} \subseteq \mbox{allgemeine}$$
Das liegt daran, dass kontextsensitive bzw. monotone Regeln genau eine Restriktion haben, die kontextfreie Grammatiken nicht haben: bei beiden darf ein Wort während der Ableitung nicht kürzer werden. Bei kontextfreien Grammatiken sind Regeln der Form
$$A \rightarrow \lambda$$
uneingeschränkt erlaubt, was einer Verkürzung des Wortes entspricht. Bei kontextsensitiven oder monotonen Grammatiken ist dagegen nur eine einzige Regel
$$S \rightarrow \lambda$$
erlaubt, und auch nur, wenn $S$ auf keiner rechten Seite vorkommt. Damit ist klar, dass es kontextfreie Grammatiken gibt, die nicht kontextsensitiv oder monoton sind.

ABER: Trotzdem sind kontextsensitive und monotone Grammatiken wesentlich ausdrucksstärker als kontextfreie. Insbesondere kann also jede kontextfreie Sprache durch eine kontextsensitive oder monotone Grammatik definiert werden. (Man muss allerdings unter Umständen eine neue Grammatik aufstellen, wenn man für eine kontextfreie Grammatik eine äquivalente monotone bzw. kontextsensitive Grammatik erhalten will. Bei rechtslinearen Grammatiken gilt dagegen, dass sie automatisch auch kontextfrei sind.) Deshalb gilt die Hierarchie bei den Sprachen durchgehend, bei den Grammatiken aber nicht.

Eine kontextfreie Grammatik kann monoton (UND kontextsensitiv) gemacht werden, indem sie lambda-frei gemacht wird. Siehe erster Schritt bei der Erzeugung der Chomsky-Normalform. Sie können sich das auch im XWizard anschauen, bspw. bei folgendem Skript:

http://www.xwizard.de:8080/Wizz?template=ID-10086

Klicken Sie auf "epsilon-frei", um die verkürzende Regel zu entfernen.
Beantwortet 26, Dez 2015 von Lukas König Dozent (10,065,100 Punkte)  
Bearbeitet 31, Jan 2016 von Lukas König
Tipp: Wenn Ihnen diese Antwort hilft, dann klicken Sie den Stern an bzw. den Pfeil nach oben, der einem "Up-Vote" entspricht. Auch Fragen, die Sie für wichtig halten, können Sie so bewerten. Das hilft Ihren Kommilitonen beim Zurechtfinden in den Fragen. Siehe auch diese Erklärung: http://info2.aifb.kit.edu/qa/index.php?qa=75&qa_1=wie-nutze-ich-das-q2a-system
...