PhD Thesis: Domain Specific Language Specialization

Context

More and more domains require functionalities of products to be tailored to the precise needs/context of deployments/installations, or even to the evolutions of the environments of the deployed products during their whole lifetime. As soon as a broad level of adaptability is desired, simple configuration files are not sufficient anymore and (configuration) languages (e.g. ipTables/nfTables) are required. In some cases, it may be a good idea to use one of the many powerful (programming) languages already existing ; however, this approach requires more knowledge, expertise and time from the deployment/administration teams. An approach which seems more promising is the development of Domain-Specific Languages (DSL) specifically tailored to the configuration of the given products and contexts, and which would then be easier to use by the deployment/administration teams.

State of the Art

Developing Domain Specific Languages (DSL) to speed up and ease recurrent tasks is an appealing approach quite well researched [DKV00,NMS19,HMR+19] and used in practice [NHWW19,WHR14]. Current trends on low-/no-code development platforms is a clear demonstration of this [SIDP20]. Such a development can be done from scratch using tools such as XText [EF21], Spoofax [MB21], MPS [JT21], GEMOC Studio [CDB+15], MontiCore [RH17], MetaEdit [TK09] or Racket [PRG21], to name a few. Another approach is to reuse existing “fragments'' from existing languages to integrate into the new DSL. There exist tools, such as Melange [DCB+15] or MontiCore [HRW18] to name a few, supporting the development of new languages by reusing existing language fragments.

Overall Objective

All current approaches for developing DSLs focus on extracting, adapting, transforming and merging implementation fragments (source or binary) using generic directives and mechanisms applicable to every domain. Those tools do require some knowledge of how those languages are implemented and how DSL engineering works. Thus, making it difficult for end-users when the need is specifically to specialize an existing DSLs.

When there already exists at least one DSL for the domain to address, and the goal is to create an even more specialized DSL for a specific task it would be appealing to allow end-users to specialize themselves this DSL and its associated services.

Description of the work

This PhD thesis aims at exploring the concept of “Domain Specific Language Specialization”, as well as to propose and validate a “solution” to allow end-users, which are experts in their domain, to create new DSLs by specialization of languages of their domain of expertise. The approach proposed to the candidate is in two steps: first a generic framework for DLS specialization, and second a mechanism to customize it to a particular domain, hence easing the specialization of DSL by the end user.

The proposed agenda is the following:

  1. Report on the state-of-the-art in Domain-Specific Language reuse and discuss the applicability in the context of DSL specialization (a subfield of language design and reuse);
  2. Conceptualize Domain-Specific Language Specialization (concepts involved, relations between those concepts, specificities of DSL specialization compared to standard reuse in language engineering, …);
  3. Identify theoretical and technological difficulties (obstacles/barriers) with DSL specialization and propose solutions to circumvent them;
  4. Propose a framework (both foundational and technological) allowing “domain and language” experts to build a domain-specific language environment (language and associated services) that end-users (of the specific domain) can use and specialize; This first includes the definition of a generic framework for DSL specialization, and then a customization mechanism to let end users specializing existing languages.
  5. Implement this framework using state-of-the-art technologies;
  6. Validate the proposed framework on realistic DSL specialization use cases.

Environment

The candidate will work in the DiverSE team, common to CNRS (IRISA) and Inria. The DiverSE team is located in Rennes. DiverSE’s research is in the field of software engineering. The team is actively involved in European, French and industrial projects and is composed of 9 professors/researchers, 20 PhD students, 4 post-docs and 3 engineers. The candidate will enroll in the doctoral school in computer science of the University of Rennes 1. The main advisor of the PhD thesis will be Prof. Benoit Combemale (University of Rennes 1, DiverSE team). The PhD will be realized also in collaboration with Gurvan Le Guernic from DGA-MI.

How to apply

Please send your application (PDF) as soon as possible. Screening of applications starts immediately and continues until the position is filled. Send a cover letter including names of at least two referees, CV, PDFs of publications (if any) to the main advisors.

Some bibliographic references of the team in the domain

[DCB+15] Thomas Degueule, Benoit Combemale, Arnaud Blouin, Olivier Barais, Jean-Marc Jézéquel. Melange: A Meta-language for Modular and Reusable Development of DSLs. SLE’15 - Int Conf. Software Language Engineering. 2015.

[JVB+15] Jean-Marc Jézéquel, Benoit Combemale, Olivier Barais, Martin Monperrus, François Fouquet. Mashup of Meta-Languages and its Implementation in the Kermeta Language Workbench. Software and Systems Modeling, Springer Verlag, 2015, 14 (2), pp.905-920.

[KPCT14] Mounira Kezadri, Marc Pantel, Benoit Combemale, Xavier Thirioux. A formal framework to prove the correctness of model driven engineering composition operators. ICFEM'14 - Int. Conf. Formal Engineering Methods. Springer, 2014.

[CCGT09] Benoît Combemale, Xavier Crégut, Pierre-Loïc Garoche, Xavier Thirioux: Essay on Semantics Definition in MDE - An Instrumented Approach for Model Verification. JSW 4(9): 943-958 (2009)

[LDC+17] Manuel Leduc, Thomas Degueule, Benoit Combemale, Tijs van der Storm, Olivier Barais. Revisiting Visitors for Modular Extension of Executable DSMLs. 2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems, Sep 2017, Austin, United States.

