7 064
edições
(wikificação) |
|||
{{Ver desambig|este=o contexto em computação / linguística|o conceito gramatical|Sintaxe}}{{Sem fontes|data=5 de novembro de 2004|Subcategoria=tec}}[[Imagem:Parsing-example.png|thumb|direita|250px|Exemplo da '''análise sintática''' de uma [[expressão matemática]]. O resultado é uma [[árvore (estrutura de dados)|árvore]] da expressão]]{{Predefinição:Execução de Programa}}Em [[ciência da computação]] e [[linguística]], a '''análise sintática''' (do [[Língua inglesa|inglês]]: '''''parsing''''') é um processo de um [[compilador]] (de uma [[linguagem de programação]]), é a segunda fase da compilação onde se analisa uma sequência que foi dada entrada (via um [[arquivo de computador]] ou via [[teclado (computador)|teclado]], por exemplo) para verificar sua estrutura gramatical segundo uma determinada [[gramática formal]]. Este processo trabalha em conjunto com o a [[análise léxica|análise lexical]] (primeira etapa, onde se verifica-se de acordo com determinado [[alfabeto]]) e [[análise semântica]] (terceira etapa, onde verificam-se os erros semânticos).
A análise sintática transforma um texto na entrada em uma [[estrutura de dados]], em geral uma [[Árvore (estrutura de dados)|árvore]], o que é conveniente para processamento posterior e captura a hierarquia implícita desta entrada. Através da análise lexical é obtido um grupo de [[token]]s, para que o analisador sintático use um conjunto de regras para construir uma árvore sintática da estrutura.
== Analisador sintático ==
O "analisador
A entrada de dados que é analisada pelo analisador é normalmente um código de uma linguagem de programação, mas podem ser também textos em linguagem natural, e nesse caso não é construída uma árvore de análise, mas só são extraídas algumas partes do texto. As funções dos analisadores variam desde analisar comandos simples de um código a programas muito complexos. Uma forma importante de realizar a análise é usando expressões regulares, onde uma expressão regular define uma linguagem regular e um mecanismo de expressão regular gerando automaticamente um analisador para a linguagem. Em alguns casos as expressões regulares são usadas antes da própria análise sintática, como etapa da análise lexical cuja saída será utilizada pelo analisador sintático.
== Visão geral do processo ==
[[Ficheiro:Nt-compilador.png|ligação=https://pt.wikipedia.org/wiki/Ficheiro:Nt-compilador.png|alt=|miniaturadaimagem|409x409px|O processo da compilação.]]
O caso comum de análise de uma linguagem de programação possui dois níveis de gramática: lexicais e sintáticas.
== Tipos de analisadores sintáticos ==
Existem dois tipos gerais de estratégias de analisador sintático (parsing) são elas:
=== Top-Down ===
== 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}}
== Ver também ==
*[[JIT|Compilador Just in Time (JIT)]]
*
*[[Linguagens formais e compiladores|Linguagens formais]]
*[[Linker]]
== Ligações externas ==
▲{{Esboço-computação}}
* {{Link|en|http://www.thefreecountry.com/compilers/index.shtml|Compiladores livres|descr=por Free Country}}
{{Esboço-computação}}{{Portal3|ti}}
[[Categoria:Análise sintática (computação)| ]]
[[Categoria:Análise]]
|