AST (Abstract Syntax Tree, абстрактное синтаксическое дерево) — это дерево, которое представляет структуру исходного кода программы в виде иерархии объектов, но без лишней синтаксической «шелухи» (например, пробелов, скобочек, запятых).
Иными словами, AST отражает логику программы на уровне синтаксических конструкций (операторов, выражений, функций и т.д.), но не точный текстовый вид.
Зачем нужно AST?
Компиляторы и интерпретаторы используют AST для анализа и преобразования кода (оптимизации, трансляции в машинный код).
Инструменты статического анализа находят ошибки или уязвимости, анализируя AST.
Форматтеры (например, Black для Python) или линтеры преобразуют AST обратно в код с нужным стилем.
Средства рефакторинга (например, в IDE) тоже работают через AST.