`
`INTERNATIONAL TELECOMMUNICATION UNION
`
`ITU-T
`
`TELECOMMUNICATION
`STANDARDIZATION SECTOR
`OF ITU
`
`Z.100
`(03/93)
`
`PROGRAMMING LANGUAGES
`
`CCITT SPECIFICATION AND DESCRIPTION
`LANGUAGE (SDL)
`
`ITU-T Recommendation Z.100
`Superseded by a more recent version
`
`(Previously “CCITT Recommendation”)
`
`GOOGLE 1023
`Page 1
`
`
`
`Superseded by a more recent version
`
`
`
`
`
`
`
`FOREWORD
`
`The ITU Telecommunication Standardization Sector (ITU-T) is a permanent organ of the International Telecom-
`munication Union. The ITU-T is responsible for studying technical, operating and tariff questions and issuing
`Recommendations on them with a view to standardizing telecommunications on a worldwide basis.
`
`The World Telecommunication Standardization Conference (WTSC), which meets every four years, established the
`topics for study by the ITU-T Study Groups which, in their turn, produce Recommendations on these topics.
`
`ITU-T Recommendation Z.100 was revised by the ITU-T Study Group X (1988-1993) and was approved by the WTSC
`(Helsinki, March 1-12, 1993).
`
`___________________
`
`NOTES
`
`
`
`
`
`As a consequence of a reform process within the International Telecommunication Union (ITU), the CCITT
`1
`ceased to exist as of 28 February 1993. In its place, the ITU Telecommunication Standardization Sector (ITU-T) was
`created as of 1 March 1993. Similarly, in this reform process, the CCIR and the IFRB have been replaced by the
`Radiocommunication Sector.
`
`In order not to delay publication of this Recommendation, no change has been made in the text to references containing
`the acronyms “CCITT, CCIR or IFRB” or their associated entities such as Plenary Assembly, Secretariat, etc. Future
`editions of this Recommendation will contain the proper terminology related to the new ITU structure.
`
`In this Recommendation, the expression “Administration” is used for conciseness to indicate both a
`2
`telecommunication administration and a recognized operating agency.
`
`
`
`All rights reserved. No part of this publication may be reproduced or utilized in any form or by any means, electronic or
`mechanical, including photocopying and microfilm, without permission in writing from the ITU.
`
` ITU 1995
`
`GOOGLE 1023
`Page 2
`
`ª
`
`
`Superseded by a more recent version
`TABLE OF CONTENTS
`
`1
`
`2
`
`1.2
`1.3
`
`Introduction to SDL........................................................................................................................................
`1.1
`Introduction.......................................................................................................................................
`1.1.1
`Objective ...........................................................................................................................
`1.1.2
`Application ........................................................................................................................
`1.1.3
`System specification..........................................................................................................
`SDL grammars ..................................................................................................................................
`Basic definitions................................................................................................................................
`1.3.1
`Definition, type and instance.............................................................................................
`1.3.2
`Environment ......................................................................................................................
`1.3.3
`Errors.................................................................................................................................
`Presentation style ..............................................................................................................................
`1.4.1
`Division of text..................................................................................................................
`1.4.2
`Titled enumeration items...................................................................................................
`Metalanguages ..................................................................................................................................
`1.5.1 Meta IV .............................................................................................................................
`1.5.2
`BNF ...................................................................................................................................
`1.5.3 Metalanguage for graphical grammar................................................................................
`Differences to SDL-88 ......................................................................................................................
`
`1.4
`
`1.5
`
`1.6
`
`2.3
`
`2.4
`
`Basic SDL.......................................................................................................................................................
`2.1
`Introduction.......................................................................................................................................
`2.2
`General rules .....................................................................................................................................
`2.2.1
`Lexical rules ......................................................................................................................
`2.2.2
`Visibility rules, names and identifiers ...............................................................................
`2.2.3
`Informal text......................................................................................................................
`2.2.4
`Drawing rules ....................................................................................................................
`2.2.5
`Partitioning of diagrams ....................................................................................................
`2.2.6
`Comment ...........................................................................................................................
`2.2.7
`Text extension ...................................................................................................................
`2.2.8
`Text symbol.......................................................................................................................
`Basic data concepts ...........................................................................................................................
`2.3.1
`Data type definitions .........................................................................................................
`2.3.2
`Variable .............................................................................................................................
`2.3.3
`Values and literals. ............................................................................................................
`2.3.4
`Expressions........................................................................................................................
`System structure ................................................................................................................................
`2.4.1
`Organisation of SDL specifications...................................................................................
`2.4.1.1
`Framework ......................................................................................................
`2.4.1.2
`Package............................................................................................................
`2.4.1.3
`Referenced definition ......................................................................................
`System ...............................................................................................................................
`2.4.2
`Block .................................................................................................................................
`2.4.3
`Process...............................................................................................................................
`2.4.4
`Service...............................................................................................................................
`2.4.5
`Procedure...........................................................................................................................
`2.4.6
`Communication .................................................................................................................................
`2.5.1
`Channel..............................................................................................................................
`2.5.2
`Signal route .......................................................................................................................
`
`2.5
`
`
`
`
`
`Recommendation Z.100 (03/93) Superseded by a more recent version
`
`Page
`
`1
`1
`1
`1
`2
`2
`3
`3
`5
`5
`5
`5
`5
`7
`7
`9
`10
`11
`
`13
`13
`13
`13
`16
`20
`20
`20
`21
`22
`22
`22
`23
`23
`23
`23
`23
`23
`23
`24
`26
`28
`30
`32
`37
`39
`42
`42
`44
`
`i
`
`GOOGLE 1023
`Page 3
`
`
`
`Superseded by a more recent version
`
`2.6.2
`2.6.3
`2.6.4
`2.6.5
`2.6.6
`2.6.7
`2.6.8
`
`Connection ........................................................................................................................
`2.5.3
`Signal.................................................................................................................................
`2.5.4
`Signal list definition ..........................................................................................................
`2.5.5
`Behaviour ..........................................................................................................................................
`2.6.1
`Variables............................................................................................................................
`2.6.1.1
`Variable definition...........................................................................................
`2.6.1.2
`View definition................................................................................................
`Start ...................................................................................................................................
`State...................................................................................................................................
`Input ..................................................................................................................................
`Save ...................................................................................................................................
`Spontaneous transition ......................................................................................................
`Label..................................................................................................................................
`Transition ..........................................................................................................................
`2.6.8.1
`Transition body ...............................................................................................
`2.6.8.2
`Transition terminator.......................................................................................
`2.6.8.2.1 Nextstate........................................................................................
`2.6.8.2.2 Join ................................................................................................
`2.6.8.2.3 Stop................................................................................................
`2.6.8.2.4 Return ............................................................................................
`Action................................................................................................................................................
`2.7.1
`Task ...................................................................................................................................
`2.7.2
`Create ................................................................................................................................
`2.7.3
`Procedure call....................................................................................................................
`2.7.4
`Output................................................................................................................................
`2.7.5
`Decision.............................................................................................................................
`Timer.................................................................................................................................................
`Internal input and output ...................................................................................................................
`Examples...........................................................................................................................................
`
`
`
`2.6
`
`2.7
`
`2.8
`2.9
`2.10
`
`3
`
`4
`
`Structural Decomposition Concepts in SDL...................................................................................................
`3.1
`Introduction.......................................................................................................................................
`3.2
`Partitioning........................................................................................................................................
`3.2.1
`General ..............................................................................................................................
`3.2.2
`Block partitioning..............................................................................................................
`3.2.3
`Channel partitioning ..........................................................................................................
`Refinement ........................................................................................................................................
`
`3.3
`
`Additional Concepts of Basic SDL.................................................................................................................
`4.1
`Introduction.......................................................................................................................................
`4.2
`Macro ................................................................................................................................................
`4.2.1
`Lexical rules ......................................................................................................................
`4.2.2 Macro definition................................................................................................................
`4.2.3 Macro call..........................................................................................................................
`Generic system definition..................................................................................................................
`4.3.1
`External synonym..............................................................................................................
`4.3.2
`Simple expression..............................................................................................................
`4.3.3
`Optional definition ............................................................................................................
`4.3.4
`Optional transition string...................................................................................................
`Asterisk state .....................................................................................................................................
`
`4.4
`
`4.3
`
`Page
`
`47
`48
`49
`50
`50
`50
`51
`51
`52
`53
`55
`56
`57
`58
`58
`59
`59
`60
`60
`61
`62
`62
`63
`64
`65
`68
`70
`71
`72
`
`82
`82
`82
`82
`83
`86
`89
`
`91
`91
`91
`91
`91
`95
`97
`97
`97
`98
`100
`102
`
`ii
`
`Recommendation Z.100 (03/93) Superseded by a more recent version
`
`GOOGLE 1023
`Page 4
`
`
`
`Superseded by a more recent version
`
`4.5
`4.6
`4.7
`4.8
`4.9
`4.10
`4.11
`4.12
`4.13
`4.14
`
`Multiple appearance of state .............................................................................................................
`Asterisk input ....................................................................................................................................
`Asterisk save .....................................................................................................................................
`Implicit transition ..............................................................................................................................
`Dash nextstate ...................................................................................................................................
`Priority Input .....................................................................................................................................
`Continuous signal..............................................................................................................................
`Enabling condition ............................................................................................................................
`Imported and Exported value ............................................................................................................
`Remote procedures............................................................................................................................
`
`
`
`5
`
`5.2
`
`5.3
`
`Data in SDL....................................................................................................................................................
`5.1
`Introduction.......................................................................................................................................
`5.1.1
`Abstraction in data types ...................................................................................................
`5.1.2
`Outline of formalisms used to model data.........................................................................
`5.1.3
`Terminology ......................................................................................................................
`5.1.4
`Division of text on data .....................................................................................................
`The data kernel language ..................................................................................................................
`5.2.1
`Data type definitions .........................................................................................................
`5.2.2
`Literals and parameterised operators.................................................................................
`5.2.3
`Axioms ..............................................................................................................................
`5.2.4
`Conditional equations........................................................................................................
`Passive use of SDL data....................................................................................................................
`5.3.1
`Extended data definition constructs...................................................................................
`5.3.1.1
`Special operators .............................................................................................
`5.3.1.2
`Character string literals ...................................................................................
`5.3.1.3
`Predefined data................................................................................................
`5.3.1.4
`Equality and noequality...................................................................................
`5.3.1.5
`Boolean axioms ...............................................................................................
`5.3.1.6
`Conditional terms ............................................................................................
`5.3.1.7
`Errors...............................................................................................................
`5.3.1.8
`Ordering ..........................................................................................................
`5.3.1.9
`Syntypes ..........................................................................................................
`5.3.1.9.1 Range condition.............................................................................
`5.3.1.10 Structure sorts..................................................................................................
`5.3.1.11
`Inheritance.......................................................................................................
`5.3.1.12 Generators .......................................................................................................
`5.3.1.12.1 Generator definition.......................................................................
`5.3.1.12.2 Generator transformation...............................................................
`5.3.1.13 Synonyms .......................................................................................................
`5.3.1.14 Name class literals...........................................................................................
`5.3.1.15 Literal mapping ...............................................................................................
`Operator definitions...........................................................................................................
`Use of data.........................................................................................................................
`5.3.3.1
`Expressions......................................................................................................
`5.3.3.2
`Ground expressions .........................................................................................
`5.3.3.3
`Synonym..........................................................................................................
`5.3.3.4
`Indexed primary ..............................................................................................
`5.3.3.5
`Field primary ...................................................................................................
`
`Page
`
`103
`103
`103
`103
`104
`104
`105
`106
`109
`112
`
`115
`115
`115
`115
`116
`116
`116
`116
`119
`121
`124
`125
`125
`126
`127
`128
`129
`129
`130
`131
`132
`132
`134
`136
`
`139
`139
`141
`142
`143
`144
`146
`148
`148
`149
`150
`151
`151
`
`137
`
`5.3.2
`5.3.3
`
`
`
`
`
`Recommendation Z.100 (03/93) Superseded by a more recent version
`
`iii
`
`GOOGLE 1023
`Page 5
`
`
`
`Superseded by a more recent version
`
`5.4.3
`
`5.4.4
`
`Page
`152
`153
`153
`153
`154
`154
`155
`155
`156
`157
`158
`158
`159
`160
`160
`161
`161
`162
`162
`163
`163
`164
`166
`166
`166
`166
`167
`168
`170
`171
`172
`172
`173
`173
`174
`175
`177
`179
`179
`180
`180
`181
`181
`181
`181
`182
`182
`182
`183
`184
`185
`194
`194
`198
`200
`220
`
`5.4
`
`6.2
`
`6.3
`
`6
`
`7
`
`Structure primary.............................................................................................
`5.3.3.6
`Conditional ground expression........................................................................
`5.3.3.7
`Use of data with variables .................................................................................................................
`5.4.1
`Variable and data definitions.............................................................................................
`5.4.2
`Accessing variables ...........................................................................................................
`5.4.2.1
`Active expressions...........................................................................................
`5.4.2.2
`Variable access ................................................................................................
`5.4.2.3
`Conditional expression ....................................................................................
`5.4.2.4
`Operator application ........................................................................................
`Assignment statement........................................................................................................
`5.4.3.1
`Indexed variable ..............................................................................................
`5.4.3.2
`Field variable...................................................................................................
`5.4.3.3
`Default initialization........................................................................................
`Imperative operators..........................................................................................................
`5.4.4.1
`Now expression ...............................................................................................
`5.4.4.2
`Import expression............................................................................................
`5.4.4.3
`PId expression .................................................................................................
`5.4.4.4
`View expression ..............................................................................................
`5.4.4.5
`Timer active expression...................................................................................
`5.4.4.6
`Anyvalue expression .......................................................................................
`Value returning procedure call ..........................................................................................
`5.4.5
`External data......................................................................................................................
`5.4.6
`Structural Typing Concepts in SDL ...............................................................................................................
`6.1
`Types, instances, and gates ...............................................................................................................
`6.1.1
`Type definitions.................................................................................................................
`6.1.1.1
`System type .....................................................................................................
`6.1.1.2
`Block type .......................................................................................................
`6.1.1.3
`Process type.....................................................................................................
`6.1.1.4
`Service type .....................................................................................................
`Type expression.................................................................................................................
`Definitions based on types ................................................................................................
`6.1.3.1
`System definition based on system type..........................................................
`6.1.3.2
`Block definition based on block type ..............................................................
`6.1.3.3
`Process definition based on process type ........................................................
`6.1.3.4
`Service definition based on service type .........................................................
`Gate ...................................................................................................................................
`6.1.4
`Context parameter .............................................................................................................................
`6.2.1
`Process context parameter .................................................................................................
`6.2.2
`Procedure context parameter .............................................................................................
`6.2.3
`Remote procedure context parameter ................................................................................
`6.2.4
`Signal context parameter ...................................................................................................
`6.2.5
`Variable context parameter................................................................................................
`6.2.6
`Remote variable context parameter ...................................................................................
`6.2.7
`Timer context parameter....................................................................................................
`6.2.8
`Synonym context parameter ..............................................................................................
`6.2.9
`Sort context parameter.......................................................................................................
`Specialization ....................................................................................................................................
`6.3.1
`Adding properties..............................................................................................................
`6.3.2
`Virtual type........................................................................................................................
`6.3.3
`Virtual transition/save .......................................................................................................
`Examples...........................................................................................................................................
`6.4
`Transformation of SDL Shorthands ...............................................................................................................
`7.1
`Transformation of additional concepts..............................................................................................
`7.2
`Insertion of full qualifiers..................................................................................................................
`Annex A – Index to articles 2 to 7 of Recommendation Z.100 (normative parts)...................................................
`Annex B – SDL Glossary ........................................................................................................................................
`
`6.1.2
`6.1.3
`
`iv
`
`Recommendation Z.100 (03/93) Superseded by a more recent version
`
`GOOGLE 1023
`Page 6
`
`
`
`Superseded by a more recent version
`
`SUMMARY
`
`Scope-objective
`
`This Recommendation defines SDL (CCITT Specification and Description Language) intended for unambiguous
`specification and description of telecommunications systems. The scope of SDL is elaborated in 1.1.1. This
`Recommendation is a reference manual for the language.
`
`Coverage
`
`SDL has concepts for behaviour and data description as well as for structuring large systems. The basis of behaviour
`description is extended finite state machines communicating by messages. The basis for data description is algebraic data
`types. The basis for structuring is hierarchical decomposition and type hierarchies. These foundations of SDL are
`elaborated in the respective main sections of the Recommendation. A distinctive feature of SDL is the graphical
`representation.
`
`Applications
`
`SDL is applicable within standard bodies and industry. The main applications areas, which SDL has been designed for
`are stated in 1.1.2, but SDL is generally suitable for describing reactive systems.
`
`Status/Stability
`
`This Recommendation is the complete language reference manual supported by guidelines for its usage in Appendix I.
`Annex F gives a formal definition of SDL semantics.
`
`Associated work
`
`The main text is accompanied by annexes:
`
`Index of non-terminals and keywords
`A
`B Glossary
`C
`Initial Algebra Model
`D SDL Predefined Data
`E
`reserved for future use
`F
`Formal Definition
`
`And appendices:
`
`SDL Methodology Guidelines
`I
`II SDL Bibliography
`
`One method for SDL usage within standards is described in Recommendation Q.65. A recommended strategy for
`introducing a formal description technique like SDL in standards is available in Recommendation Z.110. References to
`additional material on SDL, including information on industrial usage of SDL, can be found in Appendix III.
`
`Background
`
`Diffe