Reverse-Engineering Reusable Language Modules from Legacy Domain-Specific Languages
- Cite this paper as:
- Méndez-Acuña D., Galindo J.A., Combemale B., Blouin A., Baudry B., Le Guernic G. (2016) Reverse-Engineering Reusable Language Modules from Legacy Domain-Specific Languages. In: Kapitsaki G., Santana de Almeida E. (eds) Software Reuse: Bridging with Social-Awareness. ICSR 2016. Lecture Notes in Computer Science, vol 9679. Springer, Cham
The use of domain-specific languages (DSLs) has become a successful technique in the development of complex systems. Nevertheless, the construction of this type of languages is time-consuming and requires highly-specialized knowledge and skills. An emerging practice to facilitate this task is to enable reuse through the definition of language modules which can be later put together to build up new DSLs. Still, the identification and definition of language modules are complex and error-prone activities, thus hindering the reuse exploitation when developing DSLs. In this paper, we propose a computer-aided approach to (i) identify potential reuse in a set of legacy DSLs; and (ii) capitalize such potential reuse by extracting a set of reusable language modules with well defined interfaces that facilitate their assembly. We validate our approach by using realistic DSLs coming out from industrial case studies and obtained from public GitHub repositories.