Declarative Model

Declarative model is a model that expresses the logic of a computation without describing its control flow. The model attempts to minimize or eliminate side effects by describing what the program should accomplish in terms of the problem domain, rather than describing how to go about accomplishing it as a sequence of the programming language primitives. The declarative model is in contrast to imperative, because in imperative model algorithms are implemented in terms of explicit steps. Generally, the declarative model is mathematical representations of physical systems implemented in computer code that is declarative. The code of the model contains a number of equations, not imperative assignments, that declare or describe the behavioral relationships.

Two classes of declarative models are systems dynamics models and declarative agent-based models, as mentioned in Villa et al. (2006). The processes leading to outcomes and the outcomes themselves emerge from simulations with these models. As mentioned in Fahland et al. (2009) the principal difference between declarative agent-based models and systems dynamics models is that the agent-based models describe social interactions whilst the systems dynamics models do not. Agent-based models  in which the behaviour of agents is determined by if-then rules are inherently declarative.


Fahland, D., Lübke, D., Mendling, J., Reijers, H. Weber, B., Weidlich, M., Zugal, S.(2009). Declarative versus Imperative Process Modeling Languages: The Issue of Understandability. In: BPMDS 2009 and EMMSAD 2009, LNBIP 29, pp. 353-366, Springer-Verlag Berlin Heidelberg.

Villa, F., Donatelli, M., Rizzoli, A., Krause, P., Kralisch, S., van Evert, F. (2006). Declarative modelling for architecture independence and data/model integration: a case study. In: iEMSs 2006 Summit on Environmental Modelling and Software. [Online] (verified on November 7, 2013).


  • System Dynamics
  • Agent-based Modelling
  • Scenario Building
Add comment

You can add a comment by filling out the form below. Plain text formatting.