Che cos'è un albero di sintassi astratto?
Un albero di sintassi 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 nella progettazione, l'albero di sintassi astratto inizia dalle funzioni di base e scorre verso il basso per mostrare le funzioni e il codice più coinvolti in 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é è difficile da capire o ha 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 costruisce un programma, deve costruire le funzioni da cose come istruzioni "if-then" e "o else". Quando si guarda 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 è realizzato in modo gerarchico. Nella parte superiore è una delle affermazioni principali e, da quella affermazione, 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 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 usata la parola "abstract" è perché l'albero non mostra la sintassi e la programmazione così com'è; piuttosto, rimuove i simboli impliciti che non sono importanti per il display. Ad esempio, le parentesi sono spesso usate abbastanza liberamente nella programmazione, ma non sono mostrate sull'albero. Questo perché mostrare questa sintassi occupa molto più spazio, rende più difficile guardare l'albero e il programmatore dovrebbe conoscere questi simboli nel codice sorgente.
Se un programmatore desidera vedere questi simboli accessori, viene spesso utilizzato un albero di sintassi concreto. Questi alberi sono simili alla varietà astratta, solo che entrano più in dettaglio con tutti i simboli. Questo albero è meglio per guardare pezzi mancanti di simboli o di codice, mentre l'albero astratto è meglio per controllare le funzioni e le variabili del programma.