Co to jest abstrakcyjne drzewo składniowe?
Abstrakcyjne drzewo składniowe (AST) jest strukturą składniową stworzoną do reprezentowania funkcji występujących w programie. Opiera się na kodzie źródłowym programowania. Zwykle hierarchiczne w strukturze abstrakcyjne drzewo składniowe rozpoczyna się od podstawowych funkcji i przesyła w dół, aby pokazać bardziej zaangażowane funkcje i kod w ramach każdej podstawowej funkcji. Użycie tego drzewa ułatwia programistom wizualizację kodu bez konieczności 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ę abstrakcyjne, nie dlatego, że jest trudne do zrozumienia lub ma abstrakcyjny kształt, ale dlatego, że nie zawiera składni kodowania, takiej jak nawiasy i inne symbole, które nieuchronnie pojawiają się w kodzie.
Gdy programista buduje program, musi on budować funkcje z takich rzeczy, jak instrukcje „jeśli-to” i instrukcje „lub inaczej”. Patrząc na kod źródłowy, może być trudno sprawdzić, czy każda instrukcja i warunek zostały w pełni spełnione i czy wszystkie funkcje zostały poprawnie utworzone. Abstrakcyjne drzewo składniowe daje programiście szybki sposób na przejrzenie programowania, aby zobaczyć każdy warunek i sposób, w jaki dotyczy on całego programu.
Drzewo jest wykonane w sposób hierarchiczny. Na górze znajduje się jedna z głównych instrukcji, a od tej instrukcji gałęzie płyną w dół, aby pokazać, co spełnia warunki. Trwa to, 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 sformułowany, trudny do zrozumienia lub amorficzny. Tak nie jest w przypadku abstrakcyjnego drzewa składni. Powodem, dla którego używa się słowa „streszczenie”, jest to, że drzewo nie wyświetla obecnej składni i programowania; usuwa raczej ukryte symbole, które nie są ważne dla wyświetlacza. Na przykład nawiasy są często używane dość swobodnie w programowaniu, ale nie są wyświetlane w drzewie. Wynika to z faktu, że pokazanie tej składni zajmuje znacznie więcej miejsca, utrudnia spojrzenie 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ładniowe. Drzewa te są podobne do odmiany abstrakcyjnej, tyle że są bardziej szczegółowe ze wszystkimi symbolami. To drzewo jest lepsze do wyszukiwania brakujących fragmentów symboli lub kodu, podczas gdy drzewo abstrakcyjne jest lepsze do sprawdzania funkcji i zmiennych programu.