Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Both sides next revision
alvis:in [2013/12/15 00:09]
marcin
— (current)
Line 1: Line 1:
-====== In statement ====== 
  
-An agent can communicate with its outside world using **ports**. Each port can be used both as an input or an output one. The current role of a port is determined by two factors: 
-  - Connections to the port in the corresponding communication diagram -- e.g. if a port ''p'' is used only as an input port for an one-way connection, it cannot be used as an output port. 
-  - Statements used in the code layer -- e.g. if a port ''p'' is used only as an argument of the **in** statement, it is an input port even if all its connections are two-way ones. 
- 
-Any communication through a port can be a **pure communication** or a **value passing combination**.  
- 
-In case of a **pure communication**, the **in** statement collects a signal (without specified value) through the statement port. 
- 
-In case of a **value passing communication**, the **in** statement collects a value through the statement port (probably of a composed type) and assigns it to the statement parameter. 
- 
- 
-The **in** statement is a single-step statement.  
- 
-<code> 
-in p; 
-in p x; 
-</code> 
- 
-**Listing 1. ** In statement syntax: ''p'' stands for a port name and ''x'' stands for a parameter name 
- 
-===== Example 1 ===== 
- 
-{{:alvis:example3.png|}} 
- 
-**Figure 1. ** Example 1 communication diagram 
- 
-<code> 
-agent A { 
-  out a; 
-} 
- 
-agent B { 
-  in b; 
-} 
-</code> 
- 
-**Listing 1. ** Example 1 code layer 
- 
-The only task of the ''A'' agent is sending a signal through its port ''a'' and the only task of the ''B'' agent is collecting a signal through its port ''b'' 
- 
-A communication between two active agents can be initialised by any of them. The agent that initialises it, performs the **out** statement to provide some information and waits for the second agent to take it, or performs the **in** statement to express its readiness to collect some information and waits until the second agent provides it. 
- 
- 
- 
- 
- 
- 
- 
-**[[:alvis:manual|Go back]]**