Page 94 -
P. 94
90 P.-O. Siebers and F. Klügl
They may be so precise that a model fully described in a formal language may even
be automatically processed — execution or analysis may be done without running
the description. Often formal languages are distinct from programming languages
due to their higher abstraction level enabling more meaningful constructs based
on a clearly defined metamodel. Due to this high-level property, descriptions in
the formal language can be more compact and focussed on the relevant aspects.
Consequently, they are apt for specification and documentation. The clearly defined,
underlying metamodel may at first sight be more restrictive than natural language,
but the advantage of this restriction is that it may result in a more precise and clearer
description.
Some of the languages described below are embedded into frameworks in order
to be executable. That means it may be possible to directly run a simulation specified
in that language without first translating it into a programming language. If this
is not fully possible, there might be a chance to create a code skeleton from the
description that can then be complemented for a full implementation. Even without
any implementation, specification in some formal languages can be processed
directly for deriving properties or for comparing the specified model with likewise
formalised high-level system descriptions.
There is a plethora of formal languages that can be used for capturing ABSS
models or their elements. Different languages have different foci and are useful for
different objectives, or as Edmonds (2004) puts it, “Formal Systems (such as logics)
are not the content of theory but merely a tool for expressing and applying theory
in a symbolic way” (p. 1, italics in the original). So they form an instrument for
expressing a model or elements of a model. The first group of languages that may
come into one’s mind when thinking about formal languages are logic based. Many
different logical languages exist; each of them focuses on particular elements or
uses a different starting point (Fasli 2004).
Logic-Based Languages
Languages for logic-based modelling correspond to mathematics as a language for
analytical modelling. The language comes with certain constraints limiting the range
of particular details that can be formulated. If those details are not relevant when
modelling a system, using such a formal language is preferable as it makes tools
available for fast or even automated analysis, for fast simulation, etc. An example
for a useful tool for ABSS based on logics is the LEADSTO language (Bosse et al.
2005). Its statements as extension of predicate logics can be used for expressing time
dependencies between statements. T. Bosse suggests using this logic to describe the
overall dynamics of a simulation model so that the output data can be automatically
tested for whether the statements hold in the actual simulation runs. In AOSE,
logic-based languages play in particular a role in the area of verifiable specification
languages (for a review see Mascardi et al. 2004).