Translate

domingo, 2 de novembro de 2025

☕🔥 REXX: A LINGUAGEM QUE ENSINOU O MAINFRAME A CONVERSAR COM HUMANOS 🔥☕

 


Bellacosa Mainframe apresenta principios basicos do REXX

☕🔥 REXX: A LINGUAGEM QUE ENSINOU O MAINFRAME A CONVERSAR COM HUMANOS 🔥☕

“Enquanto outras linguagens exigiam cerimônia… o REXX apenas dizia: SAY.”


Existe um momento na vida de todo profissional Mainframe em que ele percebe uma verdade perigosa:

O z/OS não foi feito apenas de COBOL, JCL e Assembler.

Existe uma camada invisível.
Uma camada que conecta operadores, analistas, sysprogs, automações, ISPF, TSO e ferramentas corporativas.

E essa camada atende por um nome lendário:

REXX.


☕ O DIA EM QUE O MAINFRAME GANHOU UMA VOZ

Imagine o cenário.

Década de 80.

O mundo do Mainframe era dominado por linguagens formais:

  • COBOL
  • PL/I
  • Assembler

Tudo extremamente poderoso.

Mas também:

  • rígido
  • verboso
  • burocrático

Então surge Mike Cowlishaw com uma ideia revolucionária:

“E se programar fosse simples?”

Nascia o:

REXX — Restructured Extended Executor

Uma linguagem feita para:

  • automação
  • scripts
  • produtividade
  • interação humana

E principalmente:

  • reduzir sofrimento operacional.

☕ O REXX NÃO QUERIA IMPRESSIONAR

O REXX não nasceu tentando parecer “acadêmico”.

Ele queria resolver problemas.

Enquanto outras linguagens diziam:

printf("Hello World");

O REXX dizia:

say 'Hello World'

Sem:

  • ponto e vírgula obrigatório
  • declaração
  • tipos
  • complexidade desnecessária

Quase como conversar com o sistema.


🔥 O DETALHE MAIS ABSURDO DO REXX

No REXX…

variáveis não precisam ser declaradas.

Você simplesmente escreve:

cliente = 'BELLACOSA'
idade = 25

E pronto.

Hoje isso parece comum.

Mas no Mainframe clássico isso era praticamente FEITIÇARIA.


☕ O MAINFRAME QUE PENSA EM TEXTO

COBOL pensa em:

  • campos
  • layouts
  • PICs

Assembler pensa em:

  • registradores
  • bytes

REXX pensa em:

  • TEXTO.

E isso muda tudo.


🔥 O SUPERPODER MAIS SUBESTIMADO DO REXX

PARSE

O comando PARSE talvez seja uma das coisas mais geniais já criadas no universo IBM.

Veja isso:

parse value 'JOAO 25 SAO_PAULO' with nome idade cidade

Resultado:

NOME   = JOAO
IDADE = 25
CIDADE = SAO_PAULO

Uma linha.

UMA.

Agora imagine fazer isso em:

  • COBOL
  • PL/I
  • Assembler

O programador provavelmente envelheceria 3 anos.


☕ EASTER EGG #1 — O REXX “LÊ MENTES”

Veja isso:

say saldo

Saída:

SALDO

Sim.

O REXX NÃO ABENDA.

Se a variável não existe:

  • ele devolve o próprio nome.

🔥 O BUG MAIS CLÁSSICO DO UNIVERSO REXX

total = 100
totla = 200

say total

Saída:

100

Porque:

  • TOTLA virou outra variável.

E assim nasceram milhares de horas de debugging no z/OS.


☕ A DEFESA DOS VETERANOS

Os antigos guerreiros do Mainframe aprenderam rapidamente:

signal on novalue

Agora qualquer variável inexistente gera tratamento controlado.

Exemplo:

signal on novalue

say saldo

exit

novalue:
say 'VARIAVEL NAO INICIALIZADA!'
exit

🔥 REXX E O PODER DO TSO

O REXX não vive sozinho.

Ele reina dentro do:

  • TSO
  • ISPF
  • SDSF
  • NetView
  • Tivoli
  • OPS/MVS

Na prática?

Muitos “produtos sofisticados” do Mainframe são enormes coleções de REXX escondidas atrás de painéis ISPF bonitos.


☕ EXECUÇÃO IMPLÍCITA — A MAGIA OCULTA

Você digita:

MEUREXX

E o sistema encontra o exec automaticamente.

Como?

Porque o TSO procura em:

  • SYSEXEC
  • SYSPROC

