Generator of efficient strongly typed abstract syntax trees in Java
Mark van den Brand, P.-E. Moreau, Jurgen J. Vinju
Abstract
Open-access reader
Mark van den Brand, P.-E. Moreau, Jurgen J. Vinju
Abstract
Open-access reader
syntax trees are a very common data-structure in language related tools. For example, compilers, interpreters, documentation generators and syntax-directed editors use them extensively to extract, transform, store and produce information that is key to their functionality. The authors present a Java back-end for ApiGen a tool that generates implementations of abstract syntax trees. The generated code is characterised by strong typing combined with a generic interface and maximal sub-term sharing for memory efficiency and fast equality checking. The goal of this tool is to obtain safe and more efficient programming interfaces for abstract syntax trees. The contribution of this work is the combination of generating a strongly typed data-structure with maximal sub-term sharing in Java. Practical experience shows that this approach is beneficial for extremely large as well as smaller data types.
OpenAlex reports 32 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
syntax trees are a very common data-structure in language related tools. For example, compilers, interpreters, documentation generators and syntax-directed editors use them extensively to extract, transform, store and produce information that is key to their functionality. The authors present a Java back-end for ApiGen a tool that generates implementations of abstract syntax trees. The generated code is characterised by strong typing combined with a generic interface and maximal sub-term sharing for memory efficiency and fast equality checking. The goal of this tool is to obtain safe and more efficient programming interfaces for abstract syntax trees. The contribution of this work is the combination of generating a strongly typed data-structure with maximal sub-term sharing in Java. Practical experience shows that this approach is beneficial for extremely large as well as smaller data types.
Key concepts: Computer science, Programming language, Abstract syntax tree, Syntax, Java, Abstract syntax, Interpreter, Compiler