120 likes | 298 Views
Deyvisson, Rafael M.P., Renato, Robson C.F., Rodolfo. Análise Sintática. Análise Sintática. Analisador sintático = Parser Erro sintático Análise hierárquica Hierarquia de Chomsky Linguagens tipo 3 e 2 Linguagem livre de contexto Gramática livre de contexto
E N D
Deyvisson, Rafael M.P., Renato, Robson C.F., Rodolfo Análise Sintática
Análise Sintática • Analisador sintático = Parser • Erro sintático • Análise hierárquica • Hierarquia de Chomsky • Linguagens tipo 3 e 2 • Linguagem livre de contexto • Gramática livre de contexto • Gramática no formato EBNF • Gramática sem recursividades à esquerda, fatorada e sem conflitos à esquerda = LL(1) • Gramática para expressões com problemas de ambigüidade, ordem de resolução e precedência de operadores
Análise Sintática • Analisador sintático: recebe os tokens classificados pelo analisador léxico e verifica se estão na ordem adequada, por intermédio da gramática da linguagem fonte.
Análise Sintática • Erro sintático: erro que representa o desordenamento dos tokens segundo o que é solicitado pela gramática livre de contexto. Por exemplo: parênteses desbalanceados, um comando sem o término de ponto-e-vírgula etc.
Análise Sintática • Análise hierárquica: tipo de análise usada pelo analisador sintático pois tem que construir a árvore de derivação através da gramática numa estrutura arborescente.
Análise Sintática • Hierarquia de Chomsky : Hierarquia de Chomsky é a classificação de gramáticas formais descrita em 1959 por Noam Chomsky.
Análise Sintática • Linguagem Regular (tipo 3): gramática regular, expressão regular, autômato finito determinístico, autômato finito não determinístico, autômato finito com movimentos vazios.Aplicações: representação e geração de tokens; construção de analisadores léxicos (scanner). • Linguagem Livre de Contexto (tipo 2): gramática livre de contexto, autômato com pilha.Aplicações: representação e geração de programas da maioria das linguagens de programação conhecidas (C++, Pascal, Java, etc.); construção de analisadores sintáticos (parser).
Análise Sintática • Gramática Livre de Contexto (GLC) • É um formalismo gerador para linguagens do tipo 2, na Hierarquia de Chomsky. Numa GLC, as regras não tem limitação do lado direito. • Em particular, destacam-se analisadores sintáticos, tradutores de linguagens e processadores de texto.
Análise Sintática • Gramática no formato EBNF: • É uma extensão do BNF. É usado também na simplificação da escrita de gramáticas livres de contexto, sendo bem mais poderoso do que o formato BNF. • Usa os mesmos meta-símbolos da expressão regular: *, +, ?, |, além de permitir a associação de subexpressões com parênteses.
Análise Sintática • Gramática sem recursividades à esquerda, fatorada e sem conflitos à esquerda = LL(1):o primeiro ‘L’ significa ‘left to right’ indicando que a leitura da entrada é feita da esquerda para a direita; o segundo ‘L’ significa ‘left linear’ e indica que sempre o símbolo não terminal mais à esquerda será reconhecido primeiro. O número ‘1’ indica quantos tokens serão lidos por vez, ou seja, apenas com a leitura de um token é suficiente para decidir qual produção utilizar. Conseqüentemente este tipo de gramática não pode ter conflitos à esquerda e também não pode possuir recursividade à esquerda.
Análise Sintática • Gramática para expressões com problemas de ambigüidade, ordem de resolução e precedência de operadores.