Abstract semantic graph
From Wikipedia, the free encyclopedia
In computer science, an abstract semantic graph (ASG) is a data structure used in representing or deriving the semantics of an expression in a formal language (for example, a programming language).
An abstract semantic graph is a higher level abstraction than an abstract syntax tree (or AST), which is used to express the syntactic structure of an expression or program.
An abstract semantic graph is typically constructed from an abstract syntax tree by a process of enrichment and abstraction. The enrichment can for example be the addition of back-pointers, edges from an identifier node (where a variable is being used) to a node representing the declaration of that variable. The abstraction can entail the removal of details which are relevant only in parsing, not for semantics.
[edit] External links
- Article "CPPX - C/C++ Fact Extractor" by Tom Dean
- Paper "Generating Testing and Analysis Tools with Aria" by Premkumar T. Devanbu, David S. Rosenblum and Alexander L. Wolf
- Paper "Towards Portable Source Code Representations Using XML" by Evan Mamas and Kostas Kontogiannis
- Paper "Dex: a semantic-graph differencing tool for studying changes in large code bases"