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.