COBOL - DATA DIVISION - data description entry - SYNCHRONIZED clause



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

COBOL - DATA DIVISION - data description entry - SYNCHRONIZED clause
Enterprise COBOL for z/OS, V4.2, Language Reference

A cláusula SYNCHRONIZED especifica o alinhamento de um item elementar em um limite natural no armazenamento.

SYNC é uma abreviação de SYNCHRONIZED e tem o mesmo significado.

A cláusula SYNCHRONIZED nunca é necessária, mas pode melhorar o desempenho em alguns sistemas de itens binários usados ??em aritmética.

A cláusula SYNCHRONIZED pode ser especificada para itens elementares e para itens de grupo de nível 01; nesse caso, todos os itens elementares do item de grupo são sincronizados.

LEFT
Especifica que o item elementar deve ser posicionado de forma que comece na posição esquerda do caractere do limite natural em que o item elementar é colocado.

RIGHT
Especifica que o item elementar deve ser posicionado de forma que termine na posição correta do caractere do limite natural em que foi colocado.

Quando especificadas, as frases LEFT e RIGHT são verificadas quanto à sintaxe, mas não têm efeito na execução do programa.

O comprimento de um item elementar não é afetado pela cláusula SYNCHRONIZED.

A tabela a seguir lista o efeito da cláusula SYNCHRONIZE em outros elementos de idioma.

Tabela 1. Efeito da cláusula SYNCHRONIZE em outros elementos de idioma

Elemento da linguagem Comentários
Cláusula OCCURS Quando especificado para um item dentro do escopo de uma cláusula OCCURS, cada ocorrência do item é sincronizada.
USAGE DISPLAY ou PACKED-DECIMAL Cada item é verificado na sintaxe, mas a cláusula SYNCHRONIZED não tem efeito na execução.
USAGE NATIONAL Cada item é verificado na sintaxe, mas a cláusula SYNCHRONIZED não tem efeito na execução.
USAGE BINARY ou COMPUTATIONAL Quando o item é o primeiro item elementar subordinado a um item que contém uma cláusula REDEFINES, o item não deve exigir a adição de posições de caracteres não utilizadas.

Quando a cláusula sincronizada não é especificada para um item de dados subordinado (um com um número de nível de 02 a 49):

  • O item é alinhado em um deslocamento múltiplo de 2 em relação ao início do registro, se USAGE for BINARY e PICTURE estiver na faixa de S9 a S9(4).
  • O item é alinhado em um deslocamento múltiplo de 4 em relação ao início do registro, se USAGE for BINARY e PICTURE estiver no intervalo de S9(5) a S9(18) ou se USAGE for INDEX.

Quando SYNCHRONIZED não é especificado para itens binários, nenhum espaço é reservado para bytes livres.

USAGE POINTER,
PROCEDURE-POINTER,
FUNCTION-POINTER,
OBJECT REFERENCE
Os dados são alinhados em um limite de palavra completa.
USAGE COMPUTATIONAL-1 Os dados são alinhados em um limite de palavra completa.
USAGE COMPUTATIONAL-2 Os dados são alinhados em um limite de duas palavras.
USAGE COMPUTATIONAL-3 Os dados são tratados da mesma forma que a cláusula SYNCHRONIZED para um item PACKED-DECIMAL.
USAGE COMPUTATIONAL-4 Os dados são tratados da mesma forma que a cláusula SYNCHRONIZED para um item COMPUTATIONAL.
USAGE COMPUTATIONAL-5 Os dados são tratados da mesma forma que a cláusula SYNCHRONIZED para um item COMPUTATIONAL.
DBCS e external floating-point items Cada item é verificado na sintaxe, mas a cláusula SYNCHRONIZED não tem efeito na execução.
Cláusula REDEFINES Para um item que contém uma cláusula REDEFINES, o item de dados redefinido deve ter o alinhamento de limite adequado para o item de dados que o redefine.
Por exemplo, se você escrever o seguinte, verifique se o item de dados A começa em um limite de palavra completa:
           02 A              PICTURE X(4).
           02 B REDEFINES A  PICTURE S9(9) BINARY SYNC.

Na FILE SECTION, o compilador supõe que todos os registros de nível 01 que contêm itens SYNCHRONIZED estejam alinhados nos limites de duas palavras no buffer.
Você deve fornecer os bytes de folga necessários entre os registros para garantir o alinhamento quando houver vários registros em um bloco.

Na WORKING-STORAGE SECTION, o compilador alinha todas as entradas de nível 01 em um limite de duas palavras.

Para fins de alinhamento de itens binários na seção de ligação, presume-se que todos os itens de nível 01 iniciem nos limites de duas palavras.
Portanto, se você emitir uma instrução CALL, esses operandos de qualquer frase USING dentro dela deverão ser alinhados de forma correspondente.



© Copyright IBM Corp.