Abstract syntax tree
From Wikipedia, the free encyclopedia
- "Syntax tree" redirects here. For the trees used in linguistics, see Parse tree.
In computer science, an abstract syntax tree (AST), or just syntax tree, is a tree representation of the abstract (simplified) syntactic structure of source code written in a certain 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 is implicit in the tree structure, and a syntactic construct such as if cond then expr may be denoted by a single node with two branches.
Abstract syntax trees are thus different from concrete syntax trees traditionally called parse trees, and are often built by the parser part of the source code translation and compiling process (despite a perhaps unintuitive naming). Once built, additional information is added to the AST by subsequent processing, e.g., semantic analysis.
[edit] See also
- Abstract semantic graph (ASG)
- Concrete syntax tree
- Document Object Model (DOM)
- Semantic resolution tree (RST)
- Shunting yard algorithm
- Symbol table
- TreeDL
[edit] References
This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
[edit] External links
- AST View, an Eclipse plugin to visualize a Java abstract syntax tree
- Good information about the Eclipse AST and Java Code Manipulation
- Paper "Abstract Syntax Tree Implementation Idioms" by Joel Jones (overview of AST implementation in various language families)
- Paper "Abstract Syntax Tree Design" by Nicola Howarth (note that this merely presents the design of *one particular* project's AST, and is not generally informative)
- Paper "Understanding source code evolution using abstract syntax tree matching" by Iulian Neamtiu, Jeffrey S. Foster and Michael Hicks
- Paper "Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction" by Beat Fluri, Michael Würsch, Martin Pinzger, and Harald C. Gall.
- Diploma thesis "Improving Abstract Syntax Tree based Source Code Change Detection" by Michael Würsch
- Article "Thoughts on the Visual C++ Abstract Syntax Tree (AST)" by Jason Lucas
- Tutorial "Abstract Syntax Tree Metamodel Standard"
- PMD uses AST representation to control code source quality
- CAST representation
- Abstract Syntax Tree Unparsing
This computer science article is a stub. You can help by expanding it. |