Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Both sides next revision
alvis:model [2015/11/30 01:18]
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 $\mathbf{A} = (H,B,\varphi)$, where: 
-  * $H$ is a **hierarchical communication diagram**, 
-  * $B$ is a syntactically correct **code layer**,  
-  * $\varphi$ 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 $\alpha^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 $\mathbf{A} = (D,B,\varphi)$, where $D$ is a **non-hierarchical communication diagram**.  
- 
-**Definition 2.** A **non-hierarchical communication diagram** is a triple $D = (A, C, \sigma)$, where: 
-  * $A = \{X_1,\dots,X_n\}$ is the set of **agents** consisting of two disjoint sets, $A_A$, $A_P$ such that $A = A_A \cup A_P$, containing **active** and **passive** agents respectively; 
-  * $C \subseteq P \times 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 $\sigma$ 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. 
- 
- 
-**[[:alvis:manual|Go back]]**