From owner-sc22docs@open-std.org  Thu Jul  8 21:05:21 2004
Return-Path: <owner-sc22docs@open-std.org>
X-Original-To: sc22docs-domo
Delivered-To: sc22docs-domo@ghz.klid.dk
Received: by ghz.klid.dk (Postfix, from userid 521)
	id 022C937635; Thu,  8 Jul 2004 21:05:21 +0200 (CEST)
X-Original-To: sc22info@open-std.org
Delivered-To: sc22docs@ghz.klid.dk
Received: from email1.ansi.org (outbound.ansi.org [12.15.192.5])
	by ghz.klid.dk (Postfix) with ESMTP id 25F2D36D5D
	for <sc22info@open-std.org>; Thu,  8 Jul 2004 21:05:17 +0200 (CEST)
Received: by rpb2.nycrnybb.ispnetinc.net with Internet Mail Service (5.5.2653.19)
	id <3FGJJTY5>; Thu, 8 Jul 2004 15:01:27 -0400
Message-ID: <FEEA109B01A4D7118B6000D0B7C9E306010CE3D8@rpb2.nycrnybb.ispnetinc.net>
From: Sally Seitz <SSeitz@ansi.org>
To: "'sc22info@open-std.org'" <sc22info@open-std.org>
Subject: MINOR CORRECTION: (SC22docs.2106) N 3758-SC 22/WG 9 Request for N
	ational Body Contributions on Impl ementation of Coded Character Sets in 
	Ada
Date: Thu, 8 Jul 2004 15:01:26 -0400 
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C4651D.F8678F90"
Sender: owner-sc22docs@open-std.org
Precedence: bulk

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C4651D.F8678F90
Content-Type: text/plain

Dear members,

 

Please note that the document below contained an incorrect reference to SC
22 N 3759.  This should have read SC 22 N 3758.  The error has been
corrected and the document below reads correctly.


Best regards,
Sally

 

  _____  

From: Sally Seitz [mailto:SSeitz@ansi.org] 
Sent: Thursday, July 08, 2004 2:32 PM
To: 'sc22info@open-std.org'
Subject: (SC22docs.2106) N 3758-SC 22/WG 9 Request for National Body
Contributions on Impl ementation of Coded Character Sets in Ada

 

ISO/IEC JTC 1/SC22

Programming languages, their environments and system software interfaces

Secretariat:  U.S.A.  (ANSI) 

  

ISO/IEC JTC 1/SC22 N3758 

  

TITLE: SC 22/WG 9 Request for National Body Contributions on Implementation
of Coded Character Sets in Ada

 

DATE ASSIGNED: 

2004-07-08 

  

SOURCE: 

SC 22/WG 9 Convenor (J. Moore) 

 

BACKWARD POINTER: 

  

DOCUMENT TYPE: 

Request for Comments

 

PROJECT NUMBER: 

  

STATUS: 

This document is circulated to SC 22 National Bodies for a sixty day comment
period.  National Bodies are requested to send any comments to the SC 22
Secretariat (sseitz@ansi.org <mailto:sseitz@ansi.org> ) by 6 September 2004.

 

ACTION IDENTIFIER: 

COM

  

DUE DATE: 

2004-09-06

  

DISTRIBUTION: 

TEXT

 

CROSS REFERENCE: 

 

DISTRIBUTION FORM: 

Def

  

Address reply to: 

ISO/IEC JTC 1/SC22 Secretariat

Sally Seitz

ANSI

25 West 43rd Street

New York, NY  10036

Telephone:  (212) 642-4918 

Fax:             (212) 840-2298 

Email:  sseitz@ansi.org 

 

_____________END OF COVER PAGE, BEGINNING OF DOCUMENT______________

 

8 July 2004

 

To: Secretariat of ISO/IEC JTC 1/SC 22

cc: Chairman of ISO/IEC JTC 1/SC 22

Subject: Implementation of Coded Character Sets in Ada

 

In behalf of SC 22/WG 9, I request that the appended document be circulated
to SC 22 member bodies well in advance of the forthcoming plenary meeting.
This document is provided in support of the following resolution which is
proposed for consideration at the plenary meeting:

 

"Resolution 04-xx: Implementation of Coded Character Sets in the Ada
Language

