[the_ad id="296445"]
Dzisiaj jest 10 stycznia 2025 r.
Chcę dodać własny artykuł
[the_ad id="295880"]

Postać normalna Greibach

Postać normalna Greibach

Postać normalna Greibach (GNF) to specyficzna forma gramatyki bezkontekstowej. W tej formie reguły mają postać:

A \rightarrow aY_1…Y_m,

gdzie a jest symbolem terminalnym, a Y_1…Y_m to ciąg symboli nieterminalnych (może być pusty). Wyjątkową regułą jest S \rightarrow \varepsilon, generująca wyraz pusty, która jest dozwolona, jeżeli symbol startowy S nie występuje po prawej stronie żadnej produkcji.

Konstrukcja postaci normalnej Greibach

Aby przekształcić gramatykę bezkontekstową w GNF, zakładamy, że znajduje się ona w postaci normalnej Chomsky’ego. Proces ten można zrealizować w dwóch głównych etapach:

1. Podstawienie za pierwszy symbol po prawej

Wybieramy regułę, w której pierwszy symbol po prawej stronie jest nieterminalny, nazwijmy go A_i. Zastępujemy go nowymi regułami, które odpowiadają wszystkim regułom z A_i po lewej stronie. Przykładowo, dla reguły A_1 \rightarrow A_2A_3, jeśli A_2 \rightarrow a, to zamieniamy A_1 na odpowiednie reguły.

2. Zastąpienie reguł lewostronnie rekursywnych

Reguły lewostronnie rekursywne to te, gdzie pierwszy symbol po prawej stronie jest taki sam jak po lewej. Wprowadzamy nowy symbol nieterminalny B_i, tworząc dwie produkcje z reguł rekursywnych, a następnie usuwamy pierwotne reguły rekursywne. Przykład:

  • A_2 \rightarrow A_2A_3 | a staje się B_2 \rightarrow A_3B_2 | aB_2 oraz A_2 \rightarrow a.

Kolejność wykonywania operacji

Przekształcanie gramatyki w GNF wykonujemy w dwóch etapach. Pierwszy etap zapewnia, że reguły mają pierwszy symbol po prawej stronie jako terminalny bądź nieterminalny o wyższym indeksie. W drugim etapie przetwarzamy reguły, zaczynając od tych z najwyższym indeksem, aby upewnić się, że prawa strona każdej reguły zaczyna się od symbolu terminalnego.

W rezultacie, po zastosowaniu obu etapów, gramatyka osiąga postać normalną Greibach, co umożliwia jej efektywne wykorzystanie w różnych zastosowaniach w teorii języków formalnych oraz automatyce.

[the_ad id="295962"]