In computer science, an abstract syntax tree (AST), or just syntax tree, is a tree representation of the abstract syntactic structure of source code written in a programming language. Each node of the tree denotes a construct occurring in the source code. The syntax is 'abstract' in the sense that it does not represent every detail that appears in the real syntax. For instance, grouping parentheses are implicit in the tree structure, and a syntactic construct such as an if-condition-then expression may be denoted by a single node with two branches.
This makes abstract syntax trees different from concrete syntax trees, traditionally called parse trees, which are often built by a parser as part of the source code translation and compiling process. Once built, additional information is added to the AST by subsequent processing, e.g., contextual analysis.
Abstract syntax trees are also used in program analysis and program transformation systems.
Famous quotes containing the words abstract and/or tree:
“When needs and means become abstract in quality, abstraction is also a character of the reciprocal relation of individuals to one another. This abstract character, universality, is the character of being recognized and is the moment which makes concrete, i.e. social, the isolated and abstract needs and their ways and means of satisfaction.”
—Georg Wilhelm Friedrich Hegel (17701831)
“Some say that happiness is not good for mortals, & they ought to be answered that sorrow is not fit for immortals & is utterly useless to any one; a blight never does good to a tree, & if a blight kill not a tree but it still bear fruit, let none say that the fruit was in consequence of the blight.”
—William Blake (17571827)