(benannt nach Sheila Greibach)
Ziel: Jede Regel hat die Form A - > a W mit A aus N, a aus T und W aus N*
(-Regeln ausgenommen)
Voraussetzung: Für jede kontextfreie Grammatik gibt es eine äquivalente Grammatik in GNF.
Zur intuitiven Annäherung versuchen Sie, die folgenden Fragen zu beantworten:
|
Gegeben eine Regel S -> b. Was ist zu tun?
- Gar nichts, die Regel ist bereits im GNF-Format.
- a muss durch A ersetzt werden
- In allen Regeln, in denen A als linke Regelseite vorkommt, muss es durch a ersetzt werden
|
Antwort
|
Gegeben eine Regel X-> x y. Was ist zu tun?
- Gar nichts, die Regel ist bereits im GNF-Format.
- y muss zu einem Nichtterminal z.B. Y verändert werden; die modifizierte Regel heißt dann X -> x Y
- x muss zu einem Nichtterminal z.B. X verändert werden; die modifizierte Regel heißt dann X -> X y
|
Antwort
|
Gegeben eine Grammatik mit den Regeln S -> a A, A -> S A und A -> b c d. Was ist zu tun?
- Gar nichts, alle Regeln sind bereits im GNF-Format.
- Die zweite Regel ist nicht korrekt: S muss durch a A (aus der ersten Regel) ersetzt werden: A -> a A A.
- Zweite und dritte Regel sind noch nicht korrekt. Für c und d muss es neue Nichtterminale und Regeln C -> c/ D->d geben.
In der zweiten Regel ersetzt man S durch a A (aus der ersten Regel): A -> a A A.
|
Antwort
|
Gegeben die Regeln Liste -> * Eintrag Liste und Eintrag -> foo (mit Liste und Eintrag aus N, * und foo aus T). Was ist zu tun?
- Gar nichts, die Regeln sind bereits im GNF-Format.
- foo muss Eintrag in der ersten Regel ersetzen: Liste -> * foo Liste.
- Für 'Eintrag Liste' muss ich ein neues Nichtterminal z.B. EiLi einführen. Anstelle der alten Regel gibt es zwei neue Regeln:
Liste -> * EiLi und EiLi -> Eintrag Liste.
|
Antwort
|