Backend · Профессиональный — набор 1
Backend · терминов: 6 · усвоено: 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
Источники
https://github.com/Graphify-Labs/graphifyhttps://en.wikipedia.org/wiki/Abstract_syntax_treehttps://docs.python.org/3/library/ast.htmlhttps://tree-sitter.github.io/tree-sitter/Полная карточка в словаре — открыть в новой вкладке ↗
