Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Conclusão
 
 
Acadêmico(a): Cleison Vander Ambrosi
Título: Transformação de Gramáticas Livres do Contexto para Expressões Regulares Estendidas
 
Conclusão:
Este trabalho atingiu o objetivo proposto, o qual era a transformação de uma linguagem livre do contexto em uma expressão regular estendida. Verificou-se durante o desenvolvimento, que para tal transformação, era necessário retirar todos os tipos de recursividade (auto-embutidas e não-auto-embutidas), o que inicialmente não foi previsto, mas teve que ser realizado para cumprir com os objetivos. Ainda, informações para retirada da recursividade auto-embutida, foi somente encontrada em [SIL2000b], sendo que este documento ainda está em fase de elaboração e alguns problemas foram encontrados, os quais foram solucionados juntamente com o autor. Para atingir o objetivo de transformar uma linguagem livre do contexto para uma expressão regular foram introduzidos dois novos operadores de iteração (‘~’ e ‘ ” ’), modificando suas características originais e tornando-a estendida. Foi utilizado o algoritmo do desmonte para transformar a expressão regular estendida em um grafo, a partir do qual foi feito a transformação para um autômato finito determinístico. Frisa-se que esta transformação para autômato finito determinístico não leva em consideração ainda os novos dois operadores de iteração introduzidos na expressão regular (estendida). A falta de tal informação impossibilita a transformação do autômato finito determinístico em um programa de computador de forma automática. Para as duas classificações de linguagem (regulares e livres do contexto) obtém-se duas notações diferentes para representá-las. Com este trabalho é proposto uma única notação para representar os dois tipos de linguagem. O protótipo pode servir como ferramenta para fazer as normalizações das estruturas sintáticas (recursividade, fatoração). Essas estruturas sintáticas são usadas principalmente para definições de compiladores e essas definições são normalizadas para torná-las implementáveis.