ISO/IEC 14750:1999
(Main)Information technology — Open Distributed Processing — Interface Definition Language
Information technology — Open Distributed Processing — Interface Definition Language
This Recommendation | International Standard is intended to provide the ODP Reference Model (see ITU-T Rec. X.902 | ISO/IEC 10746-2 and ITU-T Rec. X.903 | ISO/IEC 10746-3) with a language and environment neutral notation to describe computational operation interface signatures. Use of this notation does not imply use of specific supporting mechanisms and protocols.
Technologies de l'information — Traitement réparti ouvert — Langage de définition d'interface
La présente Recommandation | Norme internationale est destinée à donner au modèle de référence du traitement ODP (voir la Rec. UIT-T X.902 | ISO/CEI 10746-2 et la Rec. UIT-T X.903 | ISO/CEI 10746-3) un langage et une notation d'environnement neutre, afin de décrire les signatures des interfaces d'opérations de calcul. L'utilisation de cette notation ne suppose pas l'utilisation de mécanismes supports ou de protocoles particuliers.
General Information
Buy Standard
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 14750
First edition
1999-03-15
Information technology — Open Distributed
Processing — Interface Definition
Language
Technologies de l'information — Traitement distribué ouvert — Langage de
définition d'interface
Reference number
B C
ISO/IEC 14750:1999(E)
---------------------- Page: 1 ----------------------
ISO/IEC 14750 : 1999 (E)
© ISO/IEC 1999
All rights reserved. Unless otherwise specified, 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 publisher.
ISO/IEC Copyright Office • Case postale 56 • CH-1211 Genève 20 • Switzerland
Printed in Switzerland
ii
---------------------- Page: 2 ----------------------
©
ISO/IEC 14750 : 1999 (E) ISO/IEC
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the
specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the
development of International Standards through technical committees established by the respective organization to deal with
particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other
international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 3.
In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. Draft
International Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as an
International Standard requires approval by at least 75 % of the national bodies casting a vote.
International Standard ISO/IEC 14750 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 33, Distributed application services, in collaboration with ITU-T. The identical text is published as ITU-T
Recommendation X.920.
Annex A forms a normative part of this International Standard. Annex B is for information only.
iv
---------------------- Page: 3 ----------------------
ISO/IEC 14750 : 1999 (E)
INTERNATIONAL STANDARD
ISO/IEC 14750 : 1998 (E)
ITU-T Rec. X.920 (1997 E)
ITU-T RECOMMENDATION
INFORMATION TECHNOLOGY – OPEN DISTRIBUTED PROCESSING –
INTERFACE DEFINITION LANGUAGE
1 Scope
This Recommendation | International Standard is intended to provide the ODP Reference Model (see ITU-T Rec. X.902 |
ISO/IEC 10746-2 and ITU-T Rec. X.903 | ISO/IEC 10746-3) with a language and environment neutral notation to
describe computational operation interface signatures. Use of this notation does not imply use of specific supporting
mechanisms and protocols.
2 Normative references
The following Recommendations and International Standards contain provisions which, through reference in this text,
constitute provisions of this Recommendation | International Standard. At the time of publication, the editions indicated
were valid. All Recommendations and Standards are subject to revision, and parties to agreements based on this
Recommendation | International Standard are encouraged to investigate the possibility of applying the most recent
edition of the Recommendations and Standards listed below. Members of IEC and ISO maintain registers of currently
valid International Standards. The Telecommunication Standardization Bureau of the ITU maintains a list of currently
valid ITU-T Recommendations.
2.1 Identical Recommendations | International Standards
– ITU-T Recommendation X.902 (1995) | ISO/IEC 10746-2:1996, Information technology – Open
distributed processing – Reference Model: Foundations.
– ITU-T Recommendation X.903 (1995) | ISO/IEC 10746-3:1996, Information technology – Open
distributed processing – Reference Model: Architecture.
2.2 Additional references
– ISO/IEC 646:1991, Information technology – ISO 7-bit coded character set for information interchange.
– ISO/IEC 8859-1:1998, Information technology – 8-bit single-byte coded graphic character sets – Part 1:
Latin alphabet No. 1.
3 Definitions
For the purposes of this Recommendation | International Standard, the following definitions apply.
This Recommendation | International Standard makes use of the following terms defined in ITU-T Rec. X.902 |
ISO/IEC 10746-2:
– object;
– interface;
– interface signature.
This Recommendation | International Standard makes use of the following terms defined in ITU-T Rec. X.903 |
ISO/IEC 10746-3:
– operation.
ITU-T Rec. X.920 (1997 E) 1
---------------------- Page: 4 ----------------------
ISO/IEC 14750 : 1999 (E)
4 ODP IDL syntax and semantics
ODP IDL (the Interface Definition Language) is the language used to describe the interface signatures for interfaces that
client objects call and object implementations provide. An interface definition written in ODP IDL completely defines
the interface signature and fully specifies each operation’s parameters.
An ODP IDL specification logically consists of one or more files. A file is conceptually translated in several phases. The
first phase is preprocessing, which performs file inclusion and macro substitution. Preprocessing is controlled by
directives introduced by lines having # as the first character other than white space. The result of the preprocessing is a
sequence of tokens. Such a sequence of tokens, that is, a file after preprocessing, is called a translation unit.
1)
ODP IDL obeys the same lexical rules as C++ , although new keywords are introduced to support distribution concepts.
It also provides full support for standard C++ preprocessing features. The ODP IDL specification is expected to track
relevant changes to C++ introduced by the ISO/IEC standardization effort.
The description of ODP IDL's lexical conventions is presented in 4.1. A description of ODP IDL preprocessing is
presented in 4.2. The scope rules for identifiers in an ODP IDL specification are described in 4.13 on.
The ODP IDL grammar is a subset of ISO/IEC C++ with additional constructs to support the operation invocation
mechanism. ODP IDL is a descriptive language; it supports C++ syntax for constant, type, and operation declarations; it
does not include any algorithmic structures or variables. The grammar is presented in 4.3.
This clause describes ODP IDL semantics and gives the syntax for ODP IDL grammatical constructs. The description of
ODP IDL grammar uses a syntax notation that is similar to Extended Backus-Naur format (EBNF). Table 1 lists the
symbols used in this format and their meaning.
Table 1 – ODP IDL EBNF format
Symbol Meaning
::= Is defined to be
| Alternatively
Non-terminal
"text" Literal
* The preceding syntactic unit can be repeated zero or more times.
+ The preceding syntactic unit can be repeated one or more times.
{} The enclosed syntactic units are grouped as a single synctactic unit.
[] The enclosed syntactic unit is optional – may occur zero or more times.
4.1 Lexical conventions
2)
This subclause presents the lexical conventions of ODP IDL. It defines tokens in an ODP IDL specification and
describes comments, identifiers, keywords, and literals – integer, character, and floating point constants and string
literals.
ODP IDL uses the ISO/IEC Latin-1 (ISO/IEC 8859-1) character set. This character set is divided into alphabetic
characters (letters), digits, graphic characters, the space (blank) character and formatting characters. Table 2 shows the
ODP IDL alphabetic characters; upper- and lower-case equivalencies are paired. Table 3 shows the digits and Table 4
shows the graphic characters.
The formatting characters are shown in Table 5.
_______________
1)
Ellis, Margaret A. and Bjarne Stroustrop, The Annotated C++ Reference Manual, Addison-Wesley Publishing Company, Reading,
Massachusetts, 1990, ISBN 0-201-51459-1.
2)
This sublcause is an adaptation of The Annotated C++ Reference Manual, Chapter 2; it differs in the list of legal keywords and
punctuation.
2 ITU-T Rec. X.920 (1997 E)
---------------------- Page: 5 ----------------------
ISO/IEC 14750 : 1999 (E)
Table 2 – The 114 alphabetic characters (letters)
Char Description Char Description
Aa Upper/Lower-case A Upper/Lower-case A with grave accent
Àà
Bb Upper/Lower-case B Áá Upper/Lower-case A with acute accent
Cc Upper/Lower-case C Ââ Upper/Lower-case A with circumflex accent
Dd Upper/Lower-case D Ãã Upper/Lower-case A with tilde
Ee Upper/Lower-case E Ää Upper/Lower-case A with diaeresis
Ff Upper/Lower-case F Åå Upper/Lower-case A with ring above
Gg Upper/Lower-case G Ææ Upper/Lower-case dipthong A with E
Hh Upper/Lower-case H Çç Upper/Lower-case C with cedilla
Ii Upper/Lower-case I Èè Upper/Lower-case E with grave accent
Jj Upper/Lower-case J Éé Upper/Lower-case E with acute accent
Kk Upper/Lower-case K Êê Upper/Lower-case E with circumflex accent
Ll Upper/Lower-case L Ëë Upper/Lower-case E with diaeresis
Mm Upper/Lower-case M Ìì Upper/Lower-case I with grave accent
Nn Upper/Lower-case N Íí Upper/Lower-case I with acute accent
Oo Upper/Lower-case O Îî Upper/Lower-case I with circumflex accent
Pp Upper/Lower-case P Ïï Upper/Lower-case I with diaeresis
Qq Upper/Lower-case Q Ðð Upper/Lower-case Icelandic eth
Rr Upper/Lower-case R Ññ Upper/Lower-case N with tilde
Ss Upper/Lower-case S Òò Upper/Lower-case O with grave accent
Tt Upper/Lower-case T Óó Upper/Lower-case O with accute accent
Uu Upper/Lower-case U Ôô Upper/Lower-case O with circumflex accent
Vv Upper/Lower-case V Õõ Upper/Lower-case O with tilde
Ww Upper/Lower-case W Öö Upper/Lower-case O with diaeresis
Xx Upper/Lower-case X Øø Upper/Lower-case O with oblique stroke
Yy Upper/Lower-case Y Ùù Upper/Lower-case U with grave accent
Zz Upper/Lower-case Z Úú Upper/Lower-case U with acute accent
Ûû Upper/Lower-case U with circumflex accent
Üü Upper/Lower-case U with diaeresis
Ýý Upper/Lower-case Y with acute accent
Þþ Upper/Lower-case Icelandic thorn
ß Lower-case German sharp S
ÿ Lower-case Y with diaeresis
ITU-T Rec. X.920 (1997 E) 3
---------------------- Page: 6 ----------------------
ISO/IEC 14750 : 1999 (E)
Table 3 – Decimal digits
0 1 2 3 4 5 6 7 8 9
Table 4 – The 65 graphic characters
Char Description Char Description
! Exclamation point ¡ Inverted exclamation mark
" Double quote ¢ Cent sign
# Number sign £ Pound sign
$ Dollar sign ¤ Currency sign
% Percent sign ¥ Yen sign
& Ampersand | Broken bar
' Apostrophe § Section/paragraph sign
( Left parenthesis ¨ Diaeresis
) Rigth parenthesis © Copyright sign
a
* Asterisk Feminine ordinal indicator
+ Plus sign « Left angle quotation mark
, Comma ¬ Not sign
- Hyphen, minus sign – Soft hyphen
. Period, full stop ® Registered trade mark sign
/ Solidus - Macron
: Colon ° Ring above, degree sign
; Semicolon ± Plus-minus sign
< Less-than sign 2 Superscript two
= Equals sign 3 Superscript three
> Greater-than sign ´ Acute
? Question mark μ Micro
@ Commercial at ¶ Pilcrow
[ Left square bracket · Middle dot
\ Reverse solidus ‚ Cedilla
] Right square bracket 1 Superscript one
^ Circumflex º Masculine ordinal indicator
_ Low line, underscore » Right angle quotation mark
` Grave ¼ Vulgar fraction 1/4
{ Left curly bracket ½ Vulgar fraction 1/2
| Vertical line ¾ Vulgar fraction 3/4
} Right curly bracket ¿ Inverted question mark
~ Tilde x Multiplication sign
÷ Division sign
4 ITU-T Rec. X.920 (1997 E)
---------------------- Page: 7 ----------------------
ISO/IEC 14750 : 1999 (E)
Table 5 – The Formatting Characters
Description Abbreviation ISO/IEC 646 octal value
Alert BEL 007
Backspace BS 010
Horizontal tab HT 011
Newline NL, LF 012
Vertical tab VT 013
Form feed FF 014
Carriage return CR 015
4.1.1 Tokens
There are five kinds of tokens: identifiers, keywords, literals, operators, and other separators. Blanks, horizontal and
vertical tabs, newlines, formfeeds, and comments (collective, "white space"), as described below, are ignored except as
they serve to separate tokens. Some white space is required to separate otherwise adjacent identifiers, keywords, and
constants.
If the input stream has been parsed into tokens up to a given character, the next token is taken to be the longest string of
characters that could possibly constitute a token.
4.1.2 Comments
The characters /* start a comment, which terminates with the characters */. These comments do not nest. The
characters // start a comment which terminates at the end of the line on which they occur. The comment characters //, /*,
and */ have no special meaning within a // comment and are treated just like other characters. Similarly, the comment
characters // and /* have no special meaning within a /* comment. Comments may contain alphabetic, digit, graphic,
space, horizontal tab, vertical tab, form feed and newline characters.
4.1.3 Identifiers
An identifier is an arbitrarily long sequence of alphabetic, digit, and underscore ("_") characters. The first character must
be an alphabetic character. All characters are significant.
Identifiers that differ only in case collide and yield a compilation error. An identifier for a definition must be spelled
consistently (with respect to case) throughout a specification.
When comparing two identifiers to see if they collide:
• Upper- and lower-case letters are treated as the same letter. Table 2 defines the equivalence mapping of
upper- and lower-case letters.
• The comparison does not take into account equivalences between digraphs and pairs of letters (e.g. "æ"
and "ae" are not considered equivalent) or equivalences between accented and non-accented letters
(e.g. "à" and "a" are not considered equivalent).
• All characters are significant.
There is only one name space for ODP IDL identifiers. Using the same identifier for a constant and an interface, for
example, produces a compilation error.
4.1.4 Keywords
The identifiers listed in Table 6 reserved for use as keywords, and may not be used otherwise. The keyword Object in
ODP IDL is used to represent an interface type whereas the keyword interface is used to indicate the start of an
interface declaration in an interface signature template. The keyword "Object" can be used as a type specifier. The
keyword attribute defines a method giving access to a portion of the state of an object. An attribute definition is
logically equivalent to declaring a pair of accessor methods; one to retrieve the value of the attribute and one to set the
value of the attribute.
The keyword Exception is used to represent the ODP concept of unsuccessful named termination, the exception name
being the termination name.
Keywords obey the rules for identifiers (see 1.3 ) and must be written exactly as shown in the above list. For example,
"boolean" is correct; "Boolean" is not. ODP IDL specifications use the characters shown in Table 7 as punctuation.
In addition, the tokens listed in Table 8 are used by the preprocessor.
ITU-T Rec. X.920 (1997 E) 5
---------------------- Page: 8 ----------------------
ISO/IEC 14750 : 1999(E)
Table 6 – Keywords
any default in oneway struc wchar
attribute double inout out switch wstring
boolean enum interface raises TRUE
case exception long readonly typedef
char FALSE module sequence unsigned
const fixed Object short union
context float octet string void
Table 7 – Punctuation tokens
; { } : :: , = + -( ) < > [ ]
’ " \ | ^ & * / % ~ << >>
Table 8 – Preprocessor tokens
# ## ! || && include pragma define
4.1.5 Literals
Wide character and wide string literals are specified exactly like character and string literals. All character and string
literals, both wide and non-wide, may only be specified (portably) using the characters found in the ISO/IEC 8859-1
character set. Note that these extensions for international characters only affect the specification of literals in the ODP
IDL and not the rest of ODP IDL source files. That is, the interface names, operation names, type names, etc., will
continue to be limited to the ISO/IEC 8859-1 character set.
Literals of the new integer and floating-point types are specified as described in this subclause (Integer, Literals and
Floating-Point Literals).
4.1.5.1 Integer literals
An integer literal consisting of a sequence of digits is taken to be decimal (base ten) unless it begins with 0 (digit zero).
A sequence of digits starting with 0 is taken to be an octal integer (base eight). The digits 8 and 9 are not octal digits. A
sequence of digits preceeded by 0x or 0X is taken to be a hexadecimal integer (base sixteen). The hexadecimal digits
include a or A through f or F with decimal values ten through fifteen, respectively. For example, the number twelve can
be written 12, 014 or 0XC.
4.1.5.2 Character literals
A character literal is one or more characters enclosed in single quotes, as in ’x’. Character literals have type char.
A character is an 8-bit quantity with a numerical value between 0 and 255 (decimal). The value of a space, alphabetic,
digit or graphic characterliteral is the numerical value of the character as defined in the ISO/IEC Latin-1
(ISO/IEC 8859-1) character set standard (see Tables 2, 3, and 4). The value of a null is 0. The value of a formatting
character literal is the numerical value of the character as defined in the ISO/IEC 646 standard (see Table 5). The
meaning of all other characters is implementation-dependent.
Non-graphic characters must be represented using escape sequences as defined below in Table 9. Note that escape
sequences must be used to represent singlequote and backlash characters in character literals.
If the character following a backlash is not one of those specified, the behaviour is undefined. An escape sequence
specifies a single character.
The escape \000 consists of the backlash followed by one, two, or three octal digits that are taken to specify the value of
the desired character. The escape \xhh consists of the backlash followed by x followed by one or two hexadecimal digits
that are taken to specify the value of the desired character. A sequence of octal or hexadecimal digits is terminated by the
first character that is not an octal digit or a hexadecimal digit respectively. The value of a character constant is
implementation dependent if it exceeds that of the largest character.
6 ITU-T Rec. X.920 (1997 E)
---------------------- Page: 9 ----------------------
ISO/IEC 14750 : 1999 (E)
Table 9 – Escape sequences
Description Escape sequence
Newline \n
Horizontal tab \t
Vertical tab \v
Backspace \b
Carriage return \r
Form feed \f
Alert \a
Backslash \\
Question mark \?
Single quote \’
Double quote \"
Octal number \ooo
Hexadecimal number \xhh
4.1.5.3 Floating-point literals
A floating-point consists of an integer part; a decimal point, a fraction part, an e or E and an optionally signed integer
exponent. The integer and fraction parts both consist of a sequence of decimal (base ten) digits. Either the integer part or
the fraction part (but not both) may be missing; either the decimal point or the letter e (or E) and the exponent (but not
both) may be missing.
4.1.5.4 Fixed-point literal
A fixed-point decimal literal consists of an integer part, a decimal point, a fraction part and a d or D. The integer and
fraction parts both consist of a sequence of decimal (base 10) digits. Either the integer part or the fraction part (but not
both) may be missing; the decimal point [but not the letter d (or D)] may be missing.
4.1.5.5 String literals
A string literal is a sequence of characters (as defined in 4.1.5.2) surrounded by double quotes, as in ".".
Adjacent string literals are concatenated. Characters in concatenated strings are kept distinct. For example,
"\xA" "B" contains the two characters ’\xA’ and ’B’ after concatenation (and not the single hexadecimal character ’\xAB’).
The size of a string literal is the number of character literals enclosed by the quotes, after concatenation. The size of the
literal is associated with the literal.
4.2 Preprocessing
A preprocessing notation can be used as a module notation, in order to organize specifications and to be able to refer to
parts of a specification in a given specification. Therefore, the source file inclusion #include must be understood as a
generic way of including a given module of specification and is not linked with any particular filing system.
ODP IDL preprocessing which is specified in the ANSI/ISO C++ Standard provides macrosubstitution, conditional
compilation, and source file inclusion. In addition, directives are provided to control line numbering in diagnostics and
for symbolic debugging, to generate a diagnostic message with a given token sequence, and to perform implementation-
dependent actions (the # pragma directive). Certain predefined names are available. These facilities are conceptually
handled by a preprocessor, which may or may not actually be implemented as a separate process.
Lines beginning with # (also called "directives") communicate with this preprocessor. White space may appear before
the #. These lines have syntax independent of the rest of the ODP IDL; they may appear anywhere and have effects that
last (independent of the ODP IDL scoping rules) until the end of the translation unit. The textual location of ODP
IDL-specific pragmas may be semantically constrained.
A preprocessing directive (or any line) may be continued on the next line in a source file by placing a backslash
character ("\"), immediately before the newline at the end of the line to be continued. The preprocessor effects the
continuation by deleting the backslash and the newline before the input sequence is divided into tokens. A backslash
character may not be the last character in a source file.
ITU-T Rec. X.920 (1997 E) 7
---------------------- Page: 10 ----------------------
ISO/IEC 14750 : 1999 (E)
A preprocessing token is an ODP IDL token (see 4.1.1), a file name as in a #include directive, or any single character,
other than white space, that does not match another preprocessing token.
The primary use of the preprocessing facilities is to include definitions from other ODP IDL specifications. Text in files
included with a #include directive is treated as if it appeared in the including file. A complete description of the
preprocessing facilities may be found in the ANSI/ISO C++ Standard.
4.3 ODP IDL grammar
+
(1) ::=
(2) ::= ";"
| ";"
| ";"
| ";"
| ";"
+
(3) ::= "module" "{" "}"
(4) ::=
|
(5) ::= "{" "}"
(6) ::= "interface"
(7) ::= "interface" [ ]
(8) ::= *
(9) ::= ";"
| ";"
| ";"
| ";"
| ";"
(10) ::= ":" { "," }*
(11) ::=
| "::"
| "::"
(12) ::= "const" "="
(13) ::=
|
|
|
|
|
|
|
|
(14) ::=
(15) ::=
| "|"
(16) ::=
| "^"
(17) ::=
| "&"
8 ITU-T Rec. X.920 (1997 E)
---------------------- Page: 11 ----------------------
ISO/IEC 14750 : 1999(E)
(18) ::=
| ">>"
| "<<"
(19) ::=
| "+"
| "-"
(20) ::=
| "*"
| "/"
| "%"
(21) ::=
|
(22) ::= "-"
| "+"
| "~"
(23) ::=
|
| "(" ")"
(24) ::=
|
|
|
|
|
|
|
(25) ::= "TRUE"
| "FALSE"
(26) ::=
(27) ::= "typedef"
|
|
|
(28) ::=
(29) ::=
|
(30) ::=
|
|
(31) ::=
|
|
|
|
ITU-T Rec. X.920 (1997 E) 9
---------------------- Page: 12 ----------------------
ISO/IEC 14750 : 1999 (E)
|
|
|
(31a) ::= "Object"
(32) ::=
|
|
|
(33) ::=
|
|
(34) ::= { "," } *
(35) ::=
|
(36) ::=
(37) ::=
(38) ::= "float"
| "double"
| "long" "double"
(39) ::=
|
(40) ::=
|
|
(40a) ::= "long" "long"
(41) ::= "long"
(42) ::= "short"
(43) ::=
|
|
(43a) ::= "unsigned" "long" "long"
(44) ::= "unsigned" "long"
(45) ::= "unsigned" "short"
(46) ::= "char"
(46a) ::= "wchar"
(47) ::= "boolean"
(48) ::= "octet"
(49) ::= "any"
(50) ::= "struct" "{" "}"
+
(51) ::=
(52) ::= ";"
(53) ::= "union" "switch"
"(" ")" "{" "}"
(54) ::=
|
|
10 ITU-T Rec. X.920 (1997 E)
---------------------- Page: 13 ----------------------
ISO/IEC 14750 : 1999 (E)
|
|
+
(55) ::=
+
(56) ::= ";"
(57) ::= "case" ":"
| "default" ":"
(58) ::=
(59) ::= "enum" "{"
{"," } * "}"
(60 ::=
(61) ::= "sequence" "<" ","
">"
| "sequence" "<" ">"
(62) ::= "string" "<" ">
| "string"
(62a) ::= "wstring" "<"
">" | "wstring"
+
(63) ::=
(64) ::= "[" "]"
(65) ::= [ "readonly" ] "attribute"
{ "," }*
(66) ::= "exception" "{" *"}"
(67) ::= [ ]
[ ] [ ]
(68) ::= "oneway"
(69) ::=
| "void"
(70) ::= "(" { "," }* ")"
| "(" ")"
(71) ::=
(72) ::= "in"
| "out"
| "inout"
(73) ::= "raises" "(" { "," }* ")"
(74) ::= "context "("
{ "," } * ")"
(75) ::=
|
|
|
|
(76) ::= "fixed" "<"
"," ">"
(77) ::= "fixed"
ITU-T Rec. X.920 (1997 E) 11
---------------------- Page: 14 ----------------------
ISO/IEC 14750 : 1999 (E)
4.4 ODP IDL specification
An ODP IDL specification consists of one or more type definitions, constant definitions, exception definitions, or
module definitions. The syntax is:
+
::=
::= ";"
| ";"
| ";"
| ";"
| ";"
See 4.6, 4.7 and 4.9, respectively, for specifications of , , and .
4.4.1 Module declaration
A module definition satisfies the following syntax:
+
::= "module" "{ "}"
The module construct is used to scope ODP IDL identifiers; see 4.12 for details.
4.4.2 Interface declaration
An interface declaration satisfies the following syntax:
::=
|
::= "{" "}"
::= "interface"
::= "interface: [ ]
*
::=
::= ";"
| ";"
| ";"
| ";"
| ";"
4.4.2.1 Interface header
The interface header consists of two elements:
• The interface name – The name must be preceeded by the keyword interface, and consists of an
identifier that names the interface.
• An optional inheritance specification – The inheritance specification is described in 4.4.2.2.
The that names an interface defines a legal type name. Such a type name may be used anywhere an
is legal i
...
NORME ISO/CEI
INTERNATIONALE 14750
Première édition
1999-03-15
Technologies de l'information — Traitement
réparti ouvert — Langage de définition
d'interface
Information technology — Open Distributed Processing — Interface
Definition Language
Numéro de référence
ISO/CEI 14750:1999(F)
©
ISO/CEI 1999
---------------------- Page: 1 ----------------------
ISO/CEI 14750:1999(F)
PDF – Exonération de responsabilité
Le présent fichier PDF peut contenir des polices de caractères intégrées. Conformément aux conditions de licence d'Adobe, ce fichier peut
être imprimé ou visualisé, mais ne doit pas être modifié à moins que l'ordinateur employé à cet effet ne bénéficie d'une licence autorisant
l'utilisation de ces polices et que celles-ci y soient installées. Lors du téléchargement de ce fichier, les parties concernées acceptent de fait la
responsabilité de ne pas enfreindre les conditions de licence d'Adobe. Le Secrétariat central de l'ISO décline toute responsabilité en la
matière.
Adobe est une marque déposée d'Adobe Systems Incorporated.
Les détails relatifs aux produits logiciels utilisés pour la création du présent fichier PDF sont disponibles dans la rubrique General Info du
fichier; les paramètres de création PDF ont été optimisés pour l'impression. Toutes les mesures ont été prises pour garantir l'exploitation de
ce fichier par les comités membres de l'ISO. Dans le cas peu probable où surviendrait un problème d'utilisation, veuillez en informer le
Secrétariat central à l'adresse donnée ci-dessous.
© ISO/CEI 1999
Droits de reproduction réservés. Sauf prescription différente, aucune partie de cette publication ne peut être reproduite ni utilisée sous quelque
forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie et les microfilms, sans l'accord écrit de l’ISO à
l’adresse ci-après ou du comité membre de l’ISO dans le pays du demandeur.
ISO copyright office
Case postale 56 � CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax. + 41 22 734 10 79
E-mail copyright@iso.ch
Web www.iso.ch
Version française parue en 2000
ImpriméenSuisse
ii © ISO/CEI 1999 – Tous droits réservés
---------------------- Page: 2 ----------------------
ISO/CEI 14750:1999(F)
Sommaire
Page
1 Domaine d’application. 1
2 Références normatives. 1
2.1 Recommandations | Normes internationales identiques . 1
2.2 Autres références. 1
3 Définitions . 1
4 Syntaxe et sémantique du langage IDL ODP . 2
4.1 Conventions lexicales. 2
4.2 Prétraitement . 7
4.3 Grammaire du langage IDL ODP. 8
4.4 Spécification IDL ODP . 12
4.5 Héritage . 14
4.6 Déclaration de constante . 15
4.7 Déclaration d'un type. 17
4.8 Types "Typecode" et "Principal". 23
4.9 Déclaration d'exception . 23
4.10 Déclaration d'opération . 24
4.11 Déclaration d'attribut . 25
4.12 Module de spécification CORBA. 26
4.13 Noms et domaines de visibilité. 26
4.14 Différences par rapport au langage C++ . 28
Annexe A – Exceptions normalisées et réservées. 29
A.1 Non-existence d'objet . 30
A.2 Exceptions de transaction. 30
Annexe B – Codage des types dans la spécification CORBA . 31
© ISO/CEI 1999 – Tous droits réservés iii
---------------------- Page: 3 ----------------------
ISO/CEI 14750:1999(F)
Avant-propos
L'ISO (Organisation internationale de normalisation) et la CEI (Commission électrotechnique internationale)
forment le système spécialisé de la normalisation mondiale. Les organismes nationaux membres de l'ISO ou de la
CEI participent au développement de Normes internationales par l'intermédiaire des comités techniques créés par
l'organisation concernée afin de s'occuper des domaines particuliers de l'activité technique. Les comités
techniques de l'ISO et de la CEI collaborent dans des domaines d'intérêt commun. D'autres organisations
internationales, gouvernementales et non gouvernementales, en liaison avec l'ISO et la CEI participent également
aux travaux.
Les Normes internationales sont rédigées conformément aux règles données dans les Directives ISO/CEI, Partie 3.
Dans le domaine des technologies de l'information, l'ISO et la CEI ont créé un comité technique mixte,
l'ISO/CEI JTC 1. Les projets de Normes internationales adoptés par le comité technique mixte sont soumis aux
organismes nationaux pour vote. Leur publication comme Normes internationales requiert l'approbation de 75 % au
moins des organismes nationaux votants.
La Norme internationale ISO/CEI 14750 a été élaborée par le comité technique mixte ISO/CEI JTC 1, Technologies
de l'information, sous-comité SC 33, Services d'applications distribuées, en collaboration avec l'UIT-T. Le texte
identique est publié en tant que Recommandation UIT-T X.920.
L'annexe A constitue un élément normatif de la présente Norme internationale. L'annexe B est donnée uniquement
à titre d'information.
iv © ISO/CEI 1999 – Tous droits réservés
---------------------- Page: 4 ----------------------
ISO/CEI 14750:1999(F)
Introduction
Le développement rapide du traitement réparti a fait naître le besoin d'un cadre de coordination pour la normalisation du
traitement réparti ouvert (ODP). Le modèle de référence du traitement réparti ouvert (RM-ODP, reference model of open
distributed processing) fournit un tel cadre. Il définit une architecture au sein de laquelle la mise en œuvre de la
répartition, de l'interopérabilité et de la portabilité peut être intégrée.
Un des composants de l'architecture (décrit dans la partie 3 du modèle de référence RM-ODP: Architecture)
(Rec. UIT-T X.903 | ISO/CEI 10746-3) est un langage adapté à la description de la signature des interfaces d'opération
de calcul. La présente Recommandation | Norme internationale contient un tel langage de définition d'interface,
appelé IDL ODP.
NOTE – La présente Recommandation | Norme internationale est techniquement alignée sur la spécification du langage de
définition d'interface CORBA.
L'Annexe A est normative et fournit un ensemble normalisé d'exceptions pour une infrastructure de répartition ODP
particulière.
L'Annexe B est informative et fournit le codage CORBA d'un type, appelé TypeCode, représentant des descriptions de
type.
© ISO/CEI 1999 – Tous droits réservés v
---------------------- Page: 5 ----------------------
ISO/CEI 14750 : 1999 (F)
NORME INTERNATIONALE
ISO/CEI 14750 : 1998 (F)
Rec. UIT-T X.920 (1997 F)
RECOMMANDATION UIT-T
TECHNOLOGIES DE L'INFORMATION – TRAITEMENT RÉPARTI OUVERT –
LANGAGE DE DÉFINITION D'INTERFACE
1 Domaine d'application
La présente Recommandation | Norme internationale est destinée à donner au modèle de référence du traitement ODP
(voir la Rec. UIT-T X.902 | ISO/CEI 10746-2 et la Rec. UIT-T X.903 | ISO/CEI 10746-3) un langage et une notation
d'environnement neutre, afin de décrire les signatures des interfaces d'opérations de calcul. L'utilisation de cette notation
ne suppose pas l'utilisation de mécanismes supports ou de protocoles particuliers.
2 Références normatives
Les Recommandations et les Normes internationales suivantes contiennent des dispositions qui, par suite de la référence
qui y est faite, constituent des dispositions valables pour la présente Recommandation | Norme internationale. Au
moment de la publication, les éditions indiquées étaient en vigueur. Toutes Recommandations et Normes sont sujettes à
révision et les parties prenantes aux accords fondés sur la présente Recommandation | Norme internationale sont invitées
à rechercher la possibilité d'appliquer les éditions les plus récentes des Recommandations et Normes indiquées ci-après.
Les membres de la CEI et de l'ISO possèdent le registre des Normes internationales en vigueur. Le Bureau de la
normalisation des télécommunications de l'UIT tient à jour une liste des Recommandations UIT-T en vigueur.
2.1 Recommandations | Normes internationales identiques
– Recommandation UIT-T X.902 (1995) | ISO/CEI 10746-2:1996, Technologies de l'information –
Traitement réparti ouvert – Modèle de référence: Fondements.
– Recommandation UIT-T X.903 (1995) | ISO/CEI 10746-3:1996, Technologies de l'information –
Traitement réparti ouvert – Modèle de référence: Architecture.
2.2 Autres références
– ISO/CEI 646:1991, Technologies de l'information – Jeu ISO de caractères codés à 7 éléments pour
l'échange d'informations.
– ISO/CEI 8859-1:1998, Technologies de l'information – Jeux de caractères graphiques codés sur un seul
octet – Partie 1: Alphabet latin nº 1.
3 Définitions
Pour les besoins de la présente Recommandation | Norme internationale, les définitions suivantes s'appliquent.
La présente Recommandation | Norme internationale utilise les termes suivants, qui sont définis dans la
Rec. UIT-T X.902 | ISO/CEI 10746-2:
– objet;
– interface;
– signature d'interface.
La présente Recommandation | Norme internationale utilise le terme suivant, qui est défini dans la Rec. UIT-T X.903 |
ISO/CEI 10746-3:
– opération.
Rec. UIT-T X.920 (1997 F) 1
---------------------- Page: 6 ----------------------
ISO/CEI 14750 : 1999 (F)
4 Syntaxe et sémantique du langage IDL ODP
Le langage de définition d'interface (interface definition language) IDL ODP sert à décrire les signatures des interfaces
que les objets clients appellent et que les mises en œuvre d'objet fournissent. Une définition d'interface écrite en langage
IDL ODP définit complètement la signature de cette interface et spécifie complètement les paramètres de chaque
opération.
Une spécification IDL ODP se compose logiquement d'un ou de plusieurs fichiers. Un fichier est théoriquement traduit
en plusieurs phases, dont la première est le prétraitement, qui effectue l'inclusion du fichier et la substitution des macros.
Le prétraitement est régi par des directives qui sont introduites par des lignes ayant le dièse (#) comme premier caractère
autre qu'un espace. Le résultat du prétraitement est une séquence de jetons qui est appelée "unité de traduction" et qui
constitue un fichier après le prétraitement.
1)
Le langage IDL ODP obéit aux mêmes règles lexicales que le langage C++ , bien que de nouveaux mots clés soient
introduits pour prendre en charge les concepts de répartition. Il assure également la prise en charge complète des
caractéristiques de prétraitement en langage C++ normal. La spécification IDL ODP est appelée à suivre les
modifications concernant le langage C++, introduites par le groupe ISO/CEI chargé de la normalisation.
La description des conventions lexicales du langage IDL ODP est présentée au 4.1. Une description du prétraitement en
langage IDL ODP est présentée au 4.2. Les règles de visibilité des identificateurs dans une spécification de langage
IDL ODP sont décrites à partir du 4.13.
La grammaire du langage IDL ODP est un sous-ensemble du langage ISO/CEI C++ avec des créations syntaxiques
additionnelles pour prendre en charge le mécanisme d'invocation d'opération. Le langage IDL ODP est un langage
descriptif qui prend en charge la syntaxe C++ pour des déclarations de constantes, de types et d'opérations; il ne
comporte aucune structure ou variable algorithmique. Sa grammaire est présentée au 4.3.
Le présent article décrit la sémantique du langage IDL ODP et donne la syntaxe des créations grammaticales IDL ODP.
La description de la grammaire IDL ODP fait appel à une notation syntaxique qui est similaire à l'extension du
formalisme de Backus-Naur (EBNF, extended Backus-Naur format). Le Tableau 1 énumère les symboles utilisés dans ce
formalisme et leur signification.
Tableau 1 – Formalisme EBNF du langage IDL ODP
Symbole Signification
::= défini par:
| ou, en variante:
Non-terminal
"text" Littéral
* L'unité syntaxique précédente peut être répétée zéro, une ou plusieurs fois
+ L'unité syntaxique précédente peut être répétée une ou plusieurs fois
{} Les unités syntaxiques englobées sont groupées en une seule unité
syntaxique
[] L'unité syntaxique précédente est facultative et peut apparaître zéro, une ou
plusieurs fois
4.1 Conventions lexicales
2)
Le présent paragraphe présente les conventions lexicales du langage IDL ODP. Il définit les jetons contenus dans une
spécification IDL ODP et décrit les commentaires, les identificateurs, les mots clés et les littéraux sous forme d'entiers,
de caractères, de constantes à virgule flottante, ainsi que de chaînes.
_______________
1)
Ellis, Margaret A. et Bjarne Stroustrop, The Annotated C++ Reference Manual, Addison-Wesley Publishing Company, Reading,
Massachusetts, 1990, ISBN 0-201-51459-1.
2)
Le présent paragraphe est une adaptation du chapitre 2 du livre intitulé The Annotated C++ Reference Manual; il en diffère quant
à la liste des mots clés autorisés et quant à la ponctuation.
2 Rec. UIT-T X.920 (1997 F)
---------------------- Page: 7 ----------------------
ISO/CEI 14750 : 1999 (F)
Le langage IDL ODP fait appel au jeu de caractères ISO/CEI Latin-1 (ISO/CEI 8859-1), qui se subdivise en caractères
alphabétiques (lettres), en chiffres, en caractères graphiques et en caractères de formatage, avec le caractère
d'espacement. Le Tableau 2 montre les caractères alphabétiques du langage IDL ODP; les majuscules/minuscules
équivalentes sont présentées en paires. Le Tableau 3 montre les chiffres et le Tableau 4 montre les caractères graphiques.
Les caractères de formatage sont reproduits dans le Tableau 5.
Tableau 2 – Les 114 caractères alphabétiques (lettres)
Caractère Description Caractère Description
Aa A majuscule/minuscule Àà A accent grave majuscule/minuscule
Bb B majuscule/minuscule Áá A accent aigu majuscule/minuscule
Cc C majuscule/minuscule Ââ A accent circonflexe majuscule/minuscule
Dd D majuscule/minuscule Ãã A tilde majuscule/minuscule
Ee E majuscule/minuscule Ää A tréma majuscule/minuscule
Ff F majuscule/minuscule Åå A majuscule/minuscule avec rond
Gg G majuscule/minuscule Ææ A E entrelacés majuscule/minuscule
Hh H majuscule/minuscule Çç C cédille majuscule/minuscule
Ii I majuscule/minuscule Èè E accent grave majuscule/minuscule
Jj J majuscule/minuscule Éé E accent aigu majuscule/minuscule
Kk K majuscule/minuscule Êê E accent circonflexe majuscule/minuscule
Ll L majuscule/minuscule Ëë E tréma majuscule/minuscule
Mm M majuscule/minuscule Ìì I accent grave majuscule/minuscule
Nn N majuscule/minuscule Íí I accent aigu majuscule/minuscule
Oo O majuscule/minuscule Îî I accent circonflexe majuscule/minuscule
Pp P majuscule/minuscule Ïï I tréma majuscule/minuscule
Qq Q majuscule/minuscule Ðð D barré majuscule/minuscule
Rr R majuscule/minuscule Ññ N tilde majuscule/minuscule
Ss S majuscule/minuscule Òò O accent grave majuscule/minuscule
Tt T majuscule/minuscule Óó O accent aigu majuscule/minuscule
Uu U majuscule/minuscule Ôô O accent circonflexe majuscule/minuscule
Vv V majuscule/minuscule Õõ O tilde majuscule/minuscule
Ww W majuscule/minuscule Öö O tréma majuscule/minuscule
Xx X majuscule/minuscule Øø O barre oblique majuscule/minuscule
Yy Y majuscule/minuscule Ùù U accent grave majuscule/minuscule
Zz Z majuscule/minuscule Úú U accent aigu majuscule/minuscule
Ûû U accent circonflexe majuscule/minuscule
Üü U tréma majuscule/minuscule
Ýý Y accent aigu majuscule/minuscule
Þþ th islandais majuscule/minuscule
ß Eszett allemand
ÿ Y tréma minuscule
Rec. UIT-T X.920 (1997 F) 3
---------------------- Page: 8 ----------------------
ISO/CEI 14750 : 1999 (F)
Tableau 3 – Chiffres décimaux
0 1 2 3 4 5 6 7 8 9
Tableau 4 – Les 65 caractères graphiques
Caractère Description Caractère Description
! point d'exclamation ¡ point d'exclamation inversé
" guillemet droit ¢ signe cent
# signe dièse £ signe livre
$ signe dollar ¤ signe monétaire
% signe pour cent ¥ signe yen
& perluète ¦ barre verticale interrompue
' apostrophe § signe section ou paragraphe
( parenthèse gauche ¨ tréma
) parenthèse droite © signe droits d'auteurs
a
* astérisque indicateur ordinal, féminin
+ signe plus « guillemet anguleux gauche
, virgule ¬ signe de négation
- tiret, signe moins – tiret automatique
. point ® signe marque déposée
/ barre oblique - signe de voyelle longue
: deux-points ° rond, signe du degré
; point-virgule–signe plus ou moins
< signe inférieur à 2 exposant deux
= signe égal 3 exposant trois
> signe supérieur à ´ accent aigu
? point d'interrogation μ symbole micro
@ signe arroba ¶ signe alinéa
[ crochet gauche · point médian
\ barre oblique renversée ‚ cédille
] crochet droit 1 exposant un
^ accent circonflexe º indicateur ordinal masculin
_ tiret inférieur ou de » guillemet anguleux droit
soulignement
` accent grave ¼ fraction un quart
{ accolade gauche ½ fraction un demi
| barre verticale ¾ fraction trois quarts
} accolade droite ¿ point d'interrogation inversé
~ tilde·signe de multiplication
÷ signe de division
4 Rec. UIT-T X.920 (1997 F)
---------------------- Page: 9 ----------------------
ISO/CEI 14750 : 1999 (F)
Tableau 5 – Caractères de formatage
Description Abréviation Valeur octale ISO/CEI 646
sonnette BEL 007
retour arrière BS 010
tabulateur horizontal HT 011
alinéa NL, LF 012
tabulateur vertical VT 013
saut de page FF 014
retour chariot CR 015
4.1.1 Jetons
Il existe cinq sortes de jetons: les identificateurs, les mots clés, les littéraux, les opérateurs et les séparateurs. Les espaces
blancs (réserves), les tabulations horizontales et verticales, les retours à la ligne, les sauts de page et les commentaires
(collectifs ou en "réserve"), décrits ci-dessous, ne sont pas pris en considération sauf s'ils servent à séparer des jetons.
Une certaine réserve est nécessaire pour séparer des identificateurs, des mots clés et des constantes, qui autrement
seraient contigus.
Si le flux entrant a été analysé sémantiquement pour en extraire les jetons jusqu'à un caractère donné, le jeton suivant est
considéré comme étant formé de la plus longue chaîne de caractères qui peut éventuellement constituer un jeton.
4.1.2 Commentaires
Les caractères barre oblique et astérisque /* marquent le début d'un commentaire, qui se termine par un astérisque et par
une barre oblique */. Ces commentaires ne s'imbriquent pas. Les caractères // marquent le début d'un commentaire qui se
termine à la fin de la ligne où ils apparaissent. Les caractères de commentaire //, /* et */ n'ont pas de signification
spéciale à l'intérieur d'un commentaire introduit par les caractères // et sont traités comme n'importe quels autres
caractères. De même, les caractères de commentaire // et /* n'ont pas de signification spéciale à l'intérieur d'un
commentaire introduit par les caractères /*. Les commentaires peuvent contenir des caractères alphabétiques,
numériques et graphiques, des espaces, des tabulations horizontales et verticales, des sauts de page et des caractères de
retour à la ligne.
4.1.3 Identificateurs
Un identificateur est une séquence de longueur arbitraire, composée de caractères alphabétiques, numériques et
graphiques ("_"). Le premier caractère est toujours alphabétique. Tous les caractères sont significatifs.
Les identificateurs qui ne diffèrent que par leur hauteur de casse entrent en collision et provoquent une erreur de
compilation. Un identificateur de définition doit toujours être orthographié de la même manière (en termes de hauteur de
casse) d'un bout à l'autre d'une spécification.
Lorsque l'on compare deux identificateurs pour voir s'ils sont en collision:
• les lettres majuscules et minuscules sont traitées comme étant la même lettre. Le Tableau 2 définit le
mappage des lettres majuscules et minuscules équivalentes;
• la comparaison ne tient pas compte des équivalences entre digrammes et paires de lettres (par exemple,
les caractères "æ" et "ae" ne sont pas considérés comme équivalents); elle ne tient pas compte non plus
des équivalences entre lettres accentuées et non accentuées (par exemple, les caractères "à" et "a" ne sont
pas considérés comme équivalents).
• tous les caractères sont significatifs.
En langage IDL ODP, chaque identificateur ne possède qu'un seul espace de dénomination. Par exemple, l'utilisation du
même identificateur pour une constante et pour une interface produit une erreur de compilation.
4.1.4 Mots clés
Les identificateurs énumérés dans le Tableau 6 sont réservés pour utilisation comme mots clés et ne peuvent avoir
d'autre usage. Le mot clé Object est utilisé en langage IDL ODP pour représenter un type d'interface, tandis que le mot
clé interface sert à indiquer le début d'une déclaration d'interface dans un modèle de signature d'interface. Le mot clé
Object peut être utilisé comme un spécificateur de type. Le mot clé attribut définit une méthode donnant accès à une
portion de l'état d'un objet. Une définition d'attribut est logiquement équivalente à la déclaration d'une paire de méthodes
d'accès: l'une pour récupérer la valeur de l'attribut, l'autre pour fixer cette valeur.
Rec. UIT-T X.920 (1997 F) 5
---------------------- Page: 10 ----------------------
ISO/CEI 14750 : 1999 (F)
Le mot clé Exception est utilisé pour représenter le concept ODP de terminaison nommée sans succès, le nom de
l'exception étant le nom de la terminaison.
Les mots clés obéissent aux règles relatives aux identificateurs (voir 1.3) et doivent être écrits exactement comme
indiqué dans la liste ci-dessus. Par exemple, le mot "boolean" est correct, tandis que le mot "Boolean" ne l'est pas. Les
spécifications du langage IDL ODP utilisent les caractères de ponctuation indiqués dans le Tableau 7.
En outre, les jetons énumérés dans le Tableau 8 sont utilisés par le préprocesseur.
Tableau 6 – Mots clés
any default in oneway struc wchar
attribute double inout out switch wstring
boolean enum interface raises TRUE
case exception long readonly typedef
char FALSE module sequence unsigned
const fixed Object short union
context float octet string void
Tableau 7 – Jetons de ponctuation
; { } : :: , = + -() < > [ ]
’ " \ | ^ & * / % ~ << >>
Tableau 8 – Jetons utilisés par le préprocesseur
# ## ! || && include pragma define
4.1.5 Littéraux
Les littéraux caractère large et chaîne large sont spécifiés exactement comme les littéraux caractère et chaîne. Tous les
littéraux caractère et chaîne, qu'ils soient larges ou non, peuvent (pour être portables) être spécifiés en utilisant les
caractères du jeu de caractères ISO/CEI 8859-1. Il convient de noter que ces extensions pour les caractères
internationaux affectent seulement la spécification des littéraux dans le langage IDL ODP et pas le reste des fichiers
source IDL ODP. C'est-à-dire que les noms d'interfaces, les noms d'opérations, les noms de types, etc., continueront
d'être restreints au jeu de caractères ISO/CEI 8859-1.
Les littéraux des nouveaux types entier et à virgule flottante sont définis comme cela est décrit dans le présent
paragraphe (littéraux sous forme d'entier et littéraux à virgule flottante).
4.1.5.1 Littéraux sous forme d'entier
Un littéral-entier, composé d'une séquence de chiffres, est considéré comme étant décimal (en base dix) s'il ne
commence pas par un 0 (chiffre zéro). Une séquence de chiffres commençant par 0 est considérée comme étant un entier
octal (en base 8). Les chiffres 8 et 9 ne sont pas des chiffres octaux. Une séquence de chiffres précédée de 0x ou 0X est
considérée comme étant un entier hexadécimal (en base seize). Les chiffres hexadécimaux vont de a ou A (qui a la
valeur dix) jusqu'à f ou F (qui a la valeur quinze). Par exemple, le nombre douze peut s'écrire 12, 014 ou 0XC.
4.1.5.2 Littéraux sous forme de caractères
Un littéral-caractère se présente sous la forme d'un ou de plusieurs caractères encadrés par des apostrophes, comme
dans 'x'. Les littéraux de caractère sont du type char.
Un caractère est une grandeur de 8 bits dont la valeur numérique est comprise entre 0 et 255 (en base dix). La valeur
d'un littéral-caractère alphabétique, numérique, graphique ou d'espace est la valeur numérique du caractère
correspondant, telle que définie dans le jeu de caractères normalisé ISO/CEI Latin-1 (ISO/CEI 8859-1). Voir les
Tableaux 2, 3 et 4. La valeur d'élément nul est 0. La valeur d'un littéral-caractère de formatage est la valeur numérique
du caractère correspondant, telle que définie dans l'ISO/CEI 646 (voir le Tableau 5). La signification de tous les autres
caractères dépend de la mise en œuvre.
6 Rec. UIT-T X.920 (1997 F)
---------------------- Page: 11 ----------------------
ISO/CEI 14750 : 1999 (F)
Les caractères non graphiques doivent toujours être représentés au moyen de séquences d'échappement, comme défini
dans le Tableau 9 ci-dessous. On notera que les séquences d'échappement doivent être utilisées pour représenter, sous
forme de littéraux en mode caractère, les caractères d'apostrophe et de barre de fraction inversée.
Si le caractère qui suit une barre de fraction inversée ne fait pas partie de ceux qui sont spécifiés, le comportement est
indéterminé. Chaque séquence d'échappement ne spécifie qu'un seul caractère.
La séquence d'échappement \000 se compose d'une barre de fraction inversée, suivie d'un, deux ou trois chiffres octaux
qui sont considérés comme spécifiant la valeur du caractère recherché. Une séquence de chiffres octaux ou
hexadécimaux se termine par le premier caractère qui n'est pas, selon le cas, un chiffre octal ou un chiffre hexadécimal.
La valeur d'une constante de caractère dépend de la mise en œuvre si elle dépasse la plus grande valeur de caractère.
Tableau 9 – Séquences d'échappement
Description Séquence d'échappement
nouvelle ligne \n
tabulation horizontale \t
tabulation verticale \v
retour arrière \b
retour de chariot \r
saut de page \f
sonnette \a
barre de fraction inversée \\
point d'interrogation \?
apostrophe \'
guillemet droit \"
nombre octal \ooo
nombre hexadécimal \xhh
4.1.5.3 Littéraux à virgule flottante
Un nombre à virgule flottante se compose d'un entier, d'une virgule décimale, d'une partie fractionnaire, d'un e ou d'un E
et, facultativement, d'un exposant sous forme d'un entier signé. Les parties entière et fractionnaire se composent chacune
d'une séquence de chiffres décimaux (en base dix). On peut omettre soit la partie entière ou la partie fractionnaire (mais
pas les deux), soit la virgule décimale ou la lettre e (ou E) et l'exposant (mais pas les deux).
4.1.5.4 Littéraux à virgule fixe
Un littéral décimal à virgule fixe se compose d'un entier, d'une virgule décimale, d'une partie fractionnaire, d'un d ou
d'un D. Les parties entière et fractionnaire se composent chacune d'une séquence de chiffres décimaux (en base dix). On
peut omettre soit la partie entière ou la partie fractionnaire (mais pas les deux), soit la virgule décimale [mais pas la lettre
d ou (D)].
4.1.5.5 Littéraux sous forme de chaîne
Un littéral-chaîne est une séquence de caractères (définie au 4.1.5.2) encadrée par des guillemets droits, comme
dans ".".
Les littéraux de chaîne contigus sont concaténés. Les caractères contenus dans les chaînes concaténées sont tenus
distincts. Par exemple, la chaîne
"\xA" "B" contient, après concaténation, les deux caractères '\xA' et 'B' (et non pas le seul caractère hexadécimal '\xAB').
La longueur d'un littéral-chaîne est le nombre de littéraux-caractères encadrés par les guillemets, après concaténation. La
longueur du littéral est associée à celui-ci.
4.2 Prétraitement
On peut utiliser une notation de prétraitement pour écrire les modules, afin d'organiser les spécifications et de permettre
de faire référence aux parties d'une spécification donnée. Les jetons d'inclusion de fichier sour
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.