Qual é a diferença entre a árvore de análise e a árvore de sintaxe

Índice:

Anonim

o principal diferença entre a árvore de análise e a árvore de sintaxe é que a árvore de análiseéuma estrutura hierárquica que representa a derivação da gramática para obter cadeias de entrada enquanto a árvore de sintaxeéuma forma de representar a sintaxe de uma linguagem de programação como uma forma hierárquica semelhante a uma árvore

Uma árvore de análise é uma representação concreta da entrada. Ele contém todas as informações sobre a entrada. Por outro lado, uma árvore sintática representa a sintaxe de uma linguagem de programação como uma árvore. Ajuda a gerar tabelas de símbolos necessárias para compiladores e geração posterior de código.

Árvore de sintaxe abstrata, compilador, árvore de sintaxe concreta, árvore de derivação, árvore de análise, árvore de sintaxe

O que é Parse Tree?

Uma árvore de análise representa a estrutura sintática de uma string de acordo com alguma gramática livre de contexto. Ele descreve a sintaxe do idioma de entrada. Uma árvore de análise não usa formas de símbolo distintas para diferentes tipos de constituintes. A base para construir uma árvore de análise são as gramáticas de estrutura de frase ou gramáticas de dependência. É possível gerar árvores de análise para sentenças em linguagem natural e ao processar linguagens de programação.

O que é árvore de sintaxe

Uma árvore de sintaxe descreve a estrutura sintática abstrata do código-fonte escrito em uma linguagem de programação. Ele se concentra nas regras, em vez de em elementos como colchetes e pontos-e-vírgulas que encerram as instruções em alguns idiomas. Além disso, é uma hierarquia com os elementos das instruções de programação divididos em várias seções. Os nós da árvore significam uma construção ocorrendo no código-fonte. Não representa todos os detalhes da sintaxe real; em vez disso, mostra os detalhes baseados na estrutura e no conteúdo. O processamento subsequente, como a análise contextual, adiciona informações extras à árvore de sintaxe.

Figura 2: Árvore de sintaxe para o algoritmo euclidiano

A árvore de sintaxe ajuda a determinar a precisão do compilador. Se a árvore de sintaxe contiver um erro, o compilador exibirá uma mensagem de erro. A análise e a transformação do programa são alguns outros usos da árvore sintática.

Diferença entre a árvore de análise e a árvore de sintaxe

Definição

Uma árvore de análise é uma árvore ordenada e enraizada que representa a estrutura sintática de uma string de acordo com alguma gramática livre de contexto. Uma árvore de sintaxe, por outro lado, é uma representação em árvore da estrutura sintática abstrata do código-fonte escrito em uma linguagem de programação. Portanto, esta é a principal diferença entre a árvore de análise e a árvore de sintaxe.

Sinônimos

Árvore de análise, árvore de derivação, e árvore de sintaxe concreta são alguns outros nomes para a árvore de análise enquanto abstrata árvore de sintaxe é outro nome para a árvore de sintaxe.

Funcionalidade

Conclusão

A principal diferença entre a árvore de análise e a árvore de sintaxe é que a árvore de análise é uma estrutura hierárquica que representa a derivação da gramática para obter strings de entrada, enquanto a árvore de sintaxe é uma forma de representar a sintaxe de uma linguagem de programação como uma estrutura de árvore hierárquica semelhante.

Referência:

1. “Analisar árvore.” Wikipedia, Wikimedia Foundation, 27 de dezembro de 2018, disponível aqui.2. “Abstract Syntax Tree.” Wikipedia, Wikimedia Foundation, 27 de setembro de 2018, disponível aqui.3. “O que é uma árvore de sintaxe abstrata (AST)? - Definição da Techopedia. ” Techopedia.com, disponível aqui.

Cortesia de imagem:

1. “Árvore de sintaxe abstrata para algoritmo Euclidiano” Por Dcoetzee - Trabalho próprio (CC0) via Commons Wikimedia2. “Python add5 parse” Por Lulu of the Lotus-Eaters na Wikipedia em inglês - Transferido de en.wikipedia para Commons (Domínio Público) via Commons Wikimedia

Qual é a diferença entre a árvore de análise e a árvore de sintaxe