The Zephyr Abstract Syntax Description Language
The Zephyr Abstract Syntax Description Language (ASDL) describes the
abstract syntax of compiler intermediate representations (IRs) and other tree-l
structures. Just as the lexical and syntactic structures of programming
languages are described with regular expressions and context free grammars,
ASDL provides a concise notation for describing the abstract syntax of
programming languages. Tools can convert ASDL descriptions into the
appropriate data-structure definitions and functions to convert the
data-structures to or from a standard flattened representation. This makes
it easier to build compiler components that interoperate.
Although ASDL lacks subtyping and inheritance, it is able to describe the
Stanford University Intermediate Format (SUIF) compiler IR, originally
implemented in C++. We have built a tool that converts ASDL into C, C++,
Java, and ML data-structure definitions and conversion functions. We have
also built a graphical browser-editor of ASDL data structures. ASDL
shares features found in many network interface description languages
(IDLs), algebraic data types, and languages such as ASN.1 and SGML. Compared
to other alternatives ASDL is simple and powerful. This document describes
ASDL in detail and presents an initial evaluation of ASDL.
This technical report has been published as
- The Zephyr Abstract Syntax Description Language.
Daniel C. Wang, Andrew W. Appel, Jeff L. Korn, and Christopher
Conference on Domain-Specific
Languages, USENIX Association, October 1997.