Keywords
component-based modelling, domain specific languages, modelling framework, simulations, calibration
Start Date
1-7-2012 12:00 AM
Abstract
A domain-specific language (DSL) is usually a concise, declarative language that strongly emphasizes a particular problem domain. DSL methods and implementations in general are widely prototyped and applied for creating elegant ways to express properties, relationships, and behavior of real-world models. This paper introduces DSL use for creating models and simulations within the Object Modeling System 3 (OMS3) modeling framework. In OMS3, various DSL concepts have been adopted to complement general-purpose modeling languages such as Java, FORTRAN, and C. Design patterns, such as the builder pattern, have been adopted through the DSL to support the setup of complex simulations for various applications such as Ensemble Streamflow Prediction (ESP), model calibration (Luca), configuration of model efficiency calculation, or output visualization. Experience has shown that a well-balanced adoption of DSL principles, complemented with general-purpose language elements, enhances the efficiency of model application while reducing development effort for model developers and users. In addition, adoption of DSL principles provides a viable alternative to complex graphical user interface development.
Domain Specific Languages for Modeling and Simulation: Use Case OMS3
A domain-specific language (DSL) is usually a concise, declarative language that strongly emphasizes a particular problem domain. DSL methods and implementations in general are widely prototyped and applied for creating elegant ways to express properties, relationships, and behavior of real-world models. This paper introduces DSL use for creating models and simulations within the Object Modeling System 3 (OMS3) modeling framework. In OMS3, various DSL concepts have been adopted to complement general-purpose modeling languages such as Java, FORTRAN, and C. Design patterns, such as the builder pattern, have been adopted through the DSL to support the setup of complex simulations for various applications such as Ensemble Streamflow Prediction (ESP), model calibration (Luca), configuration of model efficiency calculation, or output visualization. Experience has shown that a well-balanced adoption of DSL principles, complemented with general-purpose language elements, enhances the efficiency of model application while reducing development effort for model developers and users. In addition, adoption of DSL principles provides a viable alternative to complex graphical user interface development.