Attributes

Ada Programming · Wikibooks

0%

Contents

    Text

    Size
    100%
    Theme
    Typeface
    Line length
    Spacing

    From Wikibooks, under CC BY-SA 4.0, as the source states it. This page at Wikibooks.

    Attributes

    Ada. Time-tested, safe and secure.
    Ada. Time-tested, safe and secure.

    When entities like variables or subprograms are declared, certain properties thereof normally are left to the compiler to specify (like the size or the address of a variable, the calling convention of a subprogram). Properties which may be queried are called Attributes; those which may be specified are called Aspects. Aspects and attributes are defined in the Ada Reference Manual annex Annex K: Language-Defined Aspects and Attributes [Annotated].

    Language summary attributes

    The concept of attributes is pretty unique to Ada. Attributes allow you to get —and sometimes set— information about objects or other language entities such as types. A good example is the Size attribute. It describes the size of an object or a type in bits.

    A : Natural := Integer'Size; -- A is now 32 (with the GNAT compiler for the x86 architecture)
    

    However, unlike the sizeof operator from C/C++ the Size attribute can also be set:

    type Byte is range -128 .. 127;  -- The range fits into 8 bits but the
                                     -- compiler is still free to choose.
    for  Byte'Size use 8;            -- Now we force the compiler to use 8 bits.
    

    Of course not all attributes can be set. An attribute starts with a tick ' (apostrophe) and is followed by its name. The compiler determines by context if the tick is the beginning of an attribute, a character literal or a quantified expression.

    A : Character := Character'Val (32);     -- A is now a space
    B : Character := ' ';                    -- B is also a space
    S : String    := Character'(')')'Image;  -- an especially nice parsing exercise
    

    List of language defined attributes

    Ada 2005
    This is a new Ada 2005 attribute.
    Ada 2012
    This is a new Ada 2012 attribute.
    Ada 2022
    This is a new Ada 2022 attribute.
    Obsolescent
    This is a deprecated attribute and should not be used in new code.

    A – B

    C

    D – F

    G – L

    M

    O – R

    S

    T – V

    W – Z

    List of implementation defined attributes

    The following attributes are not available in all Ada compilers, only in those that had implemented them.

    Currently, there are only listed the implementation-defined attributes of a few compilers. You can help Wikibooks adding specific attributes of other compilers:

    GNAT
    Implementation-defined attribute of the GNAT compiler from AdaCore/FSF.
    HP Ada
    Implementation-defined attribute of the HP Ada compiler (formerly known as "DEC Ada").
    ICC
    Implementation-defined attribute[1] of the Irvine ICC compiler.
    PowerAda
    Implementation-defined attribute of OC Systems' PowerAda.
    SPARCompiler
    Implementation-defined attribute of Sun's SPARCompiler Ada.

    A – D

    E – H

    I – N

    O – T

    U – Z

    See also

    Wikibook

    Ada Reference Manual

    Ada 83

    Ada 95

    Ada 2005

    Ada 2012

    Ada 2022

    References

    1. ↑ "4.2 ICC-Defined Attributes", ICC Ada Implementation Reference — ICC Ada Version 8.2.5 for i960MC Targets, document version 2.11.4 [1]