As in the Bandera project [6] specification patterns are used to facilitate formulating correctness properties. These specification patterns concern temporal properties of method invocations, and are either temporal patterns or judgement patterns concerning the invocation of a particular method. Below a set of patterns that we have defined, and which are commonly used, are given.
To express that within the call of a method
the property
holds
the judgment pattern
The above patterns can be combined with the
pattern.
For example,
An alternative technique for expressing correctness
properties of behaviours of programs of stack-based languages
is to use stack inspection techniques [13].
Essentially these techniques express constraints on
the set of all possible runtime stacks. Note however that
for instance the
property above
cannot directly be coded as a stack inspection property
since the calls to
and
need not be concurrent.