Una declaración asocia un nombre con una entidad. Una declaración puede ser: explícita, cuando aparece en el código fuente del programa, o implícita, cuando se produce como consecuencia de otra construcción.
declaration ::= basic_declaration | enumeration_literal_specification | discriminant_specification | component_declaration | loop_parameter_specification | parameter_specification | subprogram_body | entry_declaration |entry_index_specification | choice_parameter_specification | generic_formal_parameter_specification | extended_return_statement
El nombre de la entidad declarada se define normalmente como un defining_identifier, aunque, a veces, puede adoptar la forma de un defining_character_literal o un defining_operator_symbol.
defining_identifier ::= identifier defining_character_literal ::= character_literal defining_operator_symbol ::= operator_symbol