Ada Programming/Operators

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

Standard operatorsEdit

Ada allows operator overloading for all standard operators and so the following summaries can only describe the suggested standard operations for each operator. It is quite possible to misuse any standard operator to perform something unusual.

Each operator is either a keyword or a delimiter—hence all operator pages are redirects to the appropriate keyword or delimiter.

Operators have arguments which in the RM are called Left and Right for binary operators, Right for unary operators (indicating the position with respect to the operator symbol).

The list is sorted from lowest precedence to highest precedence.

Logical operatorsEdit

and  , (also keyword and)
or  , (also keyword or)
exclusive or  , (also keyword xor)

Relational operatorsEdit

Not Equal  , (also special character /=)
Equal  , (also special character =)
Less than  , (also special character <)
Less than or equal to ( ), (also special character <=)
Greater than ( ), (also special character >)
Greater than or equal to ( ), (also special character >=)

Binary adding operatorsEdit

Add  , (also special character +)
Subtract  , (also special character -)
Concatenate ,   &  , (also special character &)

Unary adding operatorsEdit

Plus sign  , (also special character +)
Minus sign  , (also special character -)

Multiplying operatorEdit

Multiply,  , (also special character *)
Divide  , (also special character /)
modulus (also keyword mod)
remainder (also keyword rem)

Highest precedence operatorEdit

Power  , (also special character **)
logical not  , (also keyword not)
absolute value   (also keyword abs)

Short-circuit control formsEdit

These are not operators and thus cannot be overloaded.

and then
e.g. if Y /= 0 and then X/Y > Limit then ...
or else
e.g. if Ptr = null or else Ptr.I = 0 then ...

Membership testsEdit

The Membership Tests also cannot be overloaded because they are not operators.

element of,  , e.g. if I in Positive then, (also keyword in)
not in
not element of,  , e.g. if I not in Positive then, (also keywords not in)

Range membership testEdit

if Today not in Tuesday .. Thursday then

Subtype membership testEdit

Is_Non_Negative := X in Natural;

Class membership testEdit

exit when Object in Circle'Class;

Range membership testEdit

if Today not in Tuesday .. Thursday then

Choice list membership testEdit

This language feature has been introduced in Ada 2012.

Ada 2012 extended the membership tests to include the union (short-circuit or) of several range or value choices.

if Today in Monday .. Wednesday | Friday then

See alsoEdit


Ada 95 Reference ManualEdit

Ada 2005 Reference ManualEdit

Ada Quality and Style GuideEdit

Ada Operators
and and then > + abs &
or or else >= - mod
xor = < * rem in
not /= <= ** / not in