📊 Tabela de Erros Comuns no COBOL 5.x
(Quando o compilador resolve dizer a verdade)
“COBOL 5 não quebrou seu programa.
Ele apenas revelou o que sempre esteve errado.”
— Bellacosa
🟥 ERROS DE DADOS (o choque de realidade)
| Erro comum | O que mudou no COBOL 5 | Sintoma típico | Impacto |
|---|---|---|---|
| MOVE inválido alfa → numérico | NUMCHECK rigoroso | Erro de compilação ou runtime | Job aborta cedo |
| Campo não inicializado | INITCHECK ativo | Warning/erro | Resultado imprevisível exposto |
| Uso de lixo em COMP | Validação agressiva | Falha imediata | S0C7 antecipado |
| PIC incompatível | Validação estrita | Compile error | Código não sobe |
| Truncamento inesperado | TRUNC mais explícito | Valor incorreto | Erro contábil |
🥚 Easter-egg:
O erro “novo” já existia no COBOL 4 — só não gritava.
🟧 ERROS DE CONTROLE DE FLUXO
| Erro comum | COBOL 5 faz diferente | Sintoma | Consequência |
|---|---|---|---|
| PERFORM THRU mal definido | Análise de fluxo | Warning severo | Lógica rejeitada |
| GO TO cruzando blocos | Restrição maior | Erro de compilação | Código não compila |
| IF/END-IF inconsistentes | Estrutura rígida | Compile error | Refatoração obrigatória |
| EXIT mal posicionado | Regras mais claras | Erro lógico | Fluxo interrompido |
Bellacosa note:
Se o COBOL 5 reclama, o código está errado — ponto.
🟨 ERROS DE STORAGE E MEMÓRIA
| Erro comum | COBOL 5 expõe | Sintoma | Resultado |
|---|---|---|---|
| REDEFINES mal alinhado | SSRANGE ativo | Runtime error | S0C4 |
| OCCURS fora de limite | Checagem ativa | Abort imediato | Proteção de memória |
| DEPENDING ON inválido | Validação em runtime | Abend | Corrupção evitada |
| Índice mal usado | Tipagem rígida | Compile error | Correção forçada |
🥚 Easter-egg técnico:
SSRANGE não cria erro — ele evita desastre.
🟦 ERROS DE ARQUIVOS (mais disciplina)
| Erro comum | Diferença no COBOL 5 | Sintoma | Impacto |
|---|---|---|---|
| FILE STATUS ignorado | Warning severo | Job rejeitado | Erro detectado cedo |
| READ sem AT END | Análise estática | Compile warning | Loop evitado |
| WRITE sem validação | Checagem formal | Runtime error | Integridade garantida |
| OPEN fora de ordem | Validação rígida | Abend | Erro explícito |
🟪 ERROS DE PERFORMANCE (o paradoxo)
| Erro comum | Por que aparece no COBOL 5 | Sintoma | Efeito |
|---|---|---|---|
| Código “lento” após migração | Otimização diferente | CPU aumenta | Ajustar OPTIMIZE |
| Dependência de MOVE | Nova análise | Código inchado | Refatoração |
| DISPLAY em loop | Runtime moderno | Batch mais lento | Remover debug |
| Falta de INLINE | Compilação conservadora | Performance ruim | Ajustar opções |
Bellacosa truth:
COBOL 5 é mais rápido — se o código merecer.
🟫 ERROS DE COMPILAÇÃO (novos padrões)
| Erro comum | COBOL 5 exige | Sintoma | Ação |
|---|---|---|---|
| Código legado ambíguo | Sintaxe clara | Compile error | Refatorar |
| Ignorar warnings | Warnings viram erros | Build falha | Corrigir |
| TRUNC inconsistente | Padronização | Valor errado | Revisar |
| Dependência de defaults | Defaults mudaram | Resultado inesperado | Definir parms |
☠️ ABENDS mais associados ao COBOL 5
| ABEND | Motivo |
|---|---|
| S0C7 | Detectado mais cedo |
| S0C4 | Proteção de memória |
| U4038 | INITCHECK / NUMCHECK |
| U4087 | Violação de range |
| U4093 | Lógica inválida |
🎓 Resumo para Padawans
✔ COBOL 5 não tolera código sujo
✔ Erros aparecem mais cedo
✔ Migração revela dívidas técnicas
✔ Mais seguro, mais rápido, mais previsível
🧠 Frase Final Bellacosa™
“COBOL 4 confiava no programador.
COBOL 5 confia nos dados.”