Los nombres sirven para designar entidades (objetos de datos, unidades de librería, tipos de datos, ...) declaradas, objetos o subprogramas referenciados por un puntero (explicit_dereference), el resultado de una conversión de tipos (type_conversion) o una llamada a una función (function_call, operator_symbol), componentes o slices de un objeto compuesto, atributos, etc.
name ::=
direct_name | explicit_dereference
| indexed_component | slice
| selected_component | attribute_reference
| type_conversion | function_call
| character_literal
direct_name ::= identifier | operator_symbol
prefix ::= name | implicit_dereference