Grammaire régulière

En informatique théorique, en théorie des langages, une grammaire régulière, rationnelle ou à états finis est une grammaire hors-contexte particulière qui décrit un langage régulier. Les grammaires régulières donnent donc une autre possibilité que les expressions rationnelles et les automates finis pour décrire un langage régulier.

Définition

Une grammaire régulière peut être « à gauche » ou « à droite ».

  • Une grammaire régulière à gauche est un ensemble de règles de la forme :
X Y a {\displaystyle X\rightarrow Ya}
X a {\displaystyle X\rightarrow a}
X ϵ {\displaystyle X\rightarrow \epsilon }

X {\displaystyle X} , Y {\displaystyle Y} sont des symboles non-terminaux et a {\displaystyle a} un symbole terminal.

  • Une grammaire régulière à droite est un ensemble de règles de la forme :
X a Y {\displaystyle X\rightarrow aY}
X a {\displaystyle X\rightarrow a}
X ϵ {\displaystyle X\rightarrow \epsilon }

X {\displaystyle X} , Y {\displaystyle Y} sont des symboles non-terminaux et a {\displaystyle a} un symbole terminal. De plus, comme pour toutes grammaires, on considère un non-terminal particulier appelé axiome et noté S {\displaystyle S} .

Exemple

La grammaire suivante est une grammaire régulière à droite :

S d A r B m C ϵ {\displaystyle S\rightarrow dA\mid rB\mid mC\mid \epsilon }
A o S {\displaystyle A\rightarrow oS}
B e S {\displaystyle B\rightarrow eS}
C i S {\displaystyle C\rightarrow iS}

Avec la grammaire précédente, on peut engendrer le mot d o d o m i {\displaystyle dodomi} . En effet : S d A d o S d o d A d o d o S d o d o m C d o d o m i S d o d o m i {\displaystyle S\rightarrow dA\rightarrow doS\rightarrow dodA\rightarrow dodoS\rightarrow dodomC\rightarrow dodomiS\rightarrow dodomi} .

Équivalence entre automates finis et grammaires régulières

On peut transformer de manière effective une grammaire régulière à droite en automate fini déterministe et vice versa. Les non-terminaux correspondent aux états de l'automate.

Exemple

Considérons la grammaire ci-dessus. L'automate correspondant est le suivant :

La suite de dérivations S d A d o S d o d A d o d o S d o d o m C d o d o m i S d o d o m i {\displaystyle S\rightarrow dA\rightarrow doS\rightarrow dodA\rightarrow dodoS\rightarrow dodomC\rightarrow dodomiS\rightarrow dodomi} correspond à la lecture du mot d o d o m i {\displaystyle dodomi} dans l'automate où on passe successivement dans les états : S, A, S, A, S, C, S.

Définition formelle

Soit une grammaire régulière à droite G = { N , Σ , P , S } {\displaystyle G=\{N,\Sigma ,P,S\}} , alors l'automate A = { Q , Σ , δ , Q 0 , Q T } {\displaystyle A=\{Q,\Sigma ',\delta ,Q_{0},Q_{T}\}} équivalent à G est défini tel que:

  • Q = N { q t } {\displaystyle Q=N\cup \{q_{t}\}} avec Q {\displaystyle Q} l'ensemble des états et q t {\displaystyle q_{t}} un état puits terminal,
  • Σ = Σ {\displaystyle \Sigma '=\Sigma } avec Σ {\displaystyle \Sigma '} l'ensemble des symboles terminaux
  • Q 0 = S {\displaystyle Q_{0}=S} avec Q 0 {\displaystyle Q_{0}} l'état initial
  • δ Q × Σ Q {\displaystyle \delta \in Q\times \Sigma \rightarrow Q} est la fonction de transition telle que, à la lecture d'un terminal x {\displaystyle x} à partir d'un état q i {\displaystyle q_{i}} vers un autre état q f = δ ( q i , x ) {\displaystyle q_{f}=\delta (q_{i},x)} .

La lecture de P {\displaystyle P} permet de construire δ {\displaystyle \delta } . Pour chaque P i P {\displaystyle Pi\in P} :

  • Si P i = X a Y {\displaystyle P_{i}=X\rightarrow aY} alors on a δ ( X , a ) = Y {\displaystyle \delta (X,a)=Y}
  • Si P i = X a {\displaystyle P_{i}=X\rightarrow a} alors on a δ ( X , a ) = q t {\displaystyle \delta (X,a)=q_{t}}
  • Si P i = X ϵ {\displaystyle P_{i}=X\rightarrow \epsilon } alors on a X Q T {\displaystyle X\in Q_{T}} , Q T {\displaystyle Q_{T}} L'ensemble des états terminaux.

Le même type de jeu de règles peut être établi pour une grammaire régulière à gauche.

Liens externes

  • Cours sur les grammaires régulières (avec introduction sur les grammaires en général).
v · m
Théorie des automates, des langages formels et des grammaires formelles
Hiérarchie de ChomskyGrammaireLangageAutomate

Type-0

Grammaire sans restriction

Machine de Turing
Machine de Turing qui s'arrête toujours

Type-1

Type-2

Type-3

Grammaire régulière ou grammaire rationnelle

Chaque classe de langages est strictement contenue dans la classe immédiatement au-dessus d'elle.
Chaque automate et chaque grammaire d'une classe ont un équivalent dans la classe immédiatement au-dessus
.
  • icône décorative Portail des mathématiques