23.08.2013 Views

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

234 Introduction to the Semantics <strong>of</strong> POOSL<br />

in advance, which means that it establishes a predefined correctness relation between the<br />

involved specifications. A formal pro<strong>of</strong> <strong>of</strong> correctness can only be made if the semantics<br />

<strong>of</strong> specifications and the semantics <strong>of</strong> correctness relations are made precise.<br />

The correctness <strong>of</strong> transformations is <strong>of</strong>ten based on equivalent externally observable<br />

behaviour. Since denotational semantics typically emphasise describing systems in terms<br />

<strong>of</strong> their external behaviour, they are <strong>of</strong>ten considered a good basis for the support <strong>of</strong><br />

transformations. However, as languages become more complicated, the creation <strong>of</strong> an<br />

appropriate denotational semantics becomes more and more difficult. This especially<br />

applies to parallel (object-oriented) languages. On the other hand, operational semantics,<br />

and in particular structural operational semantics, have proven to be very fruitful.<br />

By defining correctness relations directly on top <strong>of</strong> an operational semantics, much <strong>of</strong><br />

the need for denotational semantics has been side-stepped [Hen90].<br />

Tool Support<br />

Simulator tools, compiler tools (providing prototype implementations) and verification<br />

tools are <strong>of</strong> great use<br />

to be able to validate formal specifications against informal requirements;<br />

to analyse the (dynamic) behaviour <strong>of</strong> specifications;<br />

to implement specifications;<br />

to formally verify specifications.<br />

Since an operational semantics describes how specifications are executed rather than<br />

just what the results <strong>of</strong> the execution should be, tool implementers can greatly benefit<br />

from such a semantic description. A nice demonstration <strong>of</strong> this is given in [vE89] where<br />

a set <strong>of</strong> simulator functions for Hippo (a LOTOS simulator) is systematically derived<br />

from the operational semantics <strong>of</strong> LOTOS. Currently a simulator for POOSL is under<br />

development. Our experience is that the formal semantics (described in the following<br />

chapters) is <strong>of</strong> great value for the construction <strong>of</strong> the simulator. It was possible to create<br />

an almost one-to-one mapping from the elements <strong>of</strong> the operational semantics to the<br />

elements <strong>of</strong> the implementation <strong>of</strong> the simulator.<br />

7.4 Mathematical Preliminaries<br />

In this section we will introduce the basic mathematics that is assumed to be known in<br />

Chapters 8, 9 and 10.<br />

7.4.1 Sets<br />

Sets and their Definitions<br />

A set or collection is a finite or infinite union <strong>of</strong> mathematical objects 3 . These objects<br />

3 This is only an informal and naive explanation. A precise definition would be beyond the scope <strong>of</strong><br />

this thesis.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!