Programs are often represented within a compiler by abstract trees.
These abstractions take a standard form that can be specified by a
context-free grammar.
Standard techniques are available to implement the specifications by
writing directly in a programming language, and there are tools that will
generate the implementation automatically from the specifications.
This paper presents two implementations of the abstract tree for a simple
straight-line programming language defined by Appel in his text
Modern Compiler Construction in Java.
The paper was generated from an
Eli specification.
Both of the implementations can also be generated from that specification.