Conference on Domain-Specific Languages · 1997 · 80 citations · 8 references
ComputingComputer EngineeringComputer ScienceCompilersData StructuresProgramming LanguagesAbstract Syntax TreesCompiler ConstructionData TypesIntermediate RepresentationProgramming Language ImplementationSyntax AnalysisAbstract Syntax Tree RepresentationAlgebraic Data TypesContext-sensitive GrammarsIntermediate Code GenerationIntermediate Representation DesignRegular ExpressionsSyntactic StructuresTree Structures
ASDL is a concise notation for describing the abstract syntax of compiler intermediate representations and other tree‑like data structures, analogous to regular expressions and context‑free grammars, and it can represent formats such as SUIF while sharing features with IDLs, algebraic data types, ASN.1, and SGML. This document details ASDL and provides an initial evaluation of its use. Tools translate ASDL specifications into data‑structure definitions and conversion functions for flattened representations. ASDL facilitates interoperable compiler components, with tools that generate C, C++, Java, and ML data‑structure definitions and conversion functions, a graphical browser‑editor, and it proves to be simple and powerful relative to other alternatives.
The Zephyr 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 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.
8
Robert P. Wilson, Robert Stanton French, Christopher Wilson et al. · ACM SIGPLAN Notices · 1994 · 540 citations · Full text
Martin Odersky, Philip Wadler · 1997 · 419 citations · Full text
R. M. Burstall, David MacQueen, Donald Sannella · 1980 · 351 citations
PolyP---a polytypic programming language extension
Patrik Jansson, Johan Jeuring · 1997 · 246 citations · Full text