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).
   89   90   91   92   93   94   95   96   97   98   99