Gramatyka bezkontekstowa

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Szablon:Dopracować Gramatyka bezkontekstowagramatyka formalna, w której wszystkie reguły wyprowadzania wyrażeń są postaci:

AΓ,

gdzie:

A – dowolny symbol nieterminalny, jego znaczenie nie zależy od kontekstu, w jakim występuje;
Γ – dowolny (być może pusty) ciąg symboli terminalnych i nieterminalnych.

Każdy język bezkontekstowy generowany jest przez pewną gramatykę bezkontekstową.

Formalna definicja

Gramatyką bezkontekstową nazywa się czwórkę uporządkowaną (T,N,P,S), gdzie:

  • T jest skończonym zbiorem symboli terminalnych,
  • N jest skończonym zbiorem symboli nieterminalnych,
  • P jest skończonym zbiorem reguł typu LR, gdzie LN oraz R(TN)*,
  • SN jest wyróżnionym elementem początkowym.

Przykłady

Przykład 1
Gramatyka ({a,b},{S},{SaSb|ϵ},S) generuje język {anbn:n}. Ten język nie jest regularny.
Przykład 2
Język {w:w{a,b}*w=wR}, który jest językiem wszystkich palindromów nad alfabetem {a,b}, może być wygenerowany przez następującą gramatykę:
({a,b},{S},{SaSa|bSb|a|b|ϵ},S).

Postaci normalne

Każdy język bezkontekstowy nie zawierający słowa pustego może być wyrażony za pomocą gramatyki w postaci normalnej Greibach oraz postaci normalnej Chomskiego.

Szablon:Języki formalne i gramatyki