Abstract: PARFORMAN (PARallel FORMal ANnotation language)
is a high-level specification language for expressing intended behaviour or
known types of error conditions when debugging or testing parallel programs.
The high-level debugging approach which is supported by PARFORMAN is
model-based, similar to the EBBA system, or to Algorithmic Debugging. Models
of intended or faulty behaviour can be succinctly specified in PARFORMAN.
These models are then compared with the actual behaviour in terms of
execution traces of events, in order to localize possible bugs. PARFORMAN can
also be used as a general language for expressing computations over execution
histories.PARFORMAN is based on a precise axiomatic model of target program
behavior. This model, called H-space (History-space), is formally defined
through a set of general axioms about three basic relations, which may or may
not hold between two arbitrary events: they may be sequentially ordered
(SEQ), they may be parallel (PAR), or one of them might be included in
another composite event (IN). The general notion of composite event is
exploited systematically, which makes possible more powerful and succinct
specifications. The high-level notion of event-grammar is introduced to
describe allowed event patterns over a certain application domain or
language. Auxiliary composite events such as Snapshots are introduced to be
able to define the notion "occurred at the same time" at suitable levels of
abstraction. Finally, patterns and aggregate operations on events are
introduced to make possible short and readable specifications. In addition to
debugging and testing, PARFORMAN can also be used to specify profiles and
performance measurements.