Un albero sintattico astratto (AST) è una struttura sintattica creata per rappresentare le funzioni che si verificano all’interno di un programma. Si basa sul codice sorgente della programmazione. Tipicamente gerarchico nel design, l’albero della sintassi astratta parte dalle funzioni di base e scorre verso il basso per mostrare le funzioni e il codice più coinvolti all’interno di ciascuna funzione di base. L’uso di questo albero rende più facile per i programmatori visualizzare il codice senza guardare attraverso il codice sorgente stesso, che è molto più lungo e può rivelare difetti o punti deboli nel codice. L’albero è chiamato astratto, non perché sia difficile da capire o abbia una forma astratta, ma perché non include la sintassi di codifica come segni di parentesi e altri simboli che inevitabilmente compaiono nel codice.
Quando un programmatore crea un programma, deve creare le funzioni da elementi come le istruzioni “if-then” e le istruzioni “or else”. Quando si osserva il codice sorgente, può essere difficile vedere se ogni istruzione e condizione è stata pienamente soddisfatta e se tutte le funzioni sono state create correttamente. Un albero di sintassi astratto offre al programmatore un modo rapido per esaminare la programmazione per vedere ogni condizione e come si applica al programma in generale.
L’albero è fatto in modo gerarchico. Nella parte superiore c’è una delle affermazioni principali e, da quella dichiarazione, i rami scorrono verso il basso per mostrare ciò che soddisfa le condizioni. Questo continua, mostrando altre funzioni e condizioni per l’intero programma. Spesso vengono visualizzate anche le variabili nella programmazione. La maggior parte dei linguaggi di programmazione ha la capacità di generare un albero di sintassi astratto.
Astratto di solito significa mal formato, difficile da capire o amorfo. Questo non è il caso di un albero di sintassi astratto. Il motivo per cui viene utilizzata la parola “astratto” è perché l’albero non mostra la sintassi e la programmazione così com’è; piuttosto, rimuove i simboli impliciti che non sono importanti per la visualizzazione. Ad esempio, le parentesi sono spesso usate abbastanza liberamente nella programmazione, ma non sono mostrate nell’albero. Questo perché mostrare questa sintassi richiede molto più spazio, rende più difficile guardare l’albero e il programmatore saprebbe di questi simboli nel codice sorgente.
Se un programmatore vuole vedere questi simboli ausiliari, viene spesso impiegato un albero di sintassi concreto. Questi alberi sono simili alla varietà astratta, solo che entrano più in dettaglio con tutti i simboli. Questo albero è migliore per esaminare le parti mancanti di simboli o codice, mentre l’albero astratto è migliore per controllare le funzioni e le variabili del programma.