Translate

Mostrar mensagens com a etiqueta procedural. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta procedural. Mostrar todas as mensagens

terça-feira, 28 de outubro de 2025

☕💣 “ANTES DO COBOL EXISTIA O CAOS” — A VERDADEIRA HISTÓRIA DA LÓGICA DE PROGRAMAÇÃO NO MAINFRAME IBM Z 💣☕

 

Bellacosa Mainframe e a Logica de Programação Mainframe

☕💣 “ANTES DO COBOL EXISTIA O CAOS” — A VERDADEIRA HISTÓRIA DA LÓGICA DE PROGRAMAÇÃO NO MAINFRAME IBM Z 💣☕

Do código selvagem ao raciocínio estruturado que move bancos, governos e o planeta inteiro

Quando alguém começa no universo Mainframe IBM Z, normalmente pensa:

  • “Vou aprender COBOL”

  • “Vou aprender JCL”

  • “Vou aprender DB2”

  • “Vou aprender CICS”

Mas existe algo MUITO mais importante antes disso:

🔥 APRENDER A PENSAR COMO UM PROGRAMADOR DE ALTA PLATAFORMA

E aqui está um segredo que poucos contam aos iniciantes:

Mainframe não é só tecnologia.

Mainframe é DISCIPLINA DE RACIOCÍNIO.

Os grandes sistemas bancários, cartões de crédito, previdência, folha de pagamento, companhias aéreas e bolsas financeiras sobreviveram décadas porque foram construídos sobre uma lógica extremamente organizada.

E essa organização nasceu de três grandes pilares:


☕ 1. O PARADIGMA IMPERATIVO — “FAÇA ISSO, DEPOIS AQUILO”

O começo de tudo

O paradigma imperativo é a forma mais antiga e natural de programação.

Ele funciona como uma receita de bolo:

  1. Pegue farinha

  2. Misture ovos

  3. Ligue o forno

  4. Asse por 40 minutos

Na programação:

1. Leia o arquivo
2. Valide o registro
3. Atualize o saldo
4. Grave o resultado

O computador executa instruções em sequência.


🔥 Origem histórica

O paradigma imperativo nasceu praticamente junto com os computadores comerciais.

Décadas de 1940 e 1950:

  • Assembly

  • Linguagem de máquina

  • Primeiros compiladores

Tudo era baseado em:

“Mandar o computador fazer algo”

Daí o nome:

Imperativo = comando


☕ Como isso chegou ao Mainframe?

Os primeiros sistemas IBM comerciais funcionavam exatamente assim:

  • Ler cartão perfurado

  • Processar linha por linha

  • Atualizar arquivos

  • Imprimir relatórios

O mundo corporativo nasceu imperativo.

E até hoje grande parte do processamento batch do z/OS continua seguindo essa lógica.


💣 Exemplo simples de lógica imperativa

Objetivo:

Somar salários

Pseudocódigo:

LER FUNCIONARIO
SOMAR SALARIO
GRAVAR TOTAL

COBOL simplificado:

ADD SALARIO TO TOTAL-SALARIOS.

O foco está na ação.


☕ Curiosidade histórica

Os primeiros programadores literalmente desenhavam fluxos em papel gigantesco.

Fluxogramas eram fundamentais porque:

  • Memória era caríssima

  • CPU era limitada

  • Um erro podia desperiçar horas de processamento

Por isso nasceu uma obsessão no Mainframe:

🔥 RACIOCINAR ANTES DE CODIFICAR

Algo que muitos ambientes modernos perderam.


☕ 2. O PARADIGMA PROCEDURAL — “DIVIDA O PROBLEMA”

Com o crescimento dos sistemas, surgiu um problema gigantesco:

O código virou um monstro impossível de manter

Programas tinham:

  • 20 mil linhas

  • 50 mil linhas

  • 100 mil linhas

Sem organização.

Então surgiu a ideia revolucionária:

“Separar o programa em procedimentos”


🔥 O que é programação procedural?

É dividir o sistema em partes menores.

Exemplo:

PROCEDIMENTO-VALIDA-CLIENTE
PROCEDIMENTO-CALCULA-JUROS
PROCEDIMENTO-GRAVA-ARQUIVO

