✨ Bem-vindo ao meu espaço! ✨
Este blog é o diário de um otaku apaixonado por animes, tecnologia de mainframe e viagens.
Cada entrada é uma mistura única: relatos de viagem com fotos, filmes, links, artigos e desenhos, sempre buscando enriquecer a experiência de quem lê.
Sou quase um turista profissional: adoro dormir em uma cama diferente, acordar em um lugar novo e registrar tudo com minha câmera sempre à mão.
Entre uma viagem e outra, compartilho também reflexões sobre cultura otaku/animes
🚀 Do COPY ao CORE Bancário: A Jornada Jedi de um Programa COBOL no z/OS (ou: como um .CBL vira dinheiro no mundo real)
“Padawan, muitos escrevem código. Poucos entendem como ele realmente vive.” 💙
Se você acha que COBOL é só um DISPLAY "HELLO", prepare-se.
No mainframe, um programa não nasce pronto — ele passa por uma verdadeira linha de produção industrial de software.
Hoje vamos percorrer essa jornada completa, estilo Bellacosa Mainframe™, com:
🔥 Passo a passo real
🧠 Conceitos que diferenciam dev júnior de arquiteto
💎 Easter eggs históricos
🏦 Exemplos do mundo bancário
⚙️ Bastidores que ninguém te conta
🧙♂️ Capítulo 1 — O nascimento: o código fonte
Tudo começa com um membro em um PDS ou PDSE:
USER.COBOL.SOURCE(PROG1)
Exemplo simples:
IDENTIFICATION DIVISION. PROGRAM-ID. CPRIME.
PROCEDURE DIVISION. DISPLAY "MAY THE MAINFRAME BE WITH YOU". STOP RUN.
💡 Curiosidade Jedi:
COBOL foi criado para ser legível por pessoas de negócio. Por isso parece “verbal”.
📚 Capítulo 2 — COPY: os pergaminhos antigos
Nenhum sistema corporativo vive sem COPYBOOKS.
COPY CLIENT-RECORD.
Esses artefatos ficam nas bibliotecas apontadas por:
//SYSLIB DD DSN=CORP.COPYLIB
💎 Easter egg:
Grandes bancos têm copybooks mais antigos que muitos desenvolvedores.
⚙️ Capítulo 3 — Compilação: o forno industrial (IGYCRCTL)
Agora entra o compilador Enterprise COBOL.
//COMPILE EXEC PGM=IGYCRCTL
📥 Entradas principais
DD
Função
SYSIN
Código fonte
SYSLIB
Copybooks
SYSUTx
Área de trabalho
📤 Saídas
DD
Resultado
SYSPRINT
Mensagens
SYSLIN
Object code
👉 O objeto ainda NÃO é executável.
🧠 Analogia moderna
Mainframe
Linux
Compile
gcc -c
Objeto
.o
💥 Capítulo 4 — O Binder: alquimia digital (IEWL)
Agora o objeto vira programa executável.
//LKED EXEC PGM=IEWL
📥 Entrada
SYSLIN → objeto compilado
📤 Saída
SYSLMOD → executável final
💎 Easter egg:
Antes do Binder moderno, isso se chamava “link-edit”.
📦 Program Object: o formato moderno
Hoje o resultado normalmente é um:
👉 Program Object em PDSE
Não mais um load module antigo.
🧬 Capítulo 5 — O espírito invisível: Language Environment (LE)
Aqui está o segredo que separa aprendizes de mestres.
Antes de declarar que o programa está pronto, verifique:
O fonte correto foi compilado?
Os copybooks corretos foram utilizados?
A biblioteca de copybooks estava na ordem certa?
Houve tradução CICS?
O SQL foi processado?
O DBRM foi gerado?
O package foi criado?
O compilador terminou com qual RC?
Existem warnings?
O Binder resolveu todas as referências?
O load foi gravado na biblioteca correta?
As chamadas são estáticas ou dinâmicas?
Os módulos chamados estão disponíveis?
A versão do load corresponde ao fonte?
Os testes foram executados?
A implantação utilizará a mesma load library?
Esse checklist evita muitos problemas que parecem misteriosos.
49. O grande mapa mental da Parte III
Podemos resumir toda a transformação:
Fonte preparado
↓
Compilador COBOL
↓
Validação
↓
Geração de instruções
↓
Código objeto
↓
Binder
↓
Resolução de referências
↓
Inclusão de módulos
↓
Definição do ponto de entrada
↓
Load module ou program object
↓
Load library
Em paralelo, quando houver Db2:
DBRM
↓
BIND
↓
Package
50. Uma analogia com uma fábrica
Imagine uma fábrica de automóveis.
O código-fonte é o projeto do veículo.
Os copybooks são padrões de componentes:
medidas;
conectores;
peças;
encaixes.
O compilador transforma o projeto em peças reais.
Ele produz:
motor;
chassis;
painel;
sistemas de controle.
Entretanto, as peças ainda estão separadas.
O Binder é a linha de montagem.
Ele reúne:
objeto principal;
módulos externos;
interfaces;
componentes;
pontos de entrada.
O resultado é o veículo montado.
A load library é o pátio onde os veículos prontos ficam armazenados.
Porém, o carro ainda não saiu do pátio.
Ele ainda precisa ser localizado, ligado e colocado na estrada.
Essa será a missão do próximo capítulo.
51. Conselhos do Mestre Bellacosa
Nunca trate a compilação como um botão misterioso.
Abra as listagens.
Leia as mensagens.
Entenda a procedure.
Descubra:
qual compilador foi utilizado;
quais opções foram aplicadas;
quais bibliotecas foram concatenadas;
quais copybooks foram encontrados;
quais módulos foram incluídos;
onde o objeto foi gravado;
onde o load foi criado;
quais referências foram resolvidas;
quais warnings foram emitidos.
O profissional que entende o processo de build investiga problemas com muito mais precisão.
Ele não diz apenas:
“A compilação falhou.”
Ele diz:
“O pré-processamento terminou corretamente, mas o Binder não resolveu o módulo estático porque a biblioteca de interfaces não estava na concatenação de SYSLIB.”
Esse é o tipo de compreensão que transforma um Padawan em especialista.
Conclusão
A compilação é o processo que transforma o código-fonte COBOL em código objeto.
Durante essa etapa, o compilador verifica sintaxe, campos, tipos de dados, referências, estruturas, opções e dependências.
O código objeto já contém instruções de máquina, mas ainda pode possuir referências externas.
Por isso, ele precisa passar pelo Binder.
A linkedição combina o objeto com módulos, interfaces e rotinas necessárias, resolvendo referências e criando um módulo executável.
Esse resultado é armazenado em uma load library.
Também aprendemos que chamadas podem ser estáticas ou dinâmicas.
Chamadas estáticas são resolvidas durante a linkedição.
Chamadas dinâmicas são localizadas durante a execução.
Vimos ainda que CICS, Db2, IMS e Adabas podem exigir interfaces específicas, e que o programa Db2 precisa coordenar dois artefatos fundamentais:
Load module
Package Db2
Ao final dessa etapa, o programa finalmente existe como executável.
Mas ele ainda está parado dentro de uma biblioteca.
Ele não abriu arquivos.
Não leu registros.
Não consultou tabelas.
Não consumiu CPU.
Não produziu relatórios.
A última etapa da jornada está prestes a começar.
No próximo capítulo
Na Parte IV — Da Load Library à CPU, vamos acompanhar o módulo durante a execução.
Veremos passo a passo:
como o JCL solicita a execução;
como a STEPLIB localiza o programa;
como QSAM e VSAM são conectados por DDNAME;
como o JES2 recebe e organiza o job;
o que é spool;
como o initiator inicia o processamento;
como o loader coloca o programa na memória;
como WLM e dispatcher participam;
como a CPU executa as instruções;
por que tempo de CPU é diferente de tempo decorrido;
como programas CICS, Db2, IMS e Adabas executam no ambiente real.
Prepare a quarta xícara de café.
O programa já nasceu, foi traduzido, compilado e linkedidado.
Agora chegou o momento de fazê-lo trabalhar.
☕
“O Padawan acredita que a compilação cria o programa. O especialista sabe que a compilação cria as peças, a linkedição monta a máquina e a execução provará se toda a engenharia realmente funciona.”
Laboratório Forense Bellacosa Mainframe
CSI z/OS:
Da Compilação à Execução
de um Programa COBOL
Cinco arquivos de evidências revelam como o código-fonte COBOL
atravessa copybooks, CICS, Db2, IMS, compilação, Binder, load
library, JCL, JES2, memória e CPU até produzir um resultado no IBM Z.
CASO: COBOL-2022-EXECEVIDÊNCIAS: 05 ARTIGOSAMBIENTE: IBM Z / z/OSSTATUS: ARQUIVO ABERTO
Esta investigação técnica apresenta o ciclo completo de um
programa COBOL no mainframe IBM Z. A série explica o
nascimento do código-fonte, o uso de copybooks, a preparação de comandos
CICS e SQL, a geração de código objeto, a atuação do Binder, o
armazenamento em load libraries e a execução por JCL, JES2, loader,
Language Environment, dispatcher e CPU. Selecione uma evidência abaixo
para ler o artigo correspondente dentro do visualizador.
Evidência selecionada
Parte I — Código-fonte, bibliotecas e copybooks
A primeira parte acompanha a transformação da regra de negócio em
código-fonte COBOL, explica o papel das bibliotecas e mostra por que
copybooks funcionam como contratos de dados compartilhados entre
programas.
Vagner Renato Bellacosa trabalha com IBM Mainframe
desde 1988
,
é IBM Champion e especialista em COBOL, CICS, Db2,
z/OS e IBM Z. Compartilha experiências profissionais,
conhecimento técnico, história da computação e práticas
do universo mainframe para aproximar novas gerações das
tecnologias que sustentam empresas, bancos e governos
ao redor do mundo.
IBM Champion
IBM Z
COBOL
CICS
Db2
z/OS
Mainframe desde 1988