limiting the degree of true domain-specificity. Conse-
quently, interoperability, maintainability, and reuse of
DSLs do not reach their full potential. In this work,
modularization techniques for language (de-) com-
position using a state-of-the-art framework for DSL
development called Xtext were investigated. A case
study on the large Xtext-based DSL MD
2
for mod-
elling business apps is presented in order to achieve
a high degree of modularity using available modular-
ization techniques.
Several challenges limit the flexible applicability
of language modules. Most importantly, the con-
straints of single-inheritance and Xtext’s inability to
embed external grammars negatively affect the possi-
bilities of modular languages and the resulting mod-
elling experience for users. Beyond the particular use
case, general opportunities of DSL modularization in
Xtext include the reduction of legacy code and im-
proved maintainability of the current code base. The
applied practices are distilled into four recommenda-
tions for exploiting the current features.
This work reveals future research need concerning
suitable modularization techniques for textual DSLs
which necessitate more flexibility regarding the reuse
of small-scale languages and the extraction of – of-
ten technical and not domain-specific – concepts into
sub-DSLs. Also, fully modularizing the model-driven
process including editing component, model proces-
sor, and code generators constitutes future work.
REFERENCES
Bracha, G. and Cook, W. (1990). Mixin-based inheritance.
ACM SIGPLAN Notices, 25(10):303–311.
Cazzola, W. and Poletti, D. (2010). DSL Evolution through
Composition. In 7th Workshop on Reflection, AOP
and Meta-Data for Software Evolution, pages 1–6.
Cazzola, W. and Vacchi, E. (2016). Language components
for modular DSLs using traits. Computer Languages,
Systems & Structures, 45:16–34.
ˇ
Crepin
ˇ
sek, M., Kosar, T., Mernik, M., Cervelle, J., Forax,
R., and Roussel, G. (2010). On automata and lan-
guage based grammar metrics. Computer Science and
Information Systems, 7(2):309–330.
Ducasse, S., Nierstrasz, O., Sch
¨
arli, N., Wuyts, R., and
Black, A. P. (2006). Traits: A Mechanism for Fine-
Grained Reuse. ACM Transactions on Programming
Languages and Systems, 28(2):331–388.
Ekman, T. and Hedin, G. (2007). The JastAdd system —
modular extensible compiler construction. Science of
Computer Programming, 69(1–3):14–26.
Erdweg, S., van der Storm, T., V
¨
olter, M., Tratt, L.,
Bosman, R., Cook, W. R., Gerritsen, A., Hulshout,
A., Kelly, S., Loh, A., Konat, G., Molina, P. J., Palat-
nik, M., Pohjonen, R., Schindler, E., Schindler, K.,
Solmi, R., Vergu, V., Visser, E., van der Vlist, K.,
Wachsmuth, G., and van der Woning, J. (2015). Eval-
uating and comparing language workbenches: Exist-
ing results and benchmarks for the future. Computer
Languages, Systems & Structures, 44, Part A:24–47.
Ernsting, J., Rieger, C., Wrede, F., and Majchrzak, T. A.
(2016). Refining a Reference Architecture for Model-
Driven Business Apps. In Intl. Conference on Web In-
formation Systems and Technologies, pages 307–316.
Fowler, M. (2005). Language workbenches: The killer-app
for domain specific languages? http://martinfowler.
com/articles/languageWorkbench.html.
Heitk
¨
otter, H., Majchrzak, T. A., and Kuchen, H. (2013).
Cross-platform model-driven development of mobile
applications with MD2. In 28th Annual ACM Sympo-
sium on Applied Computing, pages 526–533.
Krahn, H., Rumpe, B., and V
¨
olkel, S. (2010). MontiCore: a
framework for compositional development of domain
specific languages. International Journal on Software
Tools for Technology Transfer, 12(5):353–372.
Majchrzak, T. A., Ernsting, J., and Kuchen, H. (2015).
Achieving business practicability of model-driven
cross-platform apps. OJIS, 2(2):3–14.
Mernik, M., Heering, J., and Sloane, A. M. (2005). When
and How to Develop Domain-specific Languages.
ACM Computing Surveys, 37(4):316–344.
Pescador, A., Garmendia, A., Guerra, E., Sanchez
Cuadrado, J., and de Lara, J. (2015). Pattern-based de-
velopment of Domain-Specific Modelling Languages.
In International Conference on Model Driven Engi-
neering Languages and Systems, pages 166–175.
Spinellis, D. (2001). Notable design patterns for domain-
specific languages. Journal of Systems and Software,
56(1):91–99.
Vacchi, E., Olivares, D. M., Shaqiri, A., and Cazzola, W.
(2014). Neverlang 2: A Framework for Modular Lan-
guage Implementation. In 13th International Confer-
ence on Modularity, pages 29–32. ACM.
Vaupel, S., Taentzer, G., Harries, J. P., Guckert, M., Stroh,
R., Gerlach, R., and Guckert, M. (2014). Model-
Driven Development of Mobile Applications Allow-
ing Role-Driven Variants. MODELS, 45(355):1–17.
V
¨
olter, M. (2013). DSL Engineering. CreateSpace Inde-
pendent Publishing Platform.
V
¨
olter, M. and Solomatov, K. (2010). Language modu-
larization and composition with projectional language
workbenches illustrated with MPS. 3rd Intl. Confer-
ence on Software Language Engineering, LNCS.
Wand, M., Kiczales, G., and Dutchyn, C. (2004). A se-
mantics for advice and dynamic join points in aspect-
oriented programming. TOPLAS, 26(5):890–910.
Wu, H., Gray, J., Roychoudhury, S., and Mernik, M. (2005).
Weaving a debugging aspect into domain-specific lan-
guage grammars. In Proceedings of the 2005 ACM
Symposium on Applied computing, pages 1370–1374.
Challenges and Opportunities of Modularizing Textual Domain-Specific Languages
395