Cada parte faz uma tarefa específica.


☕ Isso mudou o Mainframe para sempre

O COBOL abraçou completamente o paradigma procedural.

Por isso existem:

  • SECTION

  • PARAGRAPH

  • PERFORM

Exemplo clássico:

PERFORM CALCULA-TOTAL.
PERFORM IMPRIME-RELATORIO.

💣 O nascimento do “programador corporativo”

Aqui nasceu o conceito moderno de desenvolvimento empresarial.

Antes:

  • um programador fazia tudo

Depois:

  • equipes dividiam responsabilidades

  • módulos eram reaproveitados

  • manutenção ficou possível

Isso permitiu o crescimento dos bancos nos anos 70 e 80.


☕ Exemplo prático procedural

Sistema de folha de pagamento

Divisão lógica:

1. Ler funcionário
2. Calcular INSS
3. Calcular IR
4. Calcular salário líquido
5. Gravar resultado

Cada bloco vira um procedimento.


🔥 Exemplo COBOL

PERFORM LE-FUNCIONARIO
PERFORM CALCULA-INSS
PERFORM CALCULA-IR
PERFORM CALCULA-LIQUIDO
PERFORM GRAVA-ARQUIVO

Observe:

O programa ficou legível

E legibilidade no Mainframe vale ouro.


☕ Curiosidade importante

Muitos sistemas bancários antigos ainda possuem procedimentos escritos nos anos 80 rodando ATÉ HOJE.

E continuam funcionando porque a estrutura procedural ajudou na manutenção.

Isso é um dos motivos pelos quais:

Mainframe envelhece melhor que muita plataforma moderna.


☕ 3. O PARADIGMA PROCEDURAL ESTRUTURADO — “PAREM DE USAR GOTO”

Aqui entramos numa das maiores revoluções da computação.

Durante décadas, programas eram cheios de:

GOTO
JUMP
DESVIO
SALTO

Isso criava o famoso:

💣 “SPAGHETTI CODE”

Código impossível de entender.


🔥 O problema do GOTO

Imagine isto:

SE ERRO VAI PRA LINHA 900
SE SUCESSO VAI PRA 1200
SE FALHA VOLTA PRA 300

Ninguém entendia nada.

Sistemas corporativos viravam labirintos.


☕ Surge a programação estruturada

Nos anos 60 e 70, cientistas como:

  • Edsger Dijkstra

  • Niklaus Wirth

começaram uma revolução:

“Programas devem ter estrutura lógica clara”


🔥 Conceitos fundamentais

A programação estruturada trouxe:

Sequência

FAÇA A
FAÇA B
FAÇA C

Decisão

SE SALDO < 0
   COBRAR TAXA
SENAO
   CONTINUAR

Repetição

ENQUANTO HOUVER REGISTRO
   PROCESSAR

☕ Isso mudou o COBOL moderno

O COBOL começou a abandonar:

GO TO ERRO.

e passou a usar:

IF ERRO
   PERFORM TRATA-ERRO
END-IF

💣 O nascimento da manutenção moderna

A programação estruturada permitiu:

  • menor número de bugs

  • manutenção segura

  • auditoria

  • rastreabilidade

  • estabilidade bancária

Sem isso:

  • internet banking seria inviável

  • PIX seria inviável

  • processamento massivo seria caótico


☕ Exemplo estruturado em COBOL

Antes (caótico)

IF SALDO LESS THAN ZERO
   GO TO ERRO.

Depois (estruturado)

IF SALDO < ZERO
   PERFORM TRATA-ERRO
ELSE
   PERFORM PROCESSA-CONTA
END-IF

Muito mais claro.


🔥 O grande segredo do Mainframe

O Mainframe não sobreviveu décadas por acaso.

Ele sobreviveu porque criou uma cultura baseada em:

  • previsibilidade

  • organização

  • rastreabilidade

  • clareza

  • controle

Isso nasceu diretamente da programação estruturada.


☕ COMO UM INICIANTE DEVE ESTUDAR LÓGICA MAINFRAME?

Aqui está uma sequência extremamente poderosa.


🔥 ETAPA 1 — PENSAR EM FLUXO

Antes de escrever COBOL:

Pergunte:

O que entra?
O que processa?
O que sai?

