Many software language tools use declarative domain-specific languages (DDSLs) to implement parts of their functionality, such as context-free grammars for parsing or inference rules for type analysis. For interoperability and ease of use, DDSLs often rely on embedded general-purpose language (GPL) code fragments, as in the semantic actions of parser specifications, but require that these GPL fragments fulfill certain semantic properties, such as the absence of observable side effects. Fulfilling these properties is usually up to the developer, and accidental violations can lead to subtle and hard-to-trace bugs.
We present Tragdor, a tool that dynamically checks for property violations in Reference Attribute Grammars (RAGs) written for the JastAdd metacompiler, and report on the efficacy of four property testing strategies that Tragdor employs. Even in a mature RAG like the Java 11 compiler ExtendJ, Tragdor was able to find 13 implementation issues, 2 of which we consider to be of high severity. Our manual inspection of Tragdor’s reports identifies a number of potential RAG anti-patterns and finds evidence that the inherent dependency structure of RAGs often encodes fine-grained implicit contracts.
Fri 13 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:00 - 12:30 | SLE Session 4: Debugging and Dynamic CheckingSLE 2025 at M 001 Chair(s): Eric Van Wyk University of Minnesota, Twin Cities | ||
11:00 22mTalk | Exploratory, Omniscient, and Multiverse Diagnostics in Debuggers for Non-Deterministic Languages SLE 2025 Damian Frölich University of Amsterdam, Tommaso Pacciani University of Amsterdam, L. Thomas van Binsbergen University of Amsterdam Pre-print | ||
11:22 22mTalk | Dynamic Dependency-Based Purity Checking SLE 2025 Anton Risberg Alaküla Lund University, Niklas Fors Lund University, Christoph Reichenbach Lund University Link to publication DOI | ||
11:45 45mPanel | SLE Panel: The Future of SLE SLE 2025 Thomas Degueule CNRS, Ralf Lämmel Universität Koblenz, Jeff Smits Delft University of Technology, Friedrich Steimann Fernuniversität in Hagen, Eric Van Wyk University of Minnesota, Twin Cities, Regina Hebig Universität Rostock, Rostock, Germany |