JTC 1/SC 22 agrees that the proposed implementation of coded character set
support described in document 22N3758 agrees with the principles for coded
character set support previously adopted by JTC 1/SC 22, notably resolution
02-24."

 

Warmest regards,

James W. Moore

Convener, ISO/IEC JTC 1/SC 22/WG 9

= = =

Document ISO/IEC JTC 1/SC 22 N 3758

 

Implementation of Coded Character Sets in Ada

 

Contributed by James W. Moore, Convener of ISO/IEC JTC 1/SC 22/WG 9, 4 July
2004 at the direction of SC 22/WG 9.

 

In September 2002, SC 22 adopted the following resolution at its plenary
meeting:

 

"Resolution 02-24: Recommendation on Coded Character Sets Support

JTC 1/SC 22 believes that programming languages should offer the appropriate
support for ISO/IEC 10646, and the Unicode character set where appropriate."

 

WG9 is currently preparing an amendment to the Ada Language Standard,
ISO/IEC 8652:1995. The amendment will include changes in coded character
support. Because the effect of changes in this area will pervade the entire
standard and affect the treatment of other issues in the amendment, it is
important to understand whether the proposed approach complies with the
direction of SC22. Therefore, WG9 requests that the member bodies of SC22
review the approach described in this paper and provide comments to WG9.
Furthermore, WG9 requests that the following resolution be approved at the
forthcoming plenary meeting of SC22:

 

"Resolution 04-xx: Implementation of Coded Character Sets in the Ada
Language

JTC 1/SC 22 agrees that the proposed Ada implementation of coded character
set support described by SC 22/WG 9 in document 22 N 3758 agrees with the
principles for coded character set support previously adopted by JTC 1/SC
22, notably resolution 02-24."

 

Approach Proposed by SC 22/WG 9

 

[Note: This description is written at the level of principles. For those
familiar with Ada, the details of the proposed approach can be found in
"AI-285", which can be obtained from the convener of WG9, James Moore,
James.W.Moore@ieee.org.]

 

This proposal is based on ISO/IEC 10646:2003. While this proposal contains
references to Unicode, the amendment text will be carefully phrased to avoid
such mentions. 

 

The essence of this proposal is to allow the source of the program to be
written using 16-bit characters (from the BMP) or 32-bit characters. Also,
it makes it possible to operate on 32-bit characters at run-time. The main
difficulty in supporting characters beyond Row 00 of the BMP in the program
text is to define how identifiers and literals are built (which characters
are letters, digits, etc.) and to define the lower/upper case equivalence
rules. Fortunately, the implementation properties and algorithms referenced
by 10646 will do most of the work for us.

 

Unicode defines a "character database" which describes all the properties of
each character. The most important property for our purposes is the "General
Category". General categories are disjoint. The following categories are of
interest for describing Ada program text:

 

*	Letter, Uppercase -- e.g., LATIN CAPITAL LETTER A
*	Letter, Lowercase -- e.g., LATIN SMALL LETTER A
*	Letter, Titlecase -- e.g., LATIN CAPITAL LETTER L WITH SMALL LETTER
J
*	Letter, Modifier -- e.g., MODIFIER LETTER APOSTROPHE
*	Letter, Other -- e.g., HEBREW LETTER ALEF
*	Mark, Non-Spacing -- e.g., COMBINING GRAVE ACCENT
*	Mark, Spacing Combining -- e.g., MUSICAL SYMBOL COMBINING
AUGMENTATION DOT
*	Number, Decimal Digit -- e.g., DIGIT ZERO
*	Number, Letter -- e.g., ROMAN NUMERAL TWO
*	Other, Control -- e.g., NULL
*	Other, Format -- e.g., ACTIVATE ARABIC FORM SHAPING
*	Other, Private Use -- e.g., <Private Use, First>
*	Other, Surrogate -- e.g., <Non Private Use High Surrogate, First>
*	Punctuation, Connector -- e.g., LOW LINE
*	Separator, Space -- e.g., SPACE
*	Separator, Line -- e.g., LINE SEPARATOR
*	Separator, Paragraph -- e.g., PARAGRAPH SEPARATOR

 

(See :
http://www.unicode.org/Public/4.0-Update/UCD-4.0.0.html#General_Category_Val
ues
<http://www.unicode.org/Public/4.0-Update/UCD-4.0.0.html#General_Category_Va
lues>  for details on the categorization.)

 

