sig2] block TCP [sig1] block IP [sig2] [sig2] sr8 [sig1]: state queue queue machine process pr1 process pr2 closed listen ready Figure 1.1 Schematic view of an SDL-92 description Signals (sigl or sig2 in Figure 1.1) arriving on a state machine are queued. By consum- ing a signal from its queue, a state machine executes a transition from one state to another state. During the execution of a transition, a wide range of actions can be performed by a state machine: signal transmission to another state machine, assignment, procedure or operator call, loop, process instance creation and SO on. The execution semantics of SDL is accurately described and includes the semantics of actions in state machine transitions. Data types are described using predefined types or constructs such as Integer, Boolean, Character, struct, Array, String, Charstring, Powerset. ASN.1 can be used in an SDL model 1 SDL-92 means the 1992 version of SDL plus the corrections introduced in Addendum 1 to Recommendation Z.100 of 1996, sometimes called SDL-96. Introduction 3 to describe more complex data types, using constructs such as choice (similar to union in C), optional fields, Bitstring or Octetstring and providing standardized encoding rules. SDL is object-oriented: it provides the notions of classes, inheritance, polymorphism (in SDL-2000) and SO on found in object-oriented programming languages. SDL is frequently used with MSCs, similar to UML (Unified Modeling Language) Sequence Diagrams. 1.2.2 Benefits provided by SDL SDL being a graphical language enables you to visually design models, instead of using only a textual notation. SDL provides graphical structuring features (blocks, etc.), state machines and communication through signals that are not available in programming languages such as C++ or Java. During the modeling process and after its completion, and because SDL has a complete semantics, the SDL description can be rapidly checked and debugged using the powerful tools available today (see Figure 1.2), namely the compilers and simu