Confira este link . Esta é uma versão mais simples de uma prova de Chomsky de que as gramáticas NSE representam idiomas regulares. Felizmente, a técnica de prova ilustra como construir uma gramática esquerda-regular a partir de uma determinada gramática NSE. Aqui está a minha explicação:
- Para cada um dos pares (v_1, v_2) de elementos de V , decidir se v_1 \ le v_2 com base na definição dada: v_1 \ le v_2 se v_2 * : = V ^ * v_1 V ^ * .|V|(|V|+1)/2(v1,v2)Vv1≤v2v1≤v2v2∗:=V∗v1V∗
- Construa classes de equivalência de modo que, se e , e estiverem na mesma classe de equivalência. Será uma partição de todos os elementos de em uma ou mais classes de equivalência.v1≤v2v2≤v1v1v2V
- Agora, para cada par de classes de equivalência de conforme descrito acima, determine se verificando se em em .(VE1,VE2)VVE1≤VE2v1VE1≤v2VE2
- A construção define correspondente às classes de equivalência modo que, se , é um subconjunto de . Cada também deve conter o jogo do alfabeto . Você terá um para cada , e cada conterá variáveis nas classes de equivalência "inferiores a" o correspondente , além de todos os símbolos do alfabeto.UEVEVEi≤VEkVEiUEkUEkEUEVEUEVE
- Determine para cada variável seguinte forma: é o conjunto de todas as produções em cujo lado esquerdo pertence à classe de equivalência que contém a variável .P(v)vP(v)Pv
- Para cada variável , construir uma gramática do seguinte modo: , onde é a classe de equivalência contendo e o é aquela correspondente à .vG(v)=(VE∪UE,UE,P(v),v)VEvUEVE
- Os autores provaram um lema que afirma que é uma gramática linear. A partir disso, podemos escrever expressões regulares sobre para cada variável . Note-se que para a correspondente aos "menor" símbolos, esta expressão regular conterá apenas do alfabeto originais .G(v)UEvUEVEE
- Substitua iterativamente expressões regulares que contêm apenas símbolos do alfabeto em expressões regulares mais complicadas obtidas na etapa 7. Eventualmente, você terá uma expressão regular correspondente ao idioma gerado a partir do símbolo inicial original , e essa expressão regular conterá apenas símbolos do alfabeto original alfabeto.S
- Agora você tem uma expressão regular para a gramática NSE e pode obter um DFA mínimo usando o teorema de Kleene, a construção do subconjunto e um algoritmo de minimização do DFA.
Se você quiser um exemplo, posso tentar fornecer um mais tarde. Tente fazer alguns você mesmo, leia o artigo (é breve) e poderemos falar sobre complexidade mais tarde.