глоссарий

AST

AST

Абстрактное синтаксическое дерево, или AST, — это способ представить код программы в виде дерева, где каждый узел соответствует какой-то языковой конструкции: переменной, операции, условию, циклу. Текст кода превращается в структуру данных, с которой удобно работать программам.

Зачем это нужно? Текст для человека — удобен, но для компьютера это просто последовательность символов. Чтобы понять смысл кода, выполнить его, проверить на ошибки или преобразовать в другой язык, нужно выделить логическую структуру. AST — это первый шаг такого понимания. Компиляторы, интерпретаторы, подсветка синтаксиса, автодополнение и поиск уязвимостей — всё это опирается на AST.

Как это работает интуитивно? Представьте, что вы разбираете предложение на уроке русского языка: подлежащее, сказуемое, дополнение. Примерно так же компилятор или анализатор разбирает исходный код. Например, выражение `2 + 3 * 4` превращается в дерево. В корне стоит операция сложения, её левый ребёнок — число 2, а правый — поддерево умножения, где числа 3 и 4. Такое дерево явно показывает, что сначала выполняется умножение, а потом сложение, даже без скобок.

Прикладной пример: среда разработки использует AST, чтобы автоматически переименовать переменную во всей программе. Вместо поиска по тексту (что может случайно задеть комментарий или другую переменную) она работает с деревом и заменяет только нужные узлы. Это безопасно и точно.

Таким образом, AST — это универсальный «скелет» кода, который превращает синтаксис в понятную иерархию. Благодаря ему программы могут анализировать и менять код так же естественно, как мы читаем книги.