This is an old revision of the document!


Formal model definition

An Alvis model is defined as shown in Definition 1.

Definition 1. An Alvis model is a triple A = (H, B, φ), where:

  • H is a hierarchical communication diagram,
  • B is a syntactically correct code layer,
  • φ is a system layer.

Moreover, each non-hierarchical agent X belonging to the diagram H must be defined in the code layer, and each agent defined in the code layer must belong to the diagram.

It should be underlined that currently Alvis Compiler supports α^0 system layer only.

Before generation of the Haskell model representation models are transformed into equivalent non-hierarchical form. The transformation applies to the communication diagram only. Thus, from the theoretical point of view, we can consider models defined as A = (D,B,φ), where D is a non-hierarchical communication diagram.

FIXME

Definition 2. A non-hierarchical communication diagram is a triple D = (A, C, σ), where:

  • A = {X_1,…,X_n} is the set of agents consisting of two disjoint sets, A_A, A_P such that A = A_AA_P, containing active and passive agents respectively;
  • CP × P, where P is the set of all ports, is the communication relation, such that:
    • a connection cannot be defined between ports of the same agent;
    • procedure ports are either input or output ones i.e. ports defined as procedures are used to transfer signals (values) either to or from a passive agent;
    • a connection between an active and a passive agent must be a procedure call;
    • a connection between two passive agents must be a procedure call from a non-procedure port.

FIXME

Go back