Extend the Design and Evaluate a Configuration DSL for Ocean Models

Type Bachelor (evaluation with MITgcm or UVic scenarios)

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

Task Based on a given set of domain knowledge, concepts and sample configuration scripts, design a textual, external DSL to control configuration of models based on the two case studies MITgcm and UVic addressing all three deployment scenarios (local, dedicated host/node, and kubernetes). The configuration language will only address static configuration pattern comparable to the Sprat setup language. It might be possible to derive the OceanDSL configuration language from the Sprat setup language. The DSL includes a code generator usable standalone and within Juypter for the DSL.

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


  • 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 hostLanguage).
    • 7.3 Applying the Sprat ApproachTo 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