☕ EASTER EGG #2 — O “PENDRIVE” DO MAINFRAME

Existe um comando lendário:

ALTLIB

Ele permite trocar dinamicamente bibliotecas REXX.

Na prática:

ALTLIB ACT APPLICATION(EXEC)
DSNAME('USER.TEST.REXX')

É como dizer ao z/OS:

“Ignore temporariamente a biblioteca oficial e use ESTA aqui.”

Isso é MUITO usado por:

  • sysprogs
  • suporte
  • troubleshooting
  • desenvolvimento

🔥 CONCATENAÇÃO — ONDE OS INICIANTES CAEM

O REXX possui 3 concatenações.

Com espaço:

say 'MAINFRAME' 'REXX'

Saída:

MAINFRAME REXX

Com ||

say 'MAINFRAME'||'REXX'

Saída:

MAINFRAMEREXX

A MAIS PERIGOSA: ABUTTAL

var1 = 'MON'
var2 = 'DAY'

say var1var2

Saída:

VAR1VAR2

Sim.

O interpretador acha que:

  • VAR1VAR2 é uma variável nova.

E não:

  • VAR1 + VAR2.

☕ EASTER EGG #3 — O REXX QUASE TINHA IA NOS ANOS 80

Existe um comando chamado:

interpret

Exemplo:

instrucao = "say 'OLA MAINFRAME'"

interpret instrucao

O REXX EXECUTA TEXTO COMO CÓDIGO.

Isso é META-PROGRAMAÇÃO.

Décadas antes de virar moda.


🔥 O REXXTRY — O “CHATGPT” DO REXX ANTIGO

A IBM criou um exemplo lendário chamado:

REXXTRY

O usuário digita instruções.
O interpretador executa na hora.

Praticamente um:

  • shell interativo
  • laboratório REXX
  • mini terminal inteligente

Exemplo conceitual:

do forever
pull linha
interpret linha
end

Isso era ABSURDAMENTE avançado para a época.


☕ O REXX NÃO FOI FEITO PARA SUBSTITUIR COBOL

E isso é importante.

REXX complementa o ecossistema.


REGRA DE OURO DO MAINFRAME

TecnologiaEspecialidade
COBOLProcessamento massivo
JCLControle batch
AssemblerPerformance extrema
REXXAutomação inteligente

🔥 EXEMPLO PROFISSIONAL — MONITOR DE DATASETS

Aqui começa o verdadeiro poder do REXX.


EXEMPLO

/* MONITOR DE DATASET */

address tso

parse upper arg dsname

if dsname = '' then do
say 'USO: %MONDS dataset'
exit
end

"LISTDS '"dsname"'"

if rc = 0 then
say 'DATASET ENCONTRADO!'
else
say 'DATASET NAO EXISTE!'

☕ O QUE ACONTECE AQUI?

O REXX:

  • conversa com o TSO
  • executa comandos nativos
  • captura retorno
  • toma decisões

Tudo com poucas linhas.


🔥 REXX NO MUNDO REAL

Profissionais usam REXX para:

  • automação operacional
  • monitoramento
  • geração de relatórios
  • ISPF dialogs
  • manipulação de datasets
  • SDSF automation
  • parsing de logs
  • integração batch
  • utilitários z/OS

☕ O DETALHE QUE POUCOS PERCEBEM

O REXX foi criado antes de:

  • Python
  • Perl
  • PowerShell

Mas já fazia:

  • scripting dinâmico
  • parsing avançado
  • automação textual
  • metaprogramação
  • integração com SO

🔥 O REXX É A “COLA” DO MAINFRAME

Sem ele:

  • muitas automações desaparecem
  • painéis ISPF quebram
  • ferramentas administrativas param

O usuário nem percebe.

Mas o REXX está lá.

Silenciosamente sustentando o ecossistema.


☕ CONCLUSÃO — A LINGUAGEM QUE HUMANIZOU O z/OS

O REXX não foi criado para impressionar.

Foi criado para:

  • simplificar
  • automatizar
  • aproximar humanos do Mainframe

E talvez seja exatamente por isso que ele continua vivo.

Porque enquanto outras linguagens exigem:

  • sintaxe
  • estrutura
  • formalidade

O REXX apenas pergunta:

say 'O que voce quer fazer hoje?'

☕ Bellacosa Mainframe

“O COBOL processa o banco.
O JCL controla o job.
O Assembler domina a máquina.

Mas é o REXX que conversa com o Mainframe.”

 

Sem comentários:

Enviar um comentário