In the definition of the lexical elements of Ada, we define a non-terminal
of the grammar for each of the above categories, e.g., letter_uppercase,
letter_lowercase, etc.

 

The characters in the category other_format are effectively ignored in most
lexical elements, with the exception that they are illegal in
string_literals and character_literals.

 

Throughout the syntax rules, we specify which characters are allowed for the
lexical elements. For instance, the E in the exponent part of a numeric
literal may not be a "GREEK CAPITAL LETTER EPSILON", even though a capital E
and a capital epsilon look very much the same. Similar considerations apply
to the extended digits, the point, etc.

 

Unicode proposes to define identifiers for programming languages as follows
(see annex 7 of UAX #15 at
http://www.unicode.org/reports/tr15/tr15-23.html#Programming_Language_Identi
fiers):

 

   identifier ::= identifier_start {identifier_start | identifier_extend}

   identifier_start ::= letter_uppercase |

                        letter_lowercase |

                        letter_titlecase |

                        letter_modifier |

                        letter_other |

                        number_letter

   identifier_extend ::= mark_non_spacing |

                         mark_spacing_combining |

                         number_decimal_digit |

                         punctuation_connector |

                         other_format

 

This definition was made with C in mind, and is not exactly appropriate for
Ada, as it would allow consecutive underlines. Because the underline is the
only character of Row 00 of the BMP which is a punctuation_connector, it
seems sensible to remain close to the existing Ada syntax rules, and to use
the following definitions:

 

   identifier_start ::= letter_uppercase |

                        letter_lowercase |

                        letter_titlecase |

                        letter_modifier |

                        letter_other |

                        number_letter

   identifier_extend ::= identifier_letter |

                         mark_non_spacing |

                         mark_spacing_combining |

                         number_decimal_digit |

                         other_format

   identifier ::= identifier_start {[punctuation_connector]
identifier_extend}

 

Unicode recommends that, before storing or comparing identifiers, the
following transformations be applied:

 

