| Bellacosa Mainframe e o laboratorio pratico de COBOL |
☕ Um Café no Bellacosa Mainframe
Laboratório Prático de COBOL Mainframe
Este laboratório foi desenvolvido utilizando uma metodologia de aprendizagem incremental, semelhante ao treinamento de um Padawan: cada exercício introduz um novo conceito, reforça os conhecimentos anteriores e prepara o aluno para o próximo desafio. A ideia não é apenas aprender comandos da linguagem COBOL, mas compreender como um programador de Mainframe pensa, organiza e resolve problemas de negócio.
Durante a execução dos laboratórios, preste atenção principalmente na estrutura dos programas, na nomenclatura das variáveis, na organização das divisões (DIVISION, SECTION e PARAGRAPH), na indentação do código e nas mensagens emitidas pelo compilador. Um bom desenvolvedor COBOL dedica mais tempo entendendo a lógica do programa do que simplesmente escrevendo instruções.
Evite copiar e colar as soluções. Antes de consultar o gabarito, tente resolver cada exercício sozinho. Os erros fazem parte do aprendizado e ajudam a desenvolver o raciocínio lógico necessário para ambientes corporativos.
Ao concluir cada laboratório, faça pequenas modificações no programa: altere valores, acrescente novos campos, crie validações e experimente diferentes abordagens. Essa prática fortalece a compreensão da linguagem e aumenta sua confiança.
Para evoluir, revise frequentemente os laboratórios anteriores, leia códigos escritos por outros desenvolvedores, estude JCL, VSAM, Db2 e CICS paralelamente e mantenha uma rotina constante de prática. No Mainframe, experiência é construída linha por linha, programa por programa e desafio após desafio.
20 Labs para Transformar um Jovem Aprendiz em um Programador COBOL Padawan
Objetivo: Este laboratório foi criado para quem possui apenas conhecimentos básicos de informática (Windows, arquivos, pastas e editores de texto) e deseja aprender COBOL de forma prática, evoluindo passo a passo até os primeiros programas profissionais em IBM Mainframe.
Cada laboratório foi organizado da seguinte forma:
🎯 Objetivo
📚 O que você aprenderá
🛠️ Passo a passo
💻 Exercício
✅ Solução comentada
💡 Dicas Bellacosa
☕ Curiosidade Mainframe
LAB 01 – Seu Primeiro "Hello World"
🎯 Objetivo
Aprender a estrutura básica de um programa COBOL.
📚 Conceitos
IDENTIFICATION DIVISION
PROCEDURE DIVISION
DISPLAY
STOP RUN
🛠️ Passo a passo
Crie um novo programa.
Dê o nome HELLO001.
Digite a estrutura mínima.
Compile.
Execute.
💻 Exercício
Exiba:
Olá Mainframe!
✅ Solução
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO001.
PROCEDURE DIVISION.
DISPLAY "OLA MAINFRAME!"
STOP RUN.
💡 Dicas
Sempre utilize nomes significativos.
Evite nomes como:
AAA001
TESTE99
PROGRAMA1
Prefira:
CLIENTE
CALCSAL
FATURA
☕ Curiosidade
Um programa COBOL pode conter dezenas de milhares de linhas sem perda de legibilidade quando bem organizado.
LAB 02 – Conhecendo as DIVISIONS
Objetivo
Entender a organização de um programa COBOL.
Aprender:
Identification
Environment
Data
Procedure
Exercício
Adicione todas as DIVISIONS mesmo que estejam vazias.
Curiosidade
Essa organização existe desde 1959.
Ainda funciona perfeitamente.
LAB 03 – Variáveis (WORKING-STORAGE)
Aprender:
PIC X
PIC 9
VALUE
Exercício
Criar:
Nome
Idade
Cidade
Mostrar na tela.
Solução
Utilizar DISPLAY para cada variável.
Dica
Pense na WORKING-STORAGE como a memória RAM do programa.
LAB 04 – MOVE
Aprender:
MOVE
Exercício
Mover:
JOÃO
para
CLIENTE
Depois mostrar.
Curiosidade
MOVE é uma das instruções mais utilizadas do COBOL.
LAB 05 – Matemática
Aprender
ADD
SUBTRACT
MULTIPLY
DIVIDE
COMPUTE
Exercício
Criar uma calculadora simples.
Entrada:
10
20
Saída:
Soma
Subtração
Multiplicação
Divisão
Dica
Prefira COMPUTE quando a expressão ficar grande.
LAB 06 – IF
Aprender decisões.
Exercício
Se idade >=18
Mostrar
MAIOR
Senão
MENOR
Curiosidade
IF aninhado pode ficar difícil de ler.
Nos próximos labs veremos alternativas melhores.
LAB 07 – EVALUATE
Aprender o "switch" do COBOL.
Exercício
Digite:
1
2
3
Mostrar:
Janeiro
Fevereiro
Março
Dica Bellacosa
Muitos programadores usam IF.
Os experientes preferem EVALUATE.
LAB 08 – PERFORM
Criar laços.
Exercício
Mostrar:
1
2
3
...
10
Aprender
PERFORM VARYING
LAB 09 – Tabelas
Aprender:
OCCURS
Exercício
Cadastrar
5 nomes.
Mostrar todos.
Curiosidade
Aqui começa o verdadeiro poder do COBOL.
LAB 10 – SEARCH
Pesquisar dentro da tabela.
Exercício
Encontrar
MARIA
na lista.
Dica
Depois compare SEARCH com SEARCH ALL.
LAB 11 – STRING
Concatenar textos.
JOAO
+
SILVA
Resultado
JOAO SILVA
LAB 12 – UNSTRING
Separar:
JOAO;SILVA;25
em três campos.
Hoje isso é muito usado em integração de sistemas.
LAB 13 – Arquivos Sequenciais
Criar arquivo.
Gravar:
ANA
CARLOS
PEDRO
Depois ler.
Curiosidade
Antes dos bancos de dados, praticamente tudo funcionava assim.
LAB 14 – Arquivos Indexados (VSAM)
Introdução ao KSDS.
Entender:
Chave
Registro
Índice
Mesmo que o ambiente de testes utilize arquivos simplificados, o conceito prepara você para ambientes corporativos.
LAB 15 – Datas
Utilizar:
FUNCTION CURRENT-DATE
Mostrar:
Ano
Mês
Dia
Dica
Evite criar rotinas próprias de data quando houver função intrínseca.
LAB 16 – Funções Intrínsecas
Explorar:
LENGTH
UPPER-CASE
LOWER-CASE
NUMVAL
INTEGER
RANDOM
Exercício
Converter um nome para maiúsculas e minúsculas.
LAB 17 – Modularização
Criar:
Programa Principal
↓
Subprograma
Enviar parâmetros.
Curiosidade
Grandes bancos possuem milhares de subprogramas reutilizados por diversos sistemas.
LAB 18 – SQL em COBOL
Introdução ao Embedded SQL.
Criar:
SELECT
INSERT
UPDATE
Mesmo sem Db2 instalado, entender a sintaxe e o fluxo de execução já coloca o aluno em contato com a realidade do Mainframe.
LAB 19 – JSON
Gerar JSON.
Utilizar:
JSON GENERATE
Depois fazer:
JSON PARSE
Curiosidade
Hoje milhares de APIs REST utilizam exatamente essas instruções para conversar com aplicativos móveis e sistemas web.
LAB 20 – Projeto Final
Construir um pequeno sistema de cadastro.
Funcionalidades:
Cadastrar cliente
Alterar cliente
Excluir cliente
Consultar cliente
Relatório
Total de clientes
Validação de dados
Tratamento de erros
Mensagens amigáveis
Neste projeto, o aluno reúne praticamente todos os conceitos aprendidos nos laboratórios anteriores.
Dicas de Codificação que Todo Padawan Deveria Conhecer
Escreva um programa por vez e faça-o funcionar antes de adicionar novas funcionalidades.
Use nomes claros para variáveis:
WS-NOME-CLIENTEé melhor queA1.Comente por que o código existe, não apenas o que ele faz.
Padronize a indentação. Um código bem alinhado é muito mais fácil de manter.
Evite duplicação de lógica. Se um trecho será usado várias vezes, transforme-o em um parágrafo ou subprograma.
Compile frequentemente. Encontrar um erro logo após escrevê-lo é muito mais fácil do que depurar centenas de linhas depois.
Leia mensagens do compilador com atenção; elas ensinam muito.
Easter Eggs do COBOL
🔹 EVALUATE TRUE pode substituir longas cadeias de IF.
🔹 88-Level Condition Names deixam o código muito mais legível, permitindo escrever condições como IF CLIENTE-ATIVO.
🔹 REDEFINES permite enxergar a mesma área de memória de formas diferentes, um recurso poderoso quando usado com critério.
🔹 COPYBOOKS evitam duplicação e garantem padronização entre programas.
🔹 INSPECT pode substituir diversos loops para contar ou substituir caracteres.
🔹 INITIALIZE é uma forma elegante de limpar grupos inteiros de variáveis.
🔹 PERFORM THRU, apesar de existir, deve ser usado com cautela em novos projetos.
Como Evoluir Após os 20 Labs
Se você concluiu todos os laboratórios, já domina uma base sólida de COBOL. O próximo passo é expandir seu conhecimento para o ecossistema IBM Z.
Uma trilha recomendada é:
JCL (Job Control Language)
TSO/ISPF
VSAM
Db2 for z/OS
CICS Transaction Server
IMS DB/DC
SORT (DFSORT e SyncSort)
REXX
Git e GitHub
VS Code + Zowe Explorer
DevOps para Mainframe
APIs REST com z/OS Connect
IBM MQ
Testes com ZUnit
Observabilidade, OpenTelemetry e automação com Ansible
Ao final dessa jornada, o aluno deixa de ser apenas um iniciante e passa a compreender como os grandes bancos, seguradoras e empresas de cartão de crédito desenvolvem e mantêm sistemas que processam milhões de transações diariamente.
Conclusão
Estes 20 laboratórios foram pensados para ensinar COBOL da mesma forma que um mestre Jedi ensina um Padawan: começando pelos fundamentos, praticando continuamente e aumentando a dificuldade de forma gradual. Em vez de decorar comandos, o aluno aprende a raciocinar como um desenvolvedor Mainframe, compreendendo não apenas como escrever código, mas por que determinadas práticas existem e como elas contribuem para criar sistemas robustos, seguros e preparados para décadas de evolução.