Regulární gramatika je formální gramatika typu 3 v Chomského hierarchii , regulární gramatiky definují přesně všechny regulární jazyky , a jsou proto ekvivalentní stavovým automatům a regulárním výrazům . Regulární gramatiky jsou podmnožinou bezkontextových gramatik .
Regulární gramatika může být specifikována sadou pravidel jako levá nebo pravá regulární gramatika.
Pravá regulární gramatika nebo pravá lineární gramatika - všechna pravidla mohou být v jedné z následujících forem:
levá běžná gramatika nebo levá lineární gramatika - všechna pravidla mohou být v jedné z následujících forem:
kde
Třídy pravých a levých regulárních gramatik jsou ekvivalentní – každá samostatně postačí k definování všech regulárních jazyků. Jakákoli běžná gramatika může být převedena zleva doprava a naopak.
Alternativní názvy jsou způsobeny skutečností, že jsou podtřídami obecnější třídy lineárních gramatik .
Správná regulární gramatika G daná vztahem N = {S, A}, Σ = {a, b, c}, P se skládá z následujících pravidel:
S → as S→bA A→ε A→cAa S je startovací symbol. Tato gramatika popisuje stejný jazyk jako regulární výraz a*bc*.
Podstatné je, že pravidla musí být buď pouze levá-běžná, nebo pouze pravá-běžná. Kombinace obojího není povolena. Například bezkontextový řetězcový jazyk tvaru , kde není regulární, ale je dán gramatikou G , kde N = {S, A}, Σ = {a, b}, P se skládá z
S→aA A→Sb S→εa S je startovací symbol. Tato gramatika obsahuje pravidla levá-regulární i pravá-regulární, a proto není regulární.
Formální jazyky a formální gramatiky | |
---|---|
Obecné pojmy | |
Typ 0 | |
Typ 1 |
|
Typ 2 | |
Typ 3 | |
rozebrat |