Gramatica obișnuită

O gramatică obișnuită  este o gramatică formală de tip 3 în ierarhia Chomsky , gramaticile regulate definesc exact toate limbajele regulate și, prin urmare, sunt echivalente cu mașinile de stări și cu expresiile regulate . Gramaticile obișnuite sunt un subset al gramaticilor fără context .

Stabilirea unui set de reguli

O gramatică obișnuită poate fi specificată printr-un set de reguli ca o gramatică normală stânga sau dreapta.

Gramatica obișnuită dreaptă sau gramatică liniară dreapta - toate regulile pot fi în una dintre următoarele forme:

  1. A → a
  2. A → aB
  3. A →ε

gramatică obișnuită stângă sau gramatică liniară stângă - toate regulile pot fi în una dintre următoarele forme:

  1. A → a
  2. A → Ba
  3. A →ε

Unde

Clasele de gramatici regulate dreapta și stânga sunt echivalente - fiecare luată separat este suficientă pentru a defini toate limbajele obișnuite. Orice gramatică obișnuită poate fi convertită de la stânga la dreapta și invers.

Denumirile alternative se datorează faptului că sunt subclase ale clasei mai generale de gramatici liniare .

Exemplu

Gramatica regulată dreaptă G dată de N = {S, A}, Σ = {a, b, c}, P constă din următoarele reguli:

S → aS S→bA A→ε A→cA

iar S este simbolul de început. Această gramatică descrie aceeași limbă ca și expresia regulată a*bc*.

Limitat

Este esențial ca regulile să fie fie doar stânga-regulate, fie doar dreapta-regulate. Nu este permisă o combinație a ambelor. De exemplu, un limbaj cu șiruri fără context de forma , unde nu este regulat, dar este dat de o gramatică G , unde N = {S, A}, Σ = {a, b}, P constă din

S→aA A→Sb S→ε

iar S este simbolul de început. Această gramatică conține atât reguli stânga-regular, cât și dreapta-regular și, prin urmare, nu este obișnuită.

Vezi și

Literatură