🟦 Guia Ideal de Parâmetros de Compilação COBOL no Mainframe
(COBOL 4.x e COBOL 5.x)
“Parâmetro errado não dá warning.
Dá abend… ou pior: dá erro silencioso.”
— Bellacosa
🧭 Visão geral – por que isso importa?
Os parâmetros de compilação definem:
-
como o COBOL interpreta seu código
-
como o objeto é gerado
-
se erros aparecem no compile ou em produção
-
performance, compatibilidade e estabilidade
👉 O mesmo código, com PARMs diferentes, vira outro programa.
🧬 Categorias de parâmetros (mapa mental)
1️⃣ Compatibilidade & Comportamento
2️⃣ Debug & Diagnóstico
3️⃣ Performance & Arquitetura
4️⃣ Controle de erros
5️⃣ Migração & Modernização
1️⃣ Parâmetros essenciais (BASE OBRIGATÓRIA)
Esses todo programa sério deveria ter.
| PARM | Função | Por que usar |
|---|---|---|
LANGUAGE(EN) | Mensagens em inglês | Facilita IBM Support |
LIST | Lista compilação | Auditoria e debug |
MAP | Mapa de dados | Debug estrutural |
XREF | Referências cruzadas | Entender legado |
RENT | Código reentrante | Batch + online |
DYNAM | CALL dinâmico | Compatível com CICS/Batch |
🥚 Easter-egg:
Se não tem MAP e LIST, você não compilou, você apenas rezou.
2️⃣ Parâmetros de DIAGNÓSTICO (modo padawan → jedi)
Use em desenvolvimento, teste e migração.
| PARM | O que faz | Dica Bellacosa |
|---|---|---|
SSRANGE | Protege acessos inválidos | Evita S0C4 |
NUMCHECK | Valida campos numéricos | Pegador de lixo |
FLAG(W) | Avisos de risco | Ative sempre |
TEST | Debug interativo | Para Xpediter/Debug Tool |
LISTHEX | Dump hexadecimal | Só para guerra |
💣 Verdade nua:
NOSSRANGEem produção = economia burra de CPU.
3️⃣ Parâmetros de PERFORMANCE (onde mora o MIPS)
COBOL 4 (equilíbrio)
COBOL 5 (modo turbo)
| PARM | Explicação |
|---|---|
OPTIMIZE(2) | Otimização agressiva |
ARCH(n) | Explora hardware (z13+) |
ARITH(EXTEND) | Precisão decimal |
🥚 Easter-egg técnico:
ARCHerrado = código que compila… e performa como COBOL 85.
4️⃣ Parâmetros de COMPATIBILIDADE (legado raiz)
Para sistemas antigos, principalmente na transição.
| PARM | Para quê |
|---|---|
TRUNC(STD) | Evita truncamento silencioso |
RULES(IBM) | Mantém comportamento clássico |
DATA(31) | Compatibilidade 31 bits |
⚠️ COBOL 5: muitos desses não existem mais.
5️⃣ Parâmetros de CONTROLE DE ERROS (produção séria)
| PARM | Função |
|---|---|
ABEND | Força abend real |
NOTEST | Remove debug |
NOSSRANGE | Só se testado exaustivamente |
Bellacosa rule:
Produção só roda o que passou por SSRANGE ligado.
🧪 Combinações recomendadas (receita pronta)
🔹 Desenvolvimento / Estudo (Padawan)
🔹 Teste / Homologação
🔹 Produção – COBOL 4
🔹 Produção – COBOL 5
⚔️ Parâmetros que causam guerra (use com consciência)
| PARM | Risco |
|---|---|
NOSSRANGE | S0C4 silencioso |
NONUMCHECK | Dados sujos |
NOFLAG | Erros passam |
NOMAP | Debug impossível |
🥚 Easter-egg real:
Muitos “bugs misteriosos” são apenas PARMs mal escolhidos.
🧘 Estratégia Bellacosa Oficial™
1️⃣ Compile com tudo ligado
2️⃣ Limpe warnings
3️⃣ Teste exaustivamente
4️⃣ Só então desligue controles
5️⃣ Nunca desligue tudo
🟦 Conclusão
O compilador é seu primeiro ambiente de produção.
Se você não ensina o COBOL a desconfiar do código,
ele vai confiar… e você vai pagar.
Sem comentários:
Enviar um comentário