Abstrakcyjne drzewo składni (AST) jest strukturą składniową stworzoną do reprezentowania funkcji występujących w programie. Opiera się na kodzie źródłowym oprogramowania. Zazwyczaj hierarchiczne w projekcie, abstrakcyjne drzewo składni zaczyna się od podstawowych funkcji i przechodzi w dół, aby pokazać bardziej zaangażowane funkcje i kod w ramach każdej funkcji podstawowej. Użycie tego drzewa ułatwia programistom wizualizację kodu bez przeglądania samego kodu źródłowego, który jest znacznie dłuższy i może ujawnić wady lub słabości kodu. Drzewo nazywa się abstrakcyjnym nie dlatego, że jest trudne do zrozumienia lub ma abstrakcyjny kształt, ale dlatego, że nie zawiera składni kodowania, takiej jak znaki nawiasów i inne symbole, które nieuchronnie pojawiają się w kodzie.
Kiedy programista buduje program, musi zbudować funkcje z takich rzeczy, jak instrukcje „jeśli-to” i instrukcje „albo inaczej”. Patrząc na kod źródłowy, może być trudno stwierdzić, czy wszystkie instrukcje i warunki zostały w pełni spełnione oraz czy wszystkie funkcje zostały poprawnie utworzone. Abstrakcyjne drzewo składni daje programiście szybki sposób na przejrzenie programowania, aby zobaczyć każdy warunek i jego ogólne zastosowanie do programu.
Drzewo jest tworzone w sposób hierarchiczny. Na górze znajduje się jedno z głównych stwierdzeń, a od niego gałęzie spływają w dół, aby pokazać, co spełnia warunki. To trwa, pokazując inne funkcje i warunki dla całego programu. Często wyświetlane są również zmienne w programowaniu. Większość języków programowania ma możliwość generowania abstrakcyjnego drzewa składni.
Abstrakt zwykle oznacza źle ukształtowany, trudny do zrozumienia lub amorficzny. Nie dotyczy to abstrakcyjnego drzewa składni. Powodem, dla którego używane jest słowo „abstrakt”, jest to, że drzewo nie wyświetla składni i programowania w takiej postaci; raczej usuwa ukryte symbole, które nie są ważne dla wyświetlacza. Na przykład nawiasy są często używane w programowaniu dość swobodnie, ale nie są pokazywane w drzewie. Dzieje się tak, ponieważ pokazanie tej składni zajmuje znacznie więcej miejsca, utrudnia patrzenie na drzewo, a programista wiedziałby o tych symbolach w kodzie źródłowym.
Jeśli programista chce zobaczyć te symbole pomocnicze, często stosuje się konkretne drzewo składni. Te drzewa są podobne do abstrakcyjnej odmiany, tyle że bardziej szczegółowo opisują wszystkie symbole. To drzewo jest lepsze do przeglądania brakujących fragmentów symboli lub kodu, podczas gdy abstrakcyjne drzewo jest lepsze do sprawdzania funkcji i zmiennych programu.