Next: Examples
Up: main
Previous: Extended Automata
Design Decisions
The common language inherits from IF some of its main
features, in particular:
- structuring concepts:
systems consist of processes, running in parallel and communicating
through message passing via communication buffers;
- communication primitives: more exactly, processes
may communicate either through signal exchange (directly or via
signalroutes) or through shared variables;
- real-time primitives:
each process may use several clocks to measure time during the
execution and, in addition, transitions may be guarded with time
constraints (depending on clocks) and decorated
with explicit (eager, delayable, lazy) deadlines;
- open systems:
the language offers the concept of open communication channel,
connected to the environment, and transporting messages between
it and the system;
- non-determinism:
processes may be non-deterministic i.e, more than one transition
may be enabled at some control state, and all situations have to
be considered at execution;
- complex data types:
the language provide several type constructors such as
enumeration, range, array, record, abstract as well as
predefined basic types in order to simplify complex data
description and manipulation;
In order to fit the new requirements, the common language improves
the IF language in several directions, the most important being listed
below:
- parameterization:
using integer constants it is now possible to parameterize
data types (i.e, size of arrays), system configurations
(i.e, number of instances), timing behavior
(i.e, clock constraints)...;
- dynamic features:
the language include dynamic creation and destruction
of process and signalroute (channel) instances. This makes system
configuration to be dynamic, that is, the number of components
running (and in turn, the number of clocks ...) may change during
execution;
- structured control:
the common language integrates hierarchical states
(to structure automata) and,
- composed transitions: basic control statements such
as if-then-else and while-do are provided to
structure automata transitions;
- external code integration:
the common language provide a simple an elegant way to abstract
complex transformations on data through the integration of
external code within procedures. The external code
to be provided depend on tools used i.e, an executable implementation
in order to simulate and model check, or a first-order
axiomatic definition in order to use it inside a prover, etc.
Next: Examples
Up: main
Previous: Extended Automata