A partir do Enterprise COBOL Versão 3, mudanças substanciais são implementadas de acordo com o Padrão COBOL 2002 e o Padrão COBOL 2014.
Este tópico lista as alterações que afetarão potencialmente os programas COBOL existentes e as alterações que não afetarão os programas COBOL existentes.
| Recursos |
Notas |
Declaração de ACCEPT ano de quatro dígitos |
A capacidade de acessar o ano de quatro dígitos do calendário gregoriano é adicionada à
instrução ACCEPT. |
| Apóstrofo como aspa |
O caractere apóstrofo e as aspas podem ser usados nos delimitadores de abertura e fechamento de
literais alfanuméricos, booleanos e nacionais.
Um determinado literal pode usar o apóstrofo ou as aspas, mas os caracteres inicial e final devem ser iguais.
Qualquer que seja o caractere usado, é necessário dobrar esse caractere para representar uma ocorrência do caractere dentro do literal.
Ambos os formatos podem ser usados em um único elemento de origem. |
| Operadores aritméticos |
Nenhum espaço é necessário entre um parêntese esquerdo e um operador unário ou entre um operador
unário e um parêntese esquerdo. |
| Frase AT END |
A frase AT END da instrução READ não precisa ser especificada se não houver uma instrução USE
aplicável. |
Dados BINARY e de ponto flutuante |
Duas novas representações de tipo de dados numéricos são introduzidas, uma representação binária
que mantém os dados de uma maneira específica da máquina e não está restrita a intervalos decimais de valores e uma representação de ponto flutuante.
O tipo de ponto flutuante existe tanto na forma numérica, com uma representação específica da máquina, quanto na forma numérica editada. |
| Números de nível de argumento CALL (qualquer) |
Os argumentos CALL podem ser elementares ou grupos com qualquer número de nível.
Anteriormente, eles tinham que ser elementares ou ter um número de nível 1 ou 77. |
Diferença do parâmetro CALL BY CONTENT |
Um parâmetro passado por conteúdo não precisa ter a mesma descrição que o parâmetro
correspondente no programa chamado. |
Diferença de comprimento do parâmetro CALL |
O tamanho de um argumento na frase USING da instrução CALL pode ser maior que o tamanho do
parâmetro formal correspondente se o argumento ou o parâmetro formal for um item de grupo.
Anteriormente, os tamanhos deviam ser os mesmos. |
| CALL recursivamente |
A capacidade de chamar um programa COBOL ativo foi adicionada ao COBOL. |
Palavras COBOL reservadas no contexto |
Certas palavras adicionadas ao padrão COBOL são reservadas apenas nos contextos em que são
especificadas e não foram adicionadas à lista de palavras reservadas.
Consulte Context-sensitive words - Palavras sensíveis ao contexto para obter detalhes. |
Cláusula CODE (Report Writer) |
A frase identificadora é fornecida na cláusula CODE na entrada da descrição do relatório. |
| Cláusula COLUMN |
Uma forma relativa é fornecida usando o inteiro PLUS, por analogia com LINE; COLUMN RIGHT e
COLUMN CENTER são fornecidos, permitindo o alinhamento de um item imprimível à direita ou ao centro; e COL, COLS e COLUMNS são permitidos como sinônimos para
COLUMN. |
Cláusulas COLUMN, LINE, SOURCE e VALUE |
Essas cláusulas podem ter mais de um operando em uma entrada de descrição do grupo de relatórios. |
| Linhas de comentário em qualquer lugar de um grupo de compilação |
As linhas de comentário podem ser escritas como qualquer linha em um grupo de compilação,
inclusive antes do cabeçalho da divisão de identificação. |
| Diretivas do compilador |
- A diretiva do compilador CALLINTERFACE especifica a convenção de interface para as instruções CALL e SET.
- A diretiva DEFINE define ou anula uma variável de compilação.
- A diretiva EVALUATE fornece um método de ramificação múltipla para escolher as linhas de origem a serem incluídas em um grupo de compilação.
- A diretiva IF fornece uma compilação condicional unilateral ou bidirecional.
|
| Nome dos dados de controle |
Isso pode ser omitido em TYPE CH/CF se apenas um controle for definido. |
| Conversão do ano de dois dígitos para o ano de quatro dígitos |
Existem três funções para converter de um ano de dois dígitos para um ano de quatro dígitos.
DATE-TO-YYYYMMDD, DAY-TO-YYYYDDD e YEAR-TO-YYYY convertem de YYnnnn para YYYYnnnn, YYnnn para YYYYnnn e YY para YYYY, respectivamente. |
| Declaração COPY |
Um literal alfanumérico pode ser especificado no lugar de text-name-1 ou library-name-1.
Quando mais de uma biblioteca COBOL é referenciada, o nome do texto não precisa ser qualificado quando o texto da biblioteca reside na biblioteca padrão.
A capacidade de aninhar instruções COPY é fornecida.
O texto da biblioteca incorporado como resultado do processamento de uma instrução COPY sem uma frase REPLACING pode conter uma instrução COPY sem uma frase
REPLACING.
Uma frase SUPPRESS PRINTING é adicionada à instrução COPY para suprimir a listagem do texto da biblioteca incorporado como resultado do processamento da
instrução COPY. |
Substituição parcial de palavras das instruções COPY e REPLACE |
As frases LEADING e TRAILING da instrução REPLACE e a frase REPLACING da instrução COPY
permitem a substituição de palavras parciais no texto fonte e no texto da biblioteca.
Isso é útil para prefixar e pós-fixar nomes. |
| Extensões de sinal de moeda |
A cláusula CURRENCY SIGN foi estendida para permitir caracteres nacionais e vários sinais de
moeda distintos, que podem ter qualquer comprimento. |
| Declaração DISPLAY |
Se o literal em uma instrução DISPLAY for numérico, ele pode ser assinado. |
| Divida por zero |
DIVIDE BY zero está em conformidade com o 2002 COBOL Standard.
Nada mudou no IBM® COBOL, mas o Padrão foi alterado de forma que agora o Enterprise COBOL está em conformidade.
(Enterprise COBOL não estava em conformidade com o padrão 85 COBOL para DIVIDE BY zero.) |
| Itens elementares de comprimento dinâmico |
A adição da cláusula DYNAMIC LENGTH fornece a capacidade de descrever um item de dados de
tamanho variável. |
| Alocação dinâmica de armazenamento |
As instruções ALLOCATE e FREE são fornecidas para obter armazenamento dinamicamente.
Este armazenamento é endereçado por itens de dados de ponteiro. |
| Declaração EXIT |
A capacidade de sair imediatamente de uma instrução PERFORM embutida, um parágrafo ou uma
seção foi adicionada. |
EXIT PROGRAM permitido como outra declaração diferente
| É permitido que EXIT PROGRAM apareça diferente da última instrução em uma seqüência consecutiva
de instruções imperativas. |
| FILLER |
FILLER é permitido na seção de relatório (report section). |
| Delimitadores de comentários flutuantes |
- O indicador de comentário flutuante (*>) indica uma linha de comentário se for a primeira cadeia de caracteres na área de texto do programa (Área A mais Área B),
ou indica um comentário embutido se estiver após uma ou mais cadeias de caracteres no programa área de texto.
- O indicador de diretiva do compilador (>>) indica uma linha de diretiva do compilador quando seguida por uma palavra de diretiva do compilador - com ou sem
um espaço intermediário.
|
| FUNCTION All INTRINSIC |
O parágrafo REPOSITORY oferece suporte a um especificador de função e, para algumas funções
intrínsecas, a palavra-chave FUNCTION é opcional quando uma função é incluída no parágrafo REPOSITORY. |
| Declaração GOBACK |
Foi adicionada uma instrução GOBACK que sempre retorna o controle, seja para o sistema
operacional ou para o elemento de tempo de execução de chamada. |
| Literais hexadecimais |
A capacidade foi adicionada para especificar literais alfanuméricos, booleanos e nacionais
usando notação hexadecimal (raiz 16). |
| Comentário inline |
Um comentário pode ser escrito em uma linha após qualquer sequência de caracteres do texto de
origem ou do texto da biblioteca que esteja escrito nessa linha.
Um comentário embutido é introduzido pelos dois caracteres contíguos '*>'. |
| Item de dados do índice |
A definição de um item de dados de índice pode incluir a cláusula SYNCHRONIZED. |
Instrução INITIALIZE, frase FILLER |
Os itens de dados FILLER podem ser inicializados com a instrução INITIALIZE. |
Instrução INITIALIZE, frase VALUE |
Uma frase VALUE pode ser especificada na instrução INITIALIZE para causar a inicialização de
itens de dados elementares para o literal especificado na cláusula VALUE da entrada de descrição de dados associada. |
| Facilidade de função intrínseca |
Anteriormente, o recurso de função intrínseca era um módulo separado e sua implementação era
opcional.
A facilidade de função intrínseca é integrada na especificação e deve ser implementada por uma implementação conforme |
| Novas funções intrínsecas |
Novas funções intrínsecas são adicionadas:
- ABS
- BYTE-LENGTH
- E
- EXP
- EXP10
- DATE-TO-YYYYMMDD
- DAY-TO-YYYYDDD
- DISPLAY-OF
- NATIONAL-OF
- NUMVAL-F
- PI
- SIGN
- TEST-NUMVAL
- TEST-NUMVAL-C
- TEST-NUMVAL-F
- TRIM
- YEAR-TO-YYYY
|
| Frase INVALID KEY |
A frase INVALID KEY não precisa ser especificada se não houver uma instrução USE aplicável. |
| LOCAL-STORAGE SECTION |
Um recurso foi adicionado para definir os dados que são configurados com seus valores iniciais
cada vez que uma função, método ou programa é ativado.
Cada instância deste elemento de origem tem sua própria cópia desses dados. |
| Tratamento de caráter nacional |
A capacidade é adicionada para o uso de grandes conjuntos de caracteres, como ISO/IEC 10646-1,
no texto fonte e no texto da biblioteca e nos dados em tempo de execução.
A classe nacional e as categorias nacional e nacional editadas são especificadas por cadeias de caracteres de imagem contendo o símbolo 'N'; literais nacionais
são identificados por um separador N", N', NX" ou NX'.
O uso nacional especifica a representação de dados em um conjunto de caracteres nacional.
Palavras definidas pelo usuário podem conter letras estendidas. O processamento de dados de classe nacional é comparável ao processamento de dados de classe
alfanumérica, embora haja algumas pequenas diferenças.
As conversões entre os dados das classes alfanuméricas e nacionais são fornecidas por funções intrínsecas. |
| Orientação do objeto |
Suporte para programação orientada a objetos foi adicionado. |
| Cláusula OCCURS |
Repetição vertical ou horizontal e uma frase STEP são adicionadas ao Report Writer. |
| Palavra opcional OF |
Permitido após SUM. |
| Palavra opcional FOR e ON |
Permitido após TYPE CH ou CF. |
| Frase OR PAGE da frase CONTROL HEADING |
Isso permite que o grupo de título de controle seja impresso na parte superior de cada página
e após uma quebra de controle. |
Grupo de relatórios PAGE FOOTING |
Esse grupo pode ter todas as cláusulas LINE relativas. |
| Cláusula PAGE LIMIT |
Uma nova frase COLUMNS é fornecida para definir o número máximo de posições de impressão
horizontal em cada linha do relatório e uma frase LAST CONTROL HEADING foi adicionada. |
| Nome do parágrafo |
Não é necessário um nome de parágrafo no início da divisão ou seção do procedimento. |
| Declaração PERFORM |
Uma saída comum para várias instruções PERFORM ativas é permitida. |
| Cláusula PICTURE |
O número máximo de caracteres que podem ser especificados em uma sequência de caracteres de imagem aumentou de 30 para 50.
O símbolo 'E' pode ser usado em uma seqüência de caracteres PICTURE para especificar um item de dados editado numérico de ponto flutuante.
O símbolo 'N' pode ser usado em uma sequência de caracteres PICTURE para especificar um item de dados nacional ou editado por país.
Quando o último símbolo de uma sequência de caracteres PICTURE é um ponto ou vírgula, um ou mais espaços podem preceder o ponto separador seguinte.
Não estava claro no padrão anterior se um espaço poderia preceder o período separador neste contexto.
|
| PLUS e MINUS |
O símbolo + ou - é sinônimo de MAIS ou MENOS, respectivamente, nas cláusulas COLUMN e LINE. |
| Dados de ponteiro |
Uma nova classe de dados é introduzida, um tipo de ponteiro que contém dados e endereços de
programa de uma maneira específica da máquina ou do sistema. |
| Cláusula PRESENT WHEN |
As cláusulas PRESENT WHEN permitem que linhas e itens imprimíveis, ou grupos deles, sejam
impressos ou não, dependendo do valor de verdade de uma condição. |
| Nomes de programas como literais |
A opção de especificar um literal como o nome do programa a ser externalizado foi adicionada
para nomes que não são palavras COBOL válidas ou precisam fazer distinção entre maiúsculas e minúsculas. |
RECORD KEY e ALTERNATE RECORD KEY |
As chaves para arquivos indexados podem ser compostas por mais de um componente. |
| Report Writer |
Anteriormente, o Report Writer era um módulo separado e sua implementação era opcional.
O recurso Report Writer está integrado na especificação e deve ser implementado por uma implementação conforme. |
| Suporte ao caráter nacional do Report Writer |
A capacidade de imprimir caracteres nacionais e caracteres alfanuméricos em um relatório é
fornecida. |
| Especificador de função |
O parágrafo REPOSITORY oferece suporte ao especificador de função e, para algumas funções
intrínsecas, a palavra-chave FUNÇÃO é opcional quando uma função está incluída no parágrafo REPOSITORY. |
Cláusula SIGN em uma entrada de descrição de relatório |
A frase SEPARATE não é mais necessária em uma entrada de descrição do relatório e a cláusula
SIGN pode ser especificada no nível do grupo. |
| Declaração SORT |
Uma instrução SORT pode ser usada para classificar uma tabela.
Essa classificação pode ser feita usando os campos especificados na frase-chave que define a tabela, usando todo o elemento da tabela como chave ou usando itens
de dados chave especificados.
Os arquivos GIVING em uma instrução SORT agora podem ser especificados na mesma cláusula SAME RECORD AREA. |
Cláusula SOURCE em uma entrada de descrição de relatório |
O operando de envio pode ser um identificador de função.
Uma expressão aritmética é permitida como um operando e uma frase ROUNDED foi adicionada. |
Cláusula SUM em uma entrada de descrição de relatório |
A cláusula SUM foi estendida das seguintes maneiras:
- Extensão para totalizar uma entrada repetida.
- Agora permitido em qualquer TIPO de grupo de relatórios, não apenas em pé de controle.
- SUM do formato de expressão aritmética.
- Verifica o estouro de um contador de soma durante a totalização.
- Qualquer item de seção de relatório numérico pode ser totalizado, não apenas outro contador de soma.
- Frase ROUNDED.
|
| Caráter sublinhado (_) (Underscore) |
Os caracteres especiais básicos do repertório de caracteres COBOL foram expandidos para incluir
o caractere sublinhado (_), que pode ser usado na formação de palavras COBOL. |
| Declaração UNSTRING |
O operando de envio pode ser modificado por referência. |
| USE BEFORE REPORTING |
O efeito de GLOBAL em uma descrição de relatório e em uma declarativa de USE é mais elucidado. |
Cláusula VALUE, frase WHEN SET TO FALSE na DATA DIVISION |
A frase WHEN SET TO FALSE permite a especificação de um valor de condição FALSE.
Este valor é movido para a variável condicional associada quando a instrução SET TO FALSE é executada para o nome da condição associada. |
| Cláusula VARYING |
Uma cláusula VARYING é fornecida nos recursos validate e Report Writer para ser usada com uma
cláusula OCCURS. |
| frase WITH RESET |
Isso foi adicionado à frase NEXT PAGE da cláusula NEXT GROUP para redefinir PAGE-COUNTER de
volta para 1.
Nota: Os recursos REPORT WRITER, como cláusula CODE, cláusula COLUMN, nome de dados de controle, CONTROL HEADING, PAGE FOOTING, PAGE LIMIT, cláusula SUM e
entradas de descrição de relatório são suportados por meio do Pré-compilador do Report Writer opcional. |