Extend a Configuration and Parametrization DSL

Type Bachelor (evaluation with MITgcm or UVic scenarios)

Type Master (evaluation with MITgcm and UVic scenarios and in conjunction with domain experts)

Task We already have developed a basic Configuration and Parameterization DSL (CP-DSL) and created generators to support the two Earth System Climate Models (ESCM) MITgcm and UVic. During an evaluation with experts, the DSL was considered useful, but multiple potential improvements were identified. In this thesis it would be your task to address one or two of these improvements:

  • Improve support for diagnostics which is able to support diagnostics in MITgcm, UVic, NEMO with XIOS and CDI-pio. The latter two are frameworks and APIs to realize logging in ESCMs.
  • Provide tooling to read existing configuration from source files and generate CP-DSL configurations from them.
  • Adapt grammar include and import mechanism for share and modify existing configurations.

Note This work will be based on an already existing DSL which will be extended.

Resources

  • XML Input Output Server (XIOS) http://www.ifremer.fr/docmars/html/doc.coupling.xios.html
  • CDI-pio https://code.mpimet.mpg.de/projects/cdi/wiki and https://code.mpimet.mpg.de/projects/cdi/wiki/Cdi-pio
  • The Sprat Approach (see also below), specifically the simulation configuration DSL
    • Sprat http://eprints.uni-kiel.de/32070/
      • Chapter 7 Especially 7-7.2.2
      • Metamodel in 7.2.3 to understand the general relationship of the terminology, the property definition in 7.2.3 is done in Object-Z, but essentially the name on the top refers to the class from the metamodel and the pairs of names in the inner frame are the properties for the class and additional constraints. Inheritance in Object-Z is shown in the defition of Internal_DSL and External_DSL (the internal DSL has also a property host language).
    • 7.3 Applying the Sprat Approach to understand how and where the separation between domains happen, you need to define roles. This is described in 7.3.1
    • Chapter 8
      • 8.3 The Sprat Ecosystems DSL
    • Source Code
    • https://github.com/cau-se/sprat-ecosystem-dsl-xtext
  • Introductions to how to write a thesis https://www.se.informatik.uni-kiel.de/en/student-theses/useful-hints
  • Case Studies
  • External DSL notation for syntax and semantics