Esse é o DNA do batch.


🔥 ETAPA 2 — DIVIDIR O PROBLEMA

Nunca tente resolver tudo de uma vez.

Separe:

  • leitura

  • validação

  • cálculo

  • gravação

  • relatório


🔥 ETAPA 3 — ELIMINAR CAOS

Evite:

  • desvios desnecessários

  • lógica duplicada

  • código confuso


🔥 ETAPA 4 — ESCREVER PARA O FUTURO

No Mainframe:

Você não escreve código para hoje.

Você escreve código que alguém manterá em 2045.

Esse pensamento muda tudo.


☕ EXEMPLO REAL DE RACIOCÍNIO MAINFRAME

Imagine um processamento bancário noturno.

Entrada

Arquivo com:

  • contas

  • saldos

  • movimentações


Processamento

O sistema:

  1. lê registro

  2. valida dados

  3. calcula juros

  4. aplica tarifas

  5. atualiza saldo

  6. grava resultado

  7. gera relatório


🔥 ISSO É LÓGICA MAINFRAME

Fluxo.
Controle.
Previsibilidade.

Não existe “mágica”.

Existe engenharia.


☕ CURIOSIDADES QUE POUCOS INICIANTES SABEM

💣 COBOL foi criado para legibilidade humana

A ideia era que gestores conseguissem ler partes do código.

Por isso comandos parecem inglês.


💣 O GOTO quase destruiu sistemas corporativos

Houve programas tão caóticos que ninguém conseguia corrigir bugs sem quebrar outra coisa.


💣 Mainframe ajudou a criar engenharia de software moderna

Muitos conceitos de:

  • modularização

  • auditoria

  • processamento seguro

  • versionamento lógico

amadureceram em ambientes corporativos IBM.


💣 Batch influenciou computação moderna

Pipelines modernos, ETL, processamento distribuído e até workflows cloud possuem heranças conceituais do batch mainframe.


🔥 DIFERENÇA ENTRE OS 3 PARADIGMAS

ParadigmaIdeia CentralProblema Resolvido
ImperativoMandar executarFazer o computador trabalhar
ProceduralDividir tarefasOrganizar sistemas
EstruturadoControlar fluxoEvitar caos

☕ O QUE O INICIANTE PRECISA ENTENDER

Aprender COBOL sem lógica é perigoso.

Porque você vira:

“digitador de sintaxe”

Mas o mercado precisa de:

🔥 PROFISSIONAIS QUE ENTENDEM PROCESSAMENTO CORPORATIVO

Quem domina lógica:

  • entende batch

  • entende online

  • entende integração

  • entende performance

  • entende debugging

  • entende negócios


💣 A GRANDE VERDADE SOBRE O MAINFRAME

O Mainframe não é antigo porque usa COBOL.

O Mainframe é DURADOURO porque foi construído em cima de princípios sólidos de engenharia.

E esses princípios começam aqui:

  • paradigma imperativo

  • paradigma procedural

  • programação estruturada


☕ CONCLUSÃO — O DIA EM QUE VOCÊ COMEÇA A “PENSAR MAINFRAME”

O verdadeiro programador de alta plataforma não é aquele que decora comandos.

É aquele que consegue olhar um problema empresarial gigante e pensar:

entrada
processamento
controle
segurança
saída
rastreabilidade

Quando isso acontece…

🔥 VOCÊ PAROU DE APRENDER COBOL

E COMEÇOU A APRENDER ENGENHARIA DE SOFTWARE CORPORATIVA.


terça-feira, 22 de julho de 2025

Uma breve visão sobre Portugol para IBM Mainframe

 

Bellacosa Mainframe fala sobre Portugol e Logica de Programaçao Mainframe

Uma breve visão sobre Portugol para IBM Mainframe

4,385 followers

Fiz algumas adaptações livres nos comandos portugol para auxiliar meus alunos de logica de programação estruturada para IBM Mainframe, compartilho o resultado aqui em nossa comunidade.

Agradeço desde já por todas as críticas construtivas e melhorias que surjam.


Portugol


Neste documento irei apresentar de forma sucinta e pratica os comandos em português estruturado para a resolução dos exercícios de Lógica de Programação.

