Wed 24 Mar 2021 16:00 - 16:30 at Virtual Space A - Session 3 Chair(s): Jeremy Gibbons
Thu 25 Mar 2021 17:30 - 18:00 at Virtual Space A - Session 12 Chair(s): Guido Salvaneschi

Context: Domain-specific languages (DSLs) enable domain experts to specify tasks and problems themselves, while enabling static analysis to elucidate issues in the modelled domain early. Although language work- benches have simplified the design of DSLs and extensions to general purpose languages, static analyses must still be implemented manually. Inquiry: Moreover, static analyses, e.g., complexity metrics, dependency analysis, and declaration-use analysis, are usually domain-dependent and cannot be easily reused. Therefore, transferring existing static analyses to another DSL incurs a huge implementation overhead. However, this overhead is not always intrinsically necessary: in many cases, while the concepts of the DSL on which a static analysis is performed are domain-specific, the underlying algorithm employed in the analysis is actually domain-independent and thus can be reused in principle, depending on how it is specified. While current approaches either implement static analyses internally or with an external Visitor, the implementation is tied to the language’s grammar and cannot be reused easily. Thus far, a commonly used approach that achieves reusable static analysis relies on the transformation into an intermediate representation upon which the analysis is performed. This, however, entails a considerable additional implementation effort. Approach: To remedy this, it has been proposed to map the necessary domain-specific concepts to the algorithm’s domain-independent data structures, yet without a practical implementation and the demonstration of reuse. Thus, to make static analysis reusable again, we employ relational Reference Attribute Grammars (RAGs) by creating such a mapping to a domain-independent overlay structure using higher-order attributes. Knowledge: We describe how static analysis can be specified on analysis-specific data structures, how relational RAGs can help with the specification, and how a mapping from the domain-specific language can be performed. Furthermore, we demonstrate how a static analysis for a DSL can be externalized and reused in another general purpose language. Grounding: The approach was evaluated using the RAG system JastAdd. To illustrate reusability, we implemented two analyses with two addressed languages each: a cycle detection analysis used in a small state machine DSL and for detecting circular dependencies in Java types and packages, and an analysis of variable shadowing, applied to both Java and the Modelica modelling language. Thereby, we demonstrate the reuse of two analysis algorithms in three completely different domains. Additionally, we use the cycle detection analysis to evaluate the efficiency by comparing our external analysis to an internal reference implementation analysing all Java programs in the Qualitas Corpus and thereby are able to show that an externalized analysis incurs only minimal overhead. Importance: We make static analysis reusable, again, showing the practicality and efficiency of externalizing static analysis for both DSLs and general purpose languages using relational RAGs.

Conference Day
Wed 24 Mar

Displayed time zone: Belfast change

15:00 - 16:30
Session 3Research Papers at Virtual Space A
Chair(s): Jeremy GibbonsDepartment of Computer Science, University of Oxford
15:00
30m
Live Q&A
Using Relational Problems to Teach Property-Based Testing
Research Papers
John WrennBrown University, Tim NelsonBrown University, Shriram KrishnamurthiBrown University, United States
DOI Media Attached
15:30
30m
Live Q&A
Bacatá: Notebooks for DSLs, Almost for Free
Research Papers
Mauricio Verano MerinoTechnische Universiteit Eindhoven, Jurgen VinjuCWI, Netherlands, Tijs van der StormCWI & University of Groningen, Netherlands
DOI Media Attached
16:00
30m
Live Q&A
Reusing Static Analysis across Different Domain-Specific Languages using Reference Attribute Grammars
Research Papers
Johannes MeyTechnische Universität Dresden, Thomas KühnKarlsruhe Institute of Technology, René SchöneTechnische Universität Dresden, Uwe AßmannTU Dresden, Germany
DOI Media Attached

Conference Day
Thu 25 Mar

Displayed time zone: Belfast change

17:30 - 19:00
Session 12Research Papers at Virtual Space A
Chair(s): Guido SalvaneschiUniversity of St. Gallen
17:30
30m
Live Q&A
Reusing Static Analysis across Different Domain-Specific Languages using Reference Attribute Grammars
Research Papers
Johannes MeyTechnische Universität Dresden, Thomas KühnKarlsruhe Institute of Technology, René SchöneTechnische Universität Dresden, Uwe AßmannTU Dresden, Germany
DOI Media Attached
18:00
30m
Live Q&A
Finding Bugs with Specification-Based Testing is Easy!
Research Papers
Janice Chin, David J. PearceVictoria University of Wellington, New Zealand
DOI Media Attached