Abstract:
We describe the design of a domain-specific language (DSL) for the specification of generic ocean modeling tools, and we describe the
implementation of its compiler. The goal of the DSL is to allow the specification of widely usable tools for ocean modeling once, and to allow its translation into different Fortran programs for individual ocean models depending on particular model parameters. A particular challenge is to balance the need for high flexibility in the tool specifications against the declarative nature and high-level expression of the specification language. This has been achieved through the design of a domain-specific embedded language (DSEL) where the tool description DSL is embedded into an environment that allows the use of Haskell functions in tool specifications. This setting facilitates the smooth evolution of tool specifications as well as extensibility of the available functions.