Serão apresentadas as sintaxes mais comuns e básicas para o aluno iniciante conseguir ler e interpretar os comandos antes de codifica-lo em COBOL.


Comandos


Estrutura básica


 "meu programa"
  var ...
  inicio ...
  processamento ...
  procedimentos finais...
fimalgoritmo


Literais/Variáveis

var wss-numero: numérico
var wss-texto : alfabético
var wss-alfanumerico : alfanumérico
var wss-num-comp : numérico computacional 4
var wss-num-comp1 : numérico computacional 1
var wss-num-comp2 : numérico computacional 2
var wss-num-comp3 : numérico computacional 3
var wss-num-comp4 : numérico computacional 4
var wss-num-comp5 : numérico computacional 5


Arrays e Matrizes (Tabelas Internas)


var wss-array: vetor[linha1..linhaN] de tipo

var wss-matriz: vetor[linha1..linhaN, coluna1..colunaN] de tipo

Recebendo Parâmetros (Sysin ou Parm)

 Receba wss-variavel

Exibir informação na Sysout

Exiba wss-variavel


Estrutura Condicional

Condicional simples

se condição entao
   ...
Fimse 

Condicional simples e senão


se condição entao
...
senao
...
fimse

Condicional composto


se condição1 entao
  ...
senao se condição2 entao
       ...
       Senão
       ...
    fimse
fimse


Multiplos condicionais


escolha variável
caso valor1
...
caso valor2
...
caso valor3
...
outrocaso
...
fimescolha


Estrutura de Repetição


Faça enquanto menor que N


enquanto condição faca
 ...
Fimenquanto


Faça iniciando em um valor até N


para variável de valor1 ate valorN passo P faca
 ...
Fimpara


Faça N vezes


Faça n vezes
 ...
Fimfaça


Repita enquanto verdadeiro


repita ...
ate condição


Faça enquanto condição


faca { ... }
enquanto (condição)

Criando procedimento, seção e paragrafo


procedimento nome(parâmetro: tipo; ...)
...
inicio
...
fimprocedimento


Chamada de Programas Externos


Chamando sub-programa


Chamando programa


Processando Arquivos


Arquivos Sequenciais QSAM


Declarando Arquivo


Declarando arquivo1 Entrada
Declarando arquivo2 Saida

Abrindo Arquivo


Abrindo arquivo1 Entrada
Abrindo arquivo2 Saida


Lendo Arquivo


Leia arquivo1 em WSS-REG


Gravando Arquivo


Gravando arquivo2 de WSS-REG


Fechando Arquivo


Fechando arquivo1


Arquivos Sequenciais VSAM


Declarando Arquivo


Declarando arquivo1 Entrada
Declarando arquivo2 Entrada & Saida
Declarando arquivo3 Saida

Abrindo Arquivo


Abrindo arquivo1 Entrada
Abrindo arquivo2 I/O
Abrindo arquivo3 Saida


Lendo Arquivo sequencialmente

Leia arquivo1 em WSS-REG


Lendo Arquivo por chave indexada

Leia arquivo2 em WSS-REG através da chave


Regravando Arquivo

Regrave arquivo2 de WSS-REG


Gravando Arquivo

Gravando arquivo3 de WSS-REG


Fechando Arquivo

Fechando arquivo1

Conclusão:

Portugol é uma linguagem de programação fictícia, escrita em português estruturado, usada principalmente para ensinar lógica de programação de forma acessível e didática.

Características principais:

  • Sintaxe simples e em português, facilitando o aprendizado.
  • Não é executada diretamente por computadores reais, mas existem interpretadores (como o Visualg) que simulam sua execução.
  • Ideal para iniciantes, antes de aprender linguagens como Python, Java ou C.

Exemplo em Portugol:

algoritmo "exemplo"
var
   numero: inteiro

inicio
   escreva("Digite um número: ")
   leia(numero)
   se numero > 0 entao
      escreva("Número positivo")
   senao
      escreva("Número negativo ou zero")
fimalgoritmo

👉 Resumo: Portugol é uma ferramenta educacional que ajuda a entender os fundamentos da programação sem a complexidade de sintaxes em inglês.


https://www.linkedin.com/embed/feed/update/urn:li:ugcPost:7437160256226373634