Conversão entre ER e GR
Last updated
Last updated
É suficiente obter a GR para as ER primitivas e aplicar as operações regulares sobre a GR
A GR para a ER a, qualquer que seja o a, é dada por:
S -> a
Vamos exemplificar com a ER e = (a jb)*a
Primeiro definimos regras para os símbolos terminais:
S1 -> a
S2 -> b
Para reconhecer (a | b) temos (S = S3):
S3 -> S1 | S2
S1 -> a
S2 -> b
Para reconhecer (a | b)* temos (S = S3):
Por fim para reconhecer a ER (a | b)*a temos (S = S4):
Seja G1 = (T1;N1;S1;P1) uma gramática regular qualquer.
Uma ER que represente a mesma linguagem que a gramática G pode ser obtida por um processo de transformação de equivalência:
Converte-se a gramática G no conjunto de triplos seguinte:
Removem-se, por transformações de equivalência, um a um, todos os símbolos de N, até se obter um único triplo da forma:
Remoção dos símbolos de N:
Vamos exemplificar com a seguinte GR: