Mostrar mensagens com a etiqueta programação. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta programação. Mostrar todas as mensagens

quinta-feira, 19 de março de 2026

🚀 Seu cérebro COBOL está pronto para Python? O guia que acelera a migração em horas, não anos

 

Bellacosa Mainframe apresenta Python para Engenheiros e Analistas de Mainframe

🚀 Seu cérebro COBOL está pronto para Python? O guia que acelera a migração em horas, não anos

Python tornou-se uma linguagem estratégica para engenheiros de mainframe que desejam expandir suas habilidades para automação, integração moderna, Data Engineering e Inteligência Artificial. 

Para profissionais acostumados com COBOL, JCL e DB2, Python oferece um modelo mental mais simples e produtivo, substituindo estruturas como WORKING-STORAGE por variáveis dinâmicas, PERFORM por loops e FILE SECTION por manipulação direta de arquivos. 

Com bibliotecas poderosas e sintaxe clara, é possível automatizar rotinas operacionais, processar logs, integrar sistemas legados a APIs REST, consumir serviços web e construir pipelines de dados com muito menos código. 

Python também facilita DevOps, testes de batch, RPA corporativo e modernização de aplicações críticas. Seu uso crescente em nuvem, analytics e machine learning torna essa linguagem uma ponte natural entre o ambiente z/OS e o ecossistema digital atual. 

Aprender Python é, portanto, um passo essencial para mainframe engineers que desejam permanecer relevantes na transformação tecnológica.

🐍🔥 Cheatsheet Python para Mainframe Engineers

🧠 Mental Model — COBOL → Python

Conceito MainframeEquivalente Python
ProgramScript / Module
WORKING-STORAGEVariáveis
PIC clausesTipagem dinâmica
PERFORM UNTILwhile
PERFORM VARYINGfor
COPYBOOKModule / Class
FILE SECTIONFile handling
DB2 cursorIteração
JCL orchestrationScripts + Scheduler

📦 Variáveis (sem DATA DIVISION 😎)

COBOL

01 WS-NUM PIC 9(4) VALUE 100.

Python

ws_num = 100

✔ Sem declaração
✔ Sem tamanho fixo
✔ Tipagem dinâmica


📚 Estruturas de Dados — “Working Storage Turbo”

🔹 List → Tabelas OCCURS

clientes = ["Ana", "João", "Maria"]
clientes.append("Carlos")

👉 Similar a:

OCCURS n TIMES

🔹 Dictionary → Registro com campos nomeados

cliente = {
"nome": "Ana",
"saldo": 1500
}

👉 Mistura de:

✔ Registro
✔ Índice por chave
✔ Estrutura dinâmica


🔹 Tuple → Registro imutável

coordenada = (10, 20)

👉 Ideal quando dados não devem mudar.


🔹 Set → Lista sem duplicatas

codigos = {101, 102, 102, 103}

Resultado:

{101, 102, 103}

👉 Excelente para deduplicação de dados.


🔎 Indexação

nome = "BELLACOSA"

nome[0] # B
nome[-1] # A

👉 Python começa em ZERO (como C, não como COBOL).


⚖️ Condições (IF sem THEN/END-IF)

saldo = 100

if saldo > 0:
print("Positivo")
else:
print("Negativo")

🔁 Loops

🔹 For (PERFORM VARYING)

for i in range(5):
print(i)

🔹 For em coleção

for cliente in clientes:
print(cliente)

👉 Cursor implícito.


🔹 Enumerate (índice + valor)

for i, nome in enumerate(clientes):
print(i, nome)

🔹 While (PERFORM UNTIL)

x = 0

while x < 5:
print(x)
x += 1

🧩 Funções (Subprogramas leves)

def calcular_taxa(valor):
return valor * 0.05

Chamada:

taxa = calcular_taxa(1000)

📏 Built-ins que substituem muito código COBOL

len(lista) # tamanho
sum(lista) # soma
max(lista)
min(lista)
sorted(lista)

⚠️ Tratamento de Erros (sem Abend 😎)

COBOL

ON EXCEPTION

Python

try:
x = int("abc")
except ValueError:
print("Erro de conversão")

📂 Arquivos (QSAM moderno)

Leitura

with open("dados.txt", "r") as f:
for linha in f:
print(linha)

Escrita

with open("saida.txt", "w") as f:
f.write("Hello Mainframe")

👉 with garante fechamento automático.


🧱 Classes (Estruturas + Comportamento)

class Conta:
def __init__(self, saldo):
self.saldo = saldo

def depositar(self, valor):
self.saldo += valor

Uso:

c = Conta(1000)
c.depositar(500)

🔍 Tipos e Debug

type(x)

🚀 Automação — O Superpoder

Executar comandos do sistema

import os

os.system("dir")

Processar arquivos em lote

import glob

for arquivo in glob.glob("*.txt"):
print(arquivo)

🌐 Integração moderna

Consumir API

import requests

r = requests.get("https://api.github.com")
print(r.status_code)

👉 Equivalente moderno de MQ + Web Services.


🧠 Padrões mentais úteis

Python é:

✔ Scriptável
✔ Interativo
✔ Orientado a objetos
✔ Ideal para automação
✔ Excelente para integração


💥 Onde Python brilha para Mainframe Engineers

🔥 Automação operacional
🔥 DevOps e pipelines
🔥 Testes de batch
🔥 Processamento de logs
🔥 APIs REST para legado
🔥 Data Engineering
🔥 Machine Learning
🔥 RPA e scripting corporativo


☕ Frase estilo War Room

👉 COBOL mantém o mundo funcionando.
Python automatiza o mundo que muda.

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