abstract syntax


Also found in: Acronyms, Wikipedia.

abstract syntax

(language, data)
A representation of data (typically either a message passing over a communications link or a program being compiled) which is independent of machine-oriented structures and encodings and also of the physical representation of the data (called "concrete syntax" in the case of compilation or "transfer syntax" in communications).

A compiler's internal representation of a program will typically be specified by an abstract syntax in terms of categories such as "statement", "expression" and "identifier". This is independent of the source syntax (concrete syntax) of the language being compiled (though it will often be very similar). A parse tree is similar to an abstract syntax tree but it will typically also contain features such as parentheses which are syntactically significant but which are implicit in the structure of the abstract syntax tree.
References in periodicals archive ?
An Automatic Refactoring Method of Cloned Code Using Abstract Syntax Tree and Static Analysis, Journal of Chinese Computer Systems, 28.
It is clear that a mapping from abstract syntax to a concrete syntax is as important as the inverse mapping.
We adopted the derivation illustrated in Table I, matching each element of the abstract syntax with a visual (graphic) appearance.
For simple languages and in most of the current DSM tools, concrete syntax representation is directly mapped to the abstract syntax.
A typical tree-oriented mobile code representations compilation unit consists of a source module's abstract syntax tree and symbol table of a program (which would typically be generated during the compilation of the source program even if native machine code were to be targeted) [12, 29, 39, 28].
Slim Binaries avoid these disadvantages by using a portable and high-level intermediate representation, that is based on the encoded abstract syntax tree and symbol table of a program.
The program representation contained in Slim Binary files consists of a compact description of the symbol table and a syntax-oriented encoding of the abstract syntax tree that is based on a technique called Semantic Dictionary Encoding (SDE).
Instead, the dictionary table of a program is rebuild automatically during decoding of the abstract syntax tree on the consumer-side.
Figure 8 (a) contains the abstract syntax tree and the corresponding symbol table for the same sample source program that was shown in Figure 6 (a), and Figure 8 (b) shows the sequence of indices resulting from applying the SDE.
The dictionary table generated for our sample program can then be used for encoding the abstract syntax tree.
During decoding of an abstract syntax tree that has been encoded by a dynamic SDE, the same adaptive construction of the dictionary table must be performed.
Basically, such an extension might be based on the construction of an unified abstract syntax tree and a more general type system.