This Reference Manual output has not been verified, and may contain omissions or errors. Report any problems on the tracking issue
Identifiers are used as names.
identifier shall not contain two consecutive characters in category
punctuation_connector, or end with a character in that category.
An identifier shall only contain characters that may be present in Normalization Form KC (as defined by Clause 21 of ISO/IEC 10646:2017).
identifiers are considered the same if they consist of the same sequence of characters after applying locale-independent simple case folding, as defined by documents referenced in Clause 2 of ISO/IEC 10646:2017 .
After applying simple case folding, an
identifier shall not be identical to a reserved word.
identifiers and reserved words are the same. Since a compiler usually will lexically process
identifiers and reserved words the same way (often with the same code), this will prevent a lot of headaches.
identifiers nor reserved words. We are not aware of any such sequences so long as we use simple case folding (as opposed to full case folding), but we have defined the rules in case any are introduced in future character set standards. This originally was a problem when converting to upper case: “ıf” and “acceß” have upper case conversions of “IF” and “ACCESS” respectively. We would not want these to be treated as reserved words. But neither of these cases exist when using simple case folding.
In a nonstandard mode, an implementation may support other upper/lower case equivalence rules for
identifiers[, to accommodate local conventions].
DİYARBAKIR -- The first i is dotted, the second isn't.
Identifiers differing only in the use of corresponding upper and lower case letters are considered the same.
Examples of identifiers:
Count X Get_Symbol Ethelyn Marion
Snobol_4 X1 Page_Count Store_Next_Item
Πλάτων -- Plato
Чайковский -- Tchaikovsky
θ φ -- Angles
Wording Changes from Ada 83
identifiers. This is not a language change. In Ada 83,
identifierincluded reserved words. However, this complicated several other rules (for example, regarding implementation-defined attributes and pragmas, etc.). We now explicitly allow certain reserved words for attribute designators, to make up for the loss.
identifier. As a side effect, implementations cannot use reserved words as implementation-defined attributes or pragma names.
Extensions to Ada 95
identifiercan use any letter defined by ISO-10646:2003, along with several other categories. This should ease programming in languages other than English.
Incompatibilities With Ada 2005
other_formatcharacters were removed from identifiers as the Unicode recommendations have changed. This change can only affect programs written for the original Ada 2005, so there should be few such programs.