Análise sintática (computação): diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Algumas edições nos tipos de analisadores sintáticos foram efetuadas.
Adicionei informação sobre geradores de analisadores sintáticos e lookahead
Linha 19:
=== Bottom-up ===
Conhecida como análise de empilhar e reduzir, a análise sintática Bottom-Up realiza a redução mais a esquerda uma cadeia de entrada '''X''' ao simbolo inicial da gramática. A árvore gramatical é construída iniciando pelas folhas e indo em direção à raiz. Os símbolos de '''α''' são associados até reconhecer o lado direito de uma produção e a aceitação se dá se, esgotada a sequência '''α''' e o símbolo inicial estiver na raiz da árvore.
 
=== Geradores de analisadores sintáticos ===
Hoje em dia existem vários programas que facilitam a criação de analisadores sintáticos. Eles são denominados de geradores de analisadores sintáticos, pois eles recebem como entrada uma gramática especifica e retorna como saída um analisador sintático para essa gramática.
 
A seguir, temos alguns exemplos de geradores de analisador sintático.
* [[Yacc]]
* Bison
* SableCC
* COCO/R
* AntLR
 
== Analisador sintático ==
Linha 35 ⟶ 45:
Por exemplo, em Python o seguinte código é uma sintaxe válida:
y = 10 print y
 
== Lookahead ==
Lookahead nada mais é do que analisar um token e ao mesmo tempo olhar um token a frente para poder decidir qual regra deve ser utilizada. Por exemplo, ao analisar o delimitador ‘/’, é necessário olhar a frente para poder saber se ele será um comentário de linha ou de bloco. Com ele, é possível ajudar o analisador a tomar a decisão correta em caso de conflitos e eliminar os estados duplicados aliviando a carga de uma pilha extra.
 
{{Referências|Compiladores - Princípios , Técnicas e Ferramentas ( Aho, Alfred V.; Jeffrey; Sethi, Ravi; Lam, Monica S. = Compiladores - Princípios , Técnicas e Ferramentas Aho, Alfred V.; Jeffrey; Sethi, Ravi; Lam, Monica S.}}