A Catalog of Design Patterns for Compositional Language Engineering.
The Journal of Object Technology, vol. 21, pp. 4:1
Abstract
When composing a domain-specific language from several language components, it is also necessary to compose analysis and synthesis techniques, which are individually defined on these components in an efficient, ideally black-box form.An effective way of allowing such compositions is to use specific design patterns, which are partly reflected in the tooling code, partly reflected in the language, but also partly reflected in the language workbench (one meta-level higher), and the generated/synthesized product code (one meta-level downward).Based on the experiences gained in compositional language development using the language workbench MontiCore, we in detail discuss several of those design patterns, namely the Mill, the RealThis object composition, the Template/Hook, and the TOP-Generator Patterns, and the hidden complexity of an extended visitor infrastructure coping with the above patterns.The patterns are recorded and described in a reusable way, as usual, allowing readers to participate from the gained insights and possible solutions.
Authors 3
-
Affiliation as printed
Software Engineering , RWTH Aachen University
Software Engineering, RWTH Aachen University
-
Affiliation as printed
Software Engineering , RWTH Aachen University
Software Engineering, RWTH Aachen University
-
Affiliation as printed
Software Engineering , RWTH Aachen University
Software Engineering, RWTH Aachen University
Cited by 14 stored of 14
14 results
No patents citing this paper on Lens.org (checked 2026-10-06).
References 58
-
W6630697535details pending0citations
-
W6600893652details pending0citations
-
W6601431869details pending0citations
-
W6604911598details pending0citations
-
W6605417344details pending0citations
-
W6629456441details pending0citations
-
W6630690430details pending0citations
-
W6635633907details pending0citations
-
W6647683321details pending0citations
-
W6653946153details pending0citations
-
W6678659550details pending0citations
-
W6731610063details pending0citations