COBOL - Escopo de nomes



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - Estruturação de aplicativos complexos - Escopo de nomes

Enterprise COBOL for z/OS, Version 4.2, Programming Guide


Os nomes em estruturas aninhadas são divididos em duas classes: local e global.
A classe determina se um nome é conhecido além do escopo do programa que o declara.
Uma sequência de pesquisa específica localiza a declaração de um nome depois que ele é referenciado em um programa.

Nomes locais

Os nomes (exceto o nome do programa) são locais, a menos que seja declarado o contrário.
Os nomes locais são visíveis ou acessíveis apenas dentro do programa no qual foram declarados.
Eles não são visíveis ou acessíveis a programas contidos e contidos.

Nomes globais

Um nome que é global (indicado pelo uso da cláusula GLOBAL) é visível e acessível para o programa no qual é declarado e para todos os programas que estão direta e indiretamente contidos nesse programa.
Portanto, os programas contidos podem compartilhar dados e arquivos comuns do programa contido simplesmente referenciando os nomes dos itens.

Qualquer item subordinado a um item global (incluindo nomes de condição e índices) é automaticamente global.

Você pode declarar o mesmo nome com a cláusula GLOBAL mais de uma vez, desde que cada declaração ocorra em um programa diferente.
Esteja ciente de que você pode mascarar ou ocultar um nome em uma estrutura aninhada fazendo com que o mesmo nome ocorra em diferentes programas na mesma estrutura de conteúdo.
No entanto, esse mascaramento pode causar problemas durante a busca por uma declaração de nome.

Pesquisa por declarações de nomes

Quando um nome é referenciado em um programa, uma pesquisa é feita para localizar a declaração desse nome.
A pesquisa começa no programa que contém a referência e continua para os programas que o contêm até que uma correspondência seja encontrada.
A pesquisa segue este processo:

  1. As declarações no programa são pesquisadas.
  2. Se nenhuma correspondência for encontrada, apenas as declarações globais serão pesquisadas em programas sucessivos de conteúdo externo.
  3. A pesquisa termina quando o primeiro nome correspondente é encontrado.
    Se nenhuma correspondência for encontrada, existe um erro.

A pesquisa é por um nome global, não por um tipo específico de objeto associado ao nome, como um item de dados ou conector de arquivo.
A pesquisa para quando qualquer correspondência é encontrada, independentemente do tipo de objeto.
Se o objeto declarado for de um tipo diferente do esperado, existe uma condição de erro.


© Copyright IBM Corp.