*	Characters in category other_format are filtered out.
*	For languages which have case insensitive identifiers, Normalization
Form KC is applied (see
http://www.unicode.org/reports/tr15/tr15-23.html#Specification). This is to
ensure that identifiers which look visually the same are considered as
identical, even if they are composed of different characters.
*	_Full_ case folding, as described in the table
http://www.unicode.org/Public/4.0-Update/CaseFolding-4.0.0.txt, is used to
find the uppercase version of each character.

 

We decided not to apply Normalization Form KC, as there seems to be
insufficient experience on using normalization forms.  Without
normalization, texts that look alike don't have the same meaning; with
normalization the widely available text tools like grep, awk, etc. don't
work.  We follow the lead of C# (ECMA-334) in specifying that a program
which is not in Normalization Form KC has an implementation-defined effect.
This ensures that a program text which is normalized is portable. It also
allows an implementation to provide useful support for non-normalized texts
if appropriate in a particular computing environment (in that case, the
implementation must document how it handles such texts).

 

Unicode doesn't provide guidance for the composition of numeric literals, so
we don't change them. The use of the digits at positions 16#30# to 16#39# is
universal in information technology, and allowing digits from other cultures
could cause confusion while bringing little benefits.

 

The definition and role of format_effectors is modified to include the
characters at positions 16#85#, 16#2028# and 16#2029#. These characters may
be used to terminate lines, as recommended by section 5.8 of Unicode 4.0
(see http://www.unicode.org/versions/Unicode4.0.0/ch05.pdf#G10213).

 

Note that characters in category other_format are forbidden in
character_literals and string_literals, because their sole purpose is to
affect the presentation of characters. If a program needs to operate on
these characters, it can do that by using Wide_Wide_Character'Val (...).

 

Private use characters are not considered to be graphic characters (even
though for some applications they may actually turn out to be graphic). The
reason is that we wouldn't be able to define the case folding rules for
these characters, so it seems better to disallow them, except in comments
where they cannot do any harm.

 

In order to represent 32-bit characters at run-time, we add new declarations
and new predefined packages for 32-bit characters. These packages are
similar to their Wide_ equivalents, with Wide_Wide_ substituted for Wide_
everywhere. In addition a declaration provides a character set containing
every Wide_Wide_Character value in the BMP of ISO/IEC 10646:2003. We also
add attributes permitting conversion between the images and values of
Wide_Wide_Character.

 

Note that the dynamic semantics of a number of operations are defined in
terms of "space" and "blank". A space is the character at position 16#20#
and a blank is either a space or a horizontal tabulation. We are not
changing the definition of space or blank, so characters like NO-BREAK SPACE
or IDEOGRAPHIC SPACE are not considered to be space or blank in this context
of Text_IO.

 

SC22/WG14 is considering the inclusion of support for Unicode 16- and 32-bit
characters in C. Their proposal is presented in ISO/IEC TR 19769
(http://std.dkuug.dk/JTC1/SC22/WG14/www/docs/n1040.pdf). At the time of this
writing, this technical report is in the FDIS ballot stage. In order to
provide compatibility with the upcoming C standard, new types are added to
Interfaces.C that correspond to C char16_t and char32_t. It is recognized
that adding new declarations to predefined units can cause
incompatibilities, but it is thought that the new identifiers are unlikely
to conflict with existing code.

 

 

Sally Seitz

Program Administrator

ANSI

25 West 43rd Street

New York, NY 10036

Phone: (212) 642-4918

Fax: (212) 840-2298

 


------_=_NextPart_001_01C4651D.F8678F90
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:st1=3D"urn:schemas-microsoft-com:office:smarttags" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">


<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags" =
name=3D"Street"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"PostalCode"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"State"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"City"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"date"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"address"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"country-region"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"place"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"PersonName" downloadurl=3D"http://www.microsoft.com"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Batang;
	panose-1:2 3 6 0 0 1 1 1 1 1;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:"\@Batang";
	panose-1:0 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal;
	font-family:Arial;
	color:windowtext;}
span.EmailStyle20
	{mso-style-type:personal-reply;
	font-family:Arial;
	color:navy;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:624772154;
	mso-list-template-ids:793178390;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1
	{mso-list-id:1256014877;
	mso-list-template-ids:-1504272416;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l2
	{mso-list-id:2025279190;
	mso-list-type:hybrid;
	mso-list-template-ids:1306435346 67698689 67698691 67698693 67698689 =
67698691 67698693 67698689 67698691 67698693;}
@list l2:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l2:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3
	{mso-list-id:2075544752;
	mso-list-type:hybrid;
	mso-list-template-ids:2014101244 67698689 67698691 67698693 67698689 =
67698691 67698693 67698689 67698691 67698693;}
@list l3:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l3:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>

</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Dear =
members,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>=


<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Please note that the document =
below
contained an incorrect reference to SC 22 N 3759.&nbsp; This should =
have read SC 22
N 3758.&nbsp; The error has been corrected and the document below reads =
correctly.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><br>
Best regards,<br>
Sally<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>=


<div>

<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font =
size=3D3
face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>

<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>

</span></font></div>

<p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span =
style=3D'font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font =
size=3D2
face=3DTahoma><span style=3D'font-size:10.0pt;font-family:Tahoma'> =
Sally Seitz
[mailto:SSeitz@ansi.org] <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Thursday, July 08, =
2004 2:32
PM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> =
'sc22info@open-std.org'<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> (SC22docs.2106) =
N 3758-SC
22/WG 9 Request for National Body Contributions on Impl ementation of =
Coded
Character Sets in <st1:City w:st=3D"on"><st1:place =
w:st=3D"on">Ada</st1:place></st1:City></span></font><o:p></o:p></p>

</div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>ISO/IEC JTC =
1/SC22<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>Programming languages, their environments =
and system
software interfaces<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>Secretariat:&nbsp; <st1:place =
w:st=3D"on"><st1:country-region
 w:st=3D"on">U.S.A.</st1:country-region></st1:place>&nbsp; (ANSI) =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>ISO/IEC JTC 1/SC22 N3758 =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>TITLE: SC 22/WG 9 Request for National Body
Contributions on Implementation of Coded Character Sets in <st1:place =
w:st=3D"on"><st1:City
 w:st=3D"on">Ada</st1:City></st1:place><o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>DATE ASSIGNED: <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>2004-07-08 <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>SOURCE: <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>SC 22/WG 9 Convenor (J. Moore) =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>BACKWARD POINTER: =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>DOCUMENT TYPE: <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>Request for =
Comments<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>PROJECT NUMBER: =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>STATUS: <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>This document is circulated to SC 22 =
National Bodies
for a sixty day comment period. &nbsp;National Bodies are requested to =
send any
comments to the SC 22 Secretariat (<a =
href=3D"mailto:sseitz@ansi.org">sseitz@ansi.org</a>)
by 6 September 2004.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>ACTION IDENTIFIER: =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>COM<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>DUE DATE: <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>2004-09-06<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>DISTRIBUTION: <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>TEXT<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>CROSS REFERENCE: =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>DISTRIBUTION FORM: =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>Def<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>Address reply to: =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>ISO/IEC JTC 1/SC22 =
Secretariat<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>Sally Seitz<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>ANSI<o:p></o:p></span></font></p>

<p class=3DMsoNormal><st1:Street w:st=3D"on"><st1:address
 style=3D"BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: =
url(res://ietag.dll/#34/#1001); BACKGROUND-REPEAT: repeat-x"
 tabIndex=3D"0" w:st=3D"on"><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
  10.0pt;font-family:"Courier New"'>25 West 43rd =
Street</span></font></st1:address></st1:Street><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></font></p>

<p class=3DMsoNormal><st1:place w:st=3D"on"><st1:City w:st=3D"on"><font =
size=3D2
  face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>New
  York</span></font></st1:City><font size=3D2 face=3D"Courier =
New"><span
 style=3D'font-size:10.0pt;font-family:"Courier New"'>, <st1:State =
w:st=3D"on">NY</st1:State>&nbsp;
 <st1:PostalCode =
w:st=3D"on">10036</st1:PostalCode></span></font></st1:place><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>Telephone:&nbsp; (212) 642-4918 =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>Fax:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;
(212) 840-2298 <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>Email:&nbsp; sseitz@ansi.org =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>_____________END OF COVER PAGE, BEGINNING OF
DOCUMENT______________<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>8 July 2004<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>To: Secretariat of ISO/IEC JTC 1/SC =
22<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>cc: Chairman of ISO/IEC JTC 1/SC =
22<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Subject: Implementation of Coded Character Sets in <st1:place =
w:st=3D"on"><st1:City
 w:st=3D"on">Ada</st1:City></st1:place><o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>In behalf of SC 22/WG 9, I request that the appended document =
be circulated
to SC 22 member bodies well in advance of the forthcoming plenary =
meeting. This
document is provided in support of the following resolution which is =
proposed
for consideration at the plenary meeting:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&quot;Resolution 04-xx: Implementation of Coded Character Sets =
in the
Ada Language<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>JTC 1/SC 22 agrees that the proposed implementation of coded =
character
set support described in document 22N375<font color=3Dnavy><span
style=3D'color:navy'>8</span></font> agrees with the principles for =
coded
character set support previously adopted by JTC 1/SC 22, notably =
resolution
02-24.&quot;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Warmest regards,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>James W. Moore<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Convener, ISO/IEC JTC 1/SC 22/WG 9<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>=3D =3D =3D<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Document ISO/IEC JTC 1/SC 22 N =
3758<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><b><font size=3D3 face=3D"Times New Roman"><span
style=3D'font-size:12.0pt;font-weight:bold'>Implementation of Coded =
Character
Sets in <st1:place w:st=3D"on"><st1:City =
w:st=3D"on">Ada</st1:City></st1:place><o:p></o:p></span></font></b></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><i><font size=3D3 face=3D"Times New Roman"><span
style=3D'font-size:12.0pt;font-style:italic'>Contributed by James W. =
<st1:place
w:st=3D"on"><st1:City w:st=3D"on">Moore</st1:City></st1:place>, =
Convener of ISO/IEC
JTC 1/SC 22/WG 9, <st1:date Year=3D"2004" Day=3D"4" Month=3D"7" =
w:st=3D"on">4 July 2004</st1:date>
at the direction of SC 22/WG 9.<o:p></o:p></span></font></i></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>In September 2002, SC 22 adopted the following resolution at =
its
plenary meeting:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&quot;Resolution 02-24: Recommendation on Coded Character Sets =
Support<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>JTC 1/SC 22 believes that programming languages should offer =
the
appropriate support for ISO/IEC 10646, and the Unicode character set =
where
appropriate.&quot;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>WG9 is currently preparing an amendment to the Ada Language =
Standard,
ISO/IEC 8652:1995. The amendment will include changes in coded =
character
support. Because the effect of changes in this area will pervade the =
entire
standard and affect the treatment of other issues in the amendment, it =
is
important to understand whether the proposed approach complies with the
direction of SC22. Therefore, WG9 requests that the member bodies of =
SC22
review the approach described in this paper and provide comments to =
WG9.
Furthermore, WG9 requests that the following resolution be approved at =
the
forthcoming plenary meeting of SC22:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&quot;Resolution 04-xx: Implementation of Coded Character Sets =
in the
Ada Language<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>JTC 1/SC 22 agrees that the proposed Ada implementation of =
coded
character set support described by SC 22/WG 9 in document 22 N 3758 =
agrees with
the principles for coded character set support previously adopted by =
JTC 1/SC
22, notably resolution 02-24.&quot;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><b><font size=3D3 face=3D"Times New Roman"><span
style=3D'font-size:12.0pt;font-weight:bold'>Approach Proposed by SC =
22/WG 9<o:p></o:p></span></font></b></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>[Note: This description is written at the level of principles. =
For
those familiar with <st1:place w:st=3D"on"><st1:City =
w:st=3D"on">Ada</st1:City></st1:place>,
the details of the proposed approach can be found in =
&quot;AI-285&quot;, which can
be obtained from the convener of WG9, James Moore, <st1:PersonName =
w:st=3D"on">James.W.Moore@ieee.org</st1:PersonName>.]<o:p></o:p></span><=
/font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>This proposal is based on ISO/IEC 10646:2003. While this =
proposal
contains references to Unicode, the amendment text will be carefully =
phrased to
avoid such mentions. <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>The essence of this proposal is to allow the source of the =
program to
be written using 16-bit characters (from the BMP) or 32-bit characters. =
Also,
it makes it possible to operate on 32-bit characters at run-time. The =
main
difficulty in supporting characters beyond Row 00 of the BMP in the =
program
text is to define how identifiers and literals are built (which =
characters are
letters, digits, etc.) and to define the lower/upper case equivalence =
rules.
Fortunately, the implementation properties and algorithms referenced by =
10646
will do most of the work for us.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Unicode defines a &quot;character database&quot; which =
describes all
the properties of each character. The most important property for our =
purposes
is the &quot;General Category&quot;. General categories are disjoint. =
The following
categories are of interest for describing <st1:place =
w:st=3D"on"><st1:City w:st=3D"on">Ada</st1:City></st1:place>
program text:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<ul style=3D'margin-top:0in' type=3Ddisc>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Letter, =
Uppercase --
     e.g., LATIN CAPITAL LETTER A<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Letter, =
Lowercase --
     e.g., LATIN SMALL LETTER A<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Letter, =
Titlecase --
     e.g., LATIN CAPITAL LETTER L WITH SMALL LETTER =
J<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Letter, =
Modifier --
     e.g., MODIFIER LETTER APOSTROPHE<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Letter, =
Other --
     e.g., HEBREW LETTER ALEF<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Mark, =
Non-Spacing --
     e.g., COMBINING GRAVE ACCENT<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Mark, =
Spacing
     Combining -- e.g., MUSICAL SYMBOL COMBINING AUGMENTATION =
DOT<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span lang=3DDE =
style=3D'font-size:12.0pt'>Number,
     Decimal Digit -- e.g., DIGIT ZERO<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Number, =
Letter --
     e.g., ROMAN NUMERAL TWO<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Other, =
Control --
     e.g., NULL<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Other, =
Format --
     e.g., ACTIVATE ARABIC FORM SHAPING<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Other, =
Private Use
     -- e.g., &lt;Private Use, First&gt;<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>Other, =
Surrogate --
     e.g., &lt;Non Private Use High Surrogate, =
First&gt;<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span =
style=3D'font-size:12.0pt'>Punctuation,
     Connector -- e.g., LOW LINE<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span =
style=3D'font-size:12.0pt'>Separator, Space --
     e.g., SPACE<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span =
style=3D'font-size:12.0pt'>Separator, Line --
     e.g., LINE SEPARATOR<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l3 level1 lfo3'><font size=3D3
     face=3D"Times New Roman"><span =
style=3D'font-size:12.0pt'>Separator, Paragraph
     -- e.g., PARAGRAPH SEPARATOR<o:p></o:p></span></font></li>
</ul>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>(See : <a
href=3D"http://www.unicode.org/Public/4.0-Update/UCD-4.0.0.html#General_=
Category_Values">http://www.unicode.org/Public/4.0-Update/UCD-4.0.0.html=
#General_Category_Values</a>
for details on the categorization.)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>In the definition of the lexical elements of <st1:place =
w:st=3D"on"><st1:City
 w:st=3D"on">Ada</st1:City></st1:place>, we define a non-terminal of =
the grammar
for each of the above categories, e.g., letter_uppercase, =
letter_lowercase,
etc.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>The characters in the category other_format are effectively =
ignored in
most lexical elements, with the exception that they are illegal in
string_literals and character_literals.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Throughout the syntax rules, we specify which characters are =
allowed
for the lexical elements. For instance, the E in the exponent part of a =
numeric
literal may not be a &quot;GREEK CAPITAL LETTER EPSILON&quot;, even =
though a
capital E and a capital epsilon look very much the same. Similar =
considerations
apply to the extended digits, the point, =
etc.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Unicode proposes to define identifiers for programming =
languages as
follows (see annex 7 of UAX #15 at
http://www.unicode.org/reports/tr15/tr15-23.html#Programming_Language_Id=
entifiers):<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp; identifier ::=3D identifier_start =
{identifier_start |
identifier_extend}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp; identifier_start ::=3D letter_uppercase =
|<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;
letter_lowercase |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;
letter_titlecase |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;
letter_modifier |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;
letter_other |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;
number_letter<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp; identifier_extend ::=3D mark_non_spacing =
|<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;
mark_spacing_combining |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;
number_decimal_digit |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;
punctuation_connector |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;
other_format<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>This definition was made with C in mind, and is not exactly =
appropriate
for <st1:place w:st=3D"on"><st1:City =
w:st=3D"on">Ada</st1:City></st1:place>, as it
would allow consecutive underlines. Because the underline is the only =
character
of Row 00 of the BMP which is a punctuation_connector, it seems =
sensible to
remain close to the existing <st1:place w:st=3D"on"><st1:City =
w:st=3D"on">Ada</st1:City></st1:place>
syntax rules, and to use the following =
definitions:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp; identifier_start ::=3D letter_uppercase =
|<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;
letter_lowercase |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;
letter_titlecase |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;
letter_modifier |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;letter=
_other
|<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;
number_letter<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp; identifier_extend ::=3D identifier_letter =
|<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;
mark_non_spacing |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;
mark_spacing_combining |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;
number_decimal_digit |<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;other_format<o:p></o:p><=
/span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;&nbsp; identifier ::=3D identifier_start =
{[punctuation_connector]
identifier_extend}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Unicode recommends that, before storing or comparing =
identifiers, the
following transformations be applied:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<ul style=3D'margin-top:0in' type=3Ddisc>
 <li class=3DMsoNormal style=3D'mso-list:l2 level1 lfo6'><font size=3D3
     face=3D"Times New Roman"><span =
style=3D'font-size:12.0pt'>Characters in
     category other_format are filtered =
out.<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l2 level1 lfo6'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>For =
languages which
     have case insensitive identifiers, Normalization Form KC is =
applied (see
     http://www.unicode.org/reports/tr15/tr15-23.html#Specification). =
This is
     to ensure that identifiers which look visually the same are =
considered as
     identical, even if they are composed of different =
characters.<o:p></o:p></span></font></li>
 <li class=3DMsoNormal style=3D'mso-list:l2 level1 lfo6'><font size=3D3
     face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>_Full_ =
case folding,
     as described in the table
     http://www.unicode.org/Public/4.0-Update/CaseFolding-4.0.0.txt, is =
used to
     find the uppercase version of each =
character.<o:p></o:p></span></font></li>
</ul>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>We decided not to apply Normalization Form KC, as there seems =
to be
insufficient experience on using normalization forms.&nbsp; Without
normalization, texts that look alike don't have the same meaning; with
normalization the widely available text tools like grep, awk, etc. =
don't
work.&nbsp; We follow the lead of C# (ECMA-334) in specifying that a =
program
which is not in Normalization Form KC has an implementation-defined =
effect.
This ensures that a program text which is normalized is portable. It =
also allows
an implementation to provide useful support for non-normalized texts if
appropriate in a particular computing environment (in that case, the
implementation must document how it handles such =
texts).<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Unicode doesn't provide guidance for the composition of numeric
literals, so we don't change them. The use of the digits at positions =
16#30# to
16#39# is universal in information technology, and allowing digits from =
other
cultures could cause confusion while bringing little =
benefits.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>The definition and role of format_effectors is modified to =
include the
characters at positions 16#85#, 16#2028# and 16#2029#. These characters =
may be
used to terminate lines, as recommended by section 5.8 of Unicode 4.0 =
(see
http://www.unicode.org/versions/Unicode4.0.0/ch05.pdf#G10213).<o:p></o:p=
></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Note that characters in category other_format are forbidden in
character_literals and string_literals, because their sole purpose is =
to affect
the presentation of characters. If a program needs to operate on these
characters, it can do that by using Wide_Wide_Character'Val =
(...).<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Private use characters are not considered to be graphic =
characters
(even though for some applications they may actually turn out to be =
graphic).
The reason is that we wouldn't be able to define the case folding rules =
for these
characters, so it seems better to disallow them, except in comments =
where they
cannot do any harm.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>In order to represent 32-bit characters at run-time, we add new
declarations and new predefined packages for 32-bit characters. These =
packages
are similar to their Wide_ equivalents, with Wide_Wide_ substituted for =
Wide_
everywhere. In addition a declaration provides a character set =
containing every
Wide_Wide_Character value in the BMP of ISO/IEC 10646:2003. We also add
attributes permitting conversion between the images and values of
Wide_Wide_Character.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Note that the dynamic semantics of a number of operations are =
defined
in terms of &quot;space&quot; and &quot;blank&quot;. A space is the =
character at
position 16#20# and a blank is either a space or a horizontal =
tabulation. We
are not changing the definition of space or blank, so characters like =
NO-BREAK
SPACE or IDEOGRAPHIC SPACE are not considered to be space or blank in =
this
context of Text_IO.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>SC22/WG14 is considering the inclusion of support for Unicode =
16- and
32-bit characters in C. Their proposal is presented in ISO/IEC TR 19769
(http://std.dkuug.dk/JTC1/SC22/WG14/www/docs/n1040.pdf). At the time of =
this
writing, this technical report is in the FDIS ballot stage. In order to =
provide
compatibility with the upcoming C standard, new types are added to =
Interfaces.C
that correspond to C char16_t and char32_t. It is recognized that =
adding new
declarations to predefined units can cause incompatibilities, but it is =
thought
that the new identifiers are unlikely to conflict with existing =
code.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><strong><b><font size=3D3 face=3DArial><span =
style=3D'font-size:
12.0pt;font-family:Arial'>Sally =
Seitz</span></font></b></strong><o:p></o:p></p>

<p class=3DMsoNormal><em><i><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Program =
Administrator</span></font></i></em><o:p></o:p></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>ANSI</span></font><o:p></o:p></p>

<p class=3DMsoNormal><st1:Street w:st=3D"on"><st1:address =
w:st=3D"on"><font size=3D2
  face=3DArial><span style=3D'font-size:10.0pt;font-family:Arial'>25 =
West 43rd
  Street</span></font></st1:address></st1:Street><o:p></o:p></p>

<p class=3DMsoNormal><st1:place w:st=3D"on"><st1:City w:st=3D"on"><font =
size=3D2
  face=3DArial><span style=3D'font-size:10.0pt;font-family:Arial'>New =
York</span></font></st1:City><font
 size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>, <st1:State
 w:st=3D"on">NY</st1:State> <st1:PostalCode =
w:st=3D"on">10036</st1:PostalCode></span></font></st1:place><o:p></o:p><=
/p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Phone: (212) 642-4918</span></font><o:p></o:p></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Fax: (212) 840-2298</span></font><o:p></o:p></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>

------_=_NextPart_001_01C4651D.F8678F90--
