Un Abstract Syntax Tree, o AST, è una rappresentazione ad albero del codice sorgente di un programma per computer che trasmette la struttura del codice sorgente. Ogni nodo nell’albero rappresenta un costrutto presente nel codice sorgente.
Durante la conversione in AST, solo i dettagli strutturali e relativi al contenuto del codice sorgente sono conservati, e qualsiasi altro dettaglio viene scartato. Le informazioni che vengono conservate, e che sono vitali per lo scopo dell’AST, sono:
- I tipi di variabile, e la posizione di ogni dichiarazione di variabile
- Ordine e definizione delle dichiarazioni eseguibili
- Componenti di sinistra e destra delle operazioni binarie
- Identificatori e i loro valori assegnati
A che cosa servono gli AST?
Gli AST sono usati per rappresentare la struttura del codice sorgente di un programma per il compilatore. Un AST è di solito il risultato della fase di analisi della sintassi di un compilatore. Spesso serve come rappresentazione intermedia del programma attraverso diverse fasi che il compilatore richiede, e ha un forte impatto sull’output finale del compilatore.
ASTs sono anche usati per casi d’uso come l’analisi statica del codice. Gli strumenti automatizzati possono attraversare l’AST di un programma per trovare errori di sintassi e cattivi schemi nel codice senza eseguirlo realmente.
Sono anche usati per usi come l’analisi statica del codice.