Conference on Domain-Specific Languages, 1997
The Zephyr Abstract Syntax Description Language
Daniel C. Wang, Andrew W. Appel, Jeff L. Korn, and Christopher S. Serra
Abstract Syntax Description Language (ASDL) describes the abstract syntax of
compiler intermediate representations (IRs) and other tree-like data
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 has
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.
- View the full text of this paper in
HTML form and
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.