Абстрактные синтаксические деревья (AST) представляют рекурсивную структуру формального документа (исходный код программы).

Абстрактные синтаксические деревья (сокращенно «AST») представляют структуру формального документа (часто это компьютерная исходная программа). Узлы в дереве представляют синтаксически значимые фрагменты документа (определения функций, объявления, операторы, выражения и подвыражения). Дочерние узлы представляют части этого чанка (для узла определения функции дочерние узлы, скорее всего, будут «name», «signature» и «body»).

AST широко используются в системах анализа и преобразования программ, а также в классических инструментах, таких как компиляторы.

Они, как правило, создаются с помощью анализа, который управляется правилами BNF, которые описывают формальную структуру документа. Если точно определить, как синтаксический анализатор сопоставляет правила BNF с формальным документом, результатом является так называемое конкретное синтаксическое дерево (CST). Обычно CST содержат много ненужных деталей (таких как круглые скобки и ключевые слова), которые не нужны инструменту, использующему дерево, поскольку сами узлы дерева по существу представляют грамматические правила, и эта информация, таким образом, является избыточной. Таким образом, синтаксические анализаторы часто создают AST в процессе синтаксического анализа для получения относительно компактных деревьев по сравнению с CST. См. В чем разница между абстрактным синтаксическим деревом и конкретным синтаксическим деревом? для более подробного обсуждения этой темы.

Существует тег ast для StackOverflow; вместо этого вы должны использовать тег "abstract-syntax-tree".