Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionBoth sides next revision | ||
alvis:model [2013/12/29 22:00] marcin | — (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 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** = (// | ||
- | |||
- | **Definition 2.** A **non-hierarchical communication diagram** is a triple //D// = (//A//, //C//, σ), where: | ||
- | * //A// = {X_1, | ||
- | * //C// ⊆ //P// × //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. | ||
- | * The start function σ makes possible delaying activation of some agents. | ||
- | |||
- | Each element belonging to //C// is called a **connection** or a **communication channel**. | ||
- | |||
- | Names of agents that are initially activated are underlined in a communication diagram. | ||
- | |||
- | **FIXME** | ||
- | |||
- | **[[: |