Agora que já aprendemos sobre parsing e suas principais técnicas, vamos avançar para o estudo das árvores de derivação e da árvore de sintaxe abstrata (AST).
No processo de análise sintática, depois que a sequência de tokens é validada, torna-se fundamental representá-la em uma estrutura que evidencie sua hierarquia. Para isso, utilizamos representações em árvore, que organizam visualmente como os elementos da linguagem se relacionam.
Existem dois tipos principais:
Árvore de Derivação (Parse Tree)
A Árvore de Derivação é uma representação completa de como uma sentença é formada a partir da gramática. Ela explicita cada regra aplicada, exibindo tanto os símbolos não-terminais quanto os terminais, o que a torna bastante detalhada.
Características principais:
Exemplo – expressão (2 + 3) * 4
:
<expr>
/ \
<expr> *
/ \ \
( <expr> + <term> ) <factor>
| | | |
2 + 3 4
Nesse exemplo, cada parte da gramática está representada explicitamente, o que permite acompanhar como a sentença foi derivada regra por regra.
Material complementar:
Logo abaixo, você encontrará um vídeo do Felipe Louza – UFU que explica em detalhes o conceito de Árvore de Derivação (Parse Tree). Ele mostra passo a passo como uma sentença é gerada a partir das regras da gramática, evidenciando os símbolos terminais e não-terminais. Esse recurso é especialmente útil para consolidar o entendimento sobre a estrutura completa de uma expressão ou programa e para servir de base ao estudo teórico de compiladores e análise sintática.