O que é uma árvore de sintaxe abstrata?
Uma árvore de sintaxe abstrata (AST) é uma estrutura sintática feita para representar as funções que ocorrem dentro de um programa. É baseado no código fonte da programação. Tipicamente hierárquica no design, a árvore de sintaxe abstrata começa nas funções básicas e flui para baixo para mostrar as funções e o código mais envolvidos em cada função básica. O uso dessa árvore facilita aos programadores visualizar o código sem examinar o próprio código-fonte, que é muito mais longo e pode revelar falhas ou fraquezas no código. A árvore é chamada abstrata, não por ser difícil de entender ou ter uma forma abstrata, mas porque não inclui a sintaxe de codificação, como marcas entre parênteses e outros símbolos que inevitavelmente aparecem no código.
Quando um programador cria um programa, ele ou ela precisa criar as funções a partir de coisas como instruções "se-então" e instruções "ou então". Ao examinar o código fonte, pode ser difícil verificar se todas as instruções e condições foram totalmente atendidas e se todas as funções foram criadas corretamente. Uma árvore de sintaxe abstrata fornece ao programador uma maneira rápida de examinar a programação para ver cada condição e como ela se aplica ao programa em geral.
A árvore é feita de maneira hierárquica. No topo está uma das principais declarações e, a partir dessa declaração, os ramos fluem para baixo para mostrar o que satisfaz as condições. Isso continua, mostrando outras funções e condições para todo o programa. Variáveis na programação também são frequentemente exibidas. A maioria das linguagens de programação tem a capacidade de gerar uma árvore de sintaxe abstrata.
Resumo geralmente significa mal formado, difícil de entender ou amorfo. Este não é o caso de uma árvore de sintaxe abstrata. A razão pela qual a palavra "resumo" é usada é porque a árvore não exibe a sintaxe e a programação como ela é; em vez disso, remove símbolos implícitos que não são importantes para a exibição. Por exemplo, parênteses são frequentemente usados de maneira bastante liberal na programação, mas não são mostrados na árvore. Isso ocorre porque mostrar essa sintaxe ocupa muito mais espaço, dificulta a visualização da árvore e o programador saberia sobre esses símbolos no código-fonte.
Se um programador quiser ver esses símbolos auxiliares, uma árvore de sintaxe concreta é frequentemente usada. Essas árvores são semelhantes à variedade abstrata, mas elas entram em mais detalhes com todos os símbolos. Essa árvore é melhor para examinar partes ausentes de símbolos ou códigos, enquanto a árvore abstrata é melhor para verificar as funções e variáveis do programa.