An SDL system is made of functional blocks and each block can be further decomposed in sub-blocks. The lowest level block is composed of one process or several processes described as finite state machines. Communication Blocks are connected through channels that carry the messages (or signals) exchanged between the blocks. A block agent consists of process agents. Behavior Each process agent is a state machine that contributes to the action carried out by the system. A message stimulus coming from the environment or from another agent to an agent is called a signal. Signals received by a process agent are first placed in a queue (the input port). When the state machine is waiting in a state, if the first signal in the input port is enabled for that state it starts a transition leading to another state. Transitions can output signals to other agents or to the environment. A process agent is allowed to contain procedure types so that the same actions can be invoked from different places. It is also allowed to call a remote procedure type to invoke a procedure in another agent (or even another system) and wait for a response. In this example MyVariable is of type INTEGER and is the only variable in the process. The first transition is the start transition that initializes the local variable. A connection request message conReq is sent, a 5 seconds timer conReqTimer is started, and the state machine goes to the connecting state. In the connecting state if the timer goes off -that is equivalent to a message receive- the connection request is sent again up to 10 times. If a connection confirmation is received the state machine goes to connected state. This is a typical telecommunication protocol scenario. Available symbols are: Data SDL Abstract Data Types (ADT) support basic data types such as INTEGER, REAL, CHARSTRING as well as structured ones such as structures (STRUCT), enumerated (LITERALS), constants (SYNONYMS). Syntax looks like the one from Pascal, for example an assignment is written ':='. Variants SDL-RT is based on the ITU Specification and Description Language replacing the data language with C. Latest version of SDL standard (SDL'2010) now includes the support of C data types and syntax making SDL-RT basic principle part of the official standard. TNSDL is a variant developed by Nokia for their internal use. Related technologies MSC Message Sequence Chart. Another ITU-T related notation