sexta-feira, 1 de novembro de 2013

🟦 Guia Ideal de Parâmetros de Compilação COBOL no Mainframe

 


🟦 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.

PARMFunçãoPor que usar
LANGUAGE(EN)Mensagens em inglêsFacilita IBM Support
LISTLista compilaçãoAuditoria e debug
MAPMapa de dadosDebug estrutural
XREFReferências cruzadasEntender legado
RENTCódigo reentranteBatch + online
DYNAMCALL dinâmicoCompatí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.

PARMO que fazDica Bellacosa
SSRANGEProtege acessos inválidosEvita S0C4
NUMCHECKValida campos numéricosPegador de lixo
FLAG(W)Avisos de riscoAtive sempre
TESTDebug interativoPara Xpediter/Debug Tool
LISTHEXDump hexadecimalSó para guerra

💣 Verdade nua:

NOSSRANGE em produção = economia burra de CPU.


3️⃣ Parâmetros de PERFORMANCE (onde mora o MIPS)

COBOL 4 (equilíbrio)

OPTIMIZE RENT ARITH(EXTEND)

COBOL 5 (modo turbo)

OPTIMIZE(2) ARCH(13) RENT
PARMExplicação
OPTIMIZE(2)Otimização agressiva
ARCH(n)Explora hardware (z13+)
ARITH(EXTEND)Precisão decimal

🥚 Easter-egg técnico:

ARCH errado = código que compila… e performa como COBOL 85.


4️⃣ Parâmetros de COMPATIBILIDADE (legado raiz)

Para sistemas antigos, principalmente na transição.

PARMPara 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)

PARMFunção
ABENDForça abend real
NOTESTRemove debug
NOSSRANGESó se testado exaustivamente

Bellacosa rule:

Produção só roda o que passou por SSRANGE ligado.


🧪 Combinações recomendadas (receita pronta)

🔹 Desenvolvimento / Estudo (Padawan)

LIST MAP XREF SSRANGE NUMCHECK FLAG(W) TEST

🔹 Teste / Homologação

LIST MAP XREF SSRANGE NUMCHECK FLAG(I) RENT

🔹 Produção – COBOL 4

RENT DYNAM OPTIMIZE ARITH(EXTEND) NOSSRANGE

🔹 Produção – COBOL 5

RENT OPTIMIZE(2) ARCH(13)

⚔️ Parâmetros que causam guerra (use com consciência)

PARMRisco
NOSSRANGES0C4 silencioso
NONUMCHECKDados sujos
NOFLAGErros passam
NOMAPDebug 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