[LDC18] Manuel Leduc, Thomas Degueule, Benoit Combemale. Modular Language Composition for the Masses. SLE 2018 - 11th ACM SIGPLAN International Conference on Software Language Engineering, Nov 2018, Boston, United States. pp.1-12, ⟨https://doi.org/10.1145/3276604.3276622⟩.

Other references

[S14] Schmidt, David A. Programming Language Semantics. CRC/ACM Computer Science Handbook, 3d ed., 2014.

[S96] Schmidt, David A. Programming Language Semantics. ACM Computing Surveys, Vol. 28, No. 1, pp 265-267, March 1996.

[A96] Aaby, Anthony A. Introduction to Programming Languages. 1996.

[RS14] Grigore Rosu and Traian Florin Serbanuta. K Overview and SIMPLE Case Study. K'11, ENTCS 304, pp 3-56. 2014

[SAL+14] Traian Florin Serbanuta and Andrei Arusoaie and David Lazar and Chucky Ellison and Dorel Lucanu and Grigore Rosu. The K Primer (version 3.3). K'11, ENTCS 304, pp 57-80. 2014

[ER12] Chucky Ellison and Grigore Rosu. An Executable Formal Semantics of C with Applications. POPL'12, ACM, pp 533-544. 2012

[HR04] D. Harel and B. Rumpe, Meaningful modeling: what’s the semantics of semantics? Computer, vol. 37, no. 10, pp. 64– 72, 2004.

[HJK+13] Florian Heidenreich, Jendrik Johannes, Sven Karol, Mirko Seifert and Christian Wende. Model-Based Language Engineering with EMFText. International Summer School Generative and Transformational Techniques in Software Engineering IV, 2013.

[GRS08] Angelo Gargantin, Elvinia Riccobene and Patrizia Scandurra. Model-driven Language Engineering: the ASMETA case study. ICSEA 2008.

[A] Anonymous: Five Levels of Abstraction: Reuse-based Specialization of DSLs for IP Header Options Filtering, http://www.mediafire.com/file/oh8w3fz3qq5yl8a/FiveLevelsOfAbstraction.pdf/file

[CDB+15] Combemale, B., Deantoni, J., Barais, O., Blouin, A., Bousse, E., Brun, C., Degueule, T., Vojtisek, D.: A Solution to the TTC’15 Model Execution Case Using the GEMOC Studio. In: 8th Transformation Tool Contest. CEUR, l’Aquila, Italy (2015), https://hal.inria.fr/hal-01152342

[DCB+15] Degueule, T., Combemale, B., Blouin, A., Barais, O., Jézéquel, J.M.: Melange: A meta-language for modular and reusable development of dsls. In: Proceedings of the 2015 ACM SIGPLAN International Conference on Software Language Engineering. pp. 25–36. SLE 2015, ACM, New York, NY, USA (2015). https://doi.org/10.1145/2814251.2814252, https://hal.inria.fr/hal-01197038/document

[DKV00] van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: An annotated bibliography. SIGPLAN Not. 35(6), 26–36 (Jun 2000). https://doi.org/10.1145/352029.352035, https://doi.org/10.1145/352029.352035

[EF21] Eclipse Foundation: Xtext: Language engineering for everyone! (2021), https://www.eclipse.org/Xtext/

[GLB14] Gont, F., Liu, W., Bonica, R.: Recommendations on filtering of ipv6 packets containing ipv6 extension headers. Internet draft, Internet Engineering Task Force (IETF) Trust (Aug 2014)

[HMR+19] Hölldobler, K., Michael, J., Ringert, J., Rumpe, B., Wortmann, A.: Innovations in model-based software and systems engineering. Journal of Object Technology 18, 1–60 (07 2019). https://doi.org/10.5381/jot.2019.18.1.r1

[HRW18] Hölldobler, K., Rumpe, B., Wortmann, A.: Software language engineering in the large: Towards composing and deriving languages. Computer Languages, Systems & Structures 54, 386–405 (2018). https://doi.org/10.1016/j.cl.2018.08.002

[JT21] JetBrains Team: MPS: Meta programming system (2021), https://www.jetbrains.com/mps/

[MB21] MetaBorg: The spoofax language workbench (2021), http://www.metaborg.org/en/latest/

[NMS19] Negm, E., Makady, S., Salah, A.: Survey on domain specific languages implementation aspects. International Journal of Advanced Computer Science and Applications 10 (Jan 2019). https://doi.org/10.14569/IJACSA.2019.0101183

[NHWW19] Nordmann, A., Hochgeschwender, N., Wigand, D., Wrede, S.: A survey on domain-specific modeling and languages in robotics. Journal of Software Engineering for Robotics 7, 75–99 (07 2016)

[PRG21] PLT Research Group and Racket Contributors: Racket: solve problems · make languages (2021), https://racket-lang.org/

[RH17] Rumpe, B., Hölldobler, K.: Monticore 5 language workbench. edition 2017 (2017)

[TK09] Tolvanen, J.P., Kelly, S.: Metaedit+ defining and using integrated domain-specific modeling languages. In: Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications. pp. 819–820 (2009)

[WHR14] Whittle, J., Hutchinson, J., Rouncefield, M.: The state of practice in model-driven engineering. IEEE Software 31(3), 79–85 (2014)

[SIDP20] A. Sahay, A. Indamutsa, D. Di Ruscio and A. Pierantonio, “Supporting the understanding and comparison of low-code development platforms,” 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), 2020, pp. 171-178, doi: 10.1109/SEAA51224.2020.00036.

Benoit Combemale
Benoit Combemale
Full Professor of Software Engineering

Agility and safety for wild software