Backend · Профессиональный — набор 1

Backend · терминов: 6 · усвоено: 0

0%
Экран 1 из 6Войдите, чтобы сохранять прогресс и получать баллы

AST · Abstract Syntax Tree

Частота: высокая · Сложность: 3/5 · растёт

AST (абстрактное синтаксическое дерево) — иерархическое представление исходного кода в виде узлов, соответствующее синтаксическим конструкциям языка без лишних деталей форматирования.

AST — это структура данных, которую парсер строит из исходного кода: каждый узел описывает конструкцию языка (выражение, оператор, объявление, вызов функции). В дерево не попадают пробелы, комментарии и другие незначащие детали, поэтому по нему удобно программно анализировать и преобразовывать код. На AST работают компиляторы и интерпретаторы, линтеры (ESLint), форматтеры (Prettier), транспайлеры (Babel, TypeScript), инструменты рефакторинга, статического анализа и IDE-навигации. В современных мультиязычных парсерах (tree-sitter) AST используется также для подсветки синтаксиса, поиска по коду и построения AI-ассистентов программиста.

Примеры употребления

python -c "import ast; print(ast.dump(ast.parse('x = 1 + 2'), indent=2))"
Выражение 1 + 2*3 в AST выглядит как BinOp(left=1, op=Add, right=BinOp(left=2, op=Mult, right=3))
Babel обходит AST через @babel/traverse и заменяет узлы при транспиляции современного JS в старый
tree-sitter строит AST в редакторе для подсветки, свёртывания блоков и поиска определения символа
#парсинг#компиляторы#статический анализ#tree-sitter

Полная карточка в словаре — открыть в новой вкладке ↗