An Abstract Syntax Tree, ou AST, é uma representação em árvore do código fonte de um programa de computador que transmite a estrutura do código fonte. Cada nó na árvore representa uma construção ocorrendo no código fonte.
A conversão para AST, apenas os detalhes estruturais e relacionados ao conteúdo do código fonte são preservados, e quaisquer detalhes adicionais são descartados. As informações que são preservadas, e que são vitais para o propósito do AST, são:
- Tipos variáveis, e localização de cada declaração de variável
- Ordem e definição de declarações executáveis
- Componentes esquerdos e direitos de operações binárias
- Identificadores e seus valores atribuídos
Para que são usados os ASTs?
Os ASTs são usados para representar a estrutura do código fonte de um programa para o compilador usar. Um AST é geralmente o resultado da fase de análise de sintaxe de um compilador. Ele frequentemente serve como uma representação intermediária do programa através de várias fases que o compilador requer, e tem um forte impacto na saída final do compilador.
ASTs também são usados para casos de uso como análise de código estático. Ferramentas automatizadas podem atravessar o AST de um programa para encontrar erros de sintaxe e padrões ruins no código sem realmente executá-lo.