Uma declaração associa um identificador não vazio a uma constante, tipo, variável, função, label ou pacote. Cada identificador em um programa deve ser declarado.
Nenhum identificador pode ser declarado duas vezes no mesmo bloco e nenhum identificador pode ser declarado no bloco de arquivo e pacote.
Um identificador declarado em um bloco pode ser declarado novamente em um bloco interno. Embora o identificador da declaração interna esteja no escopo, ele denota a entidade declarada pela declaração interna.