Next: , Previous: , Up: Top   [Contents][Index]


5 Execution Semantics

The semantics of Dezyne derives from implementing message passing as component based ineraction by means of non-reentrant recursive function invocations. In Dezyne, the occurrence of an event is mapped onto a (member) function call. Every event function implements the recursive procedural execution of all of the side effects, e.g. actions, i.e., event function invocations, state updates, i.e., assignments, runtime library interaction: tracing, queueing and dequeueing and context switching, i.e., blocking and unblocking.

The execution semantics of Dezyne are illustrated using different model examples and the corresponding sequence diagrams.

When interpreting the models and corresponding sequence diagrams, keep in mind that the body of an event is executed atomically in the context of its behavior.

For an in-event all action statements are executed depth-first. All out-events are stored in event queues of the recipient. After the completion of all action statements, just before control is passed back to the caller, a component will flush its queue of pending out events. All out-events are handled this way recursively.


Next: , Previous: , Up: Top   [Contents][Index]