| 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
| Tecnologia | Especialidade |
|---|---|
| COBOL | Processamento massivo |
| JCL | Controle batch |
| Assembler | Performance extrema |
| REXX | Automaçã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.”




