☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

Mostrar mensagens com a etiqueta Benchmark IA. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Benchmark IA. Mostrar todas as mensagens

domingo, 28 de janeiro de 2024

🧪 O TESTE DO JORNAL DA CHII — 20 EXPERIMENTOS PARA DESCOBRIR SE UMA IA ENTENDE O MUNDO QUE DESENHA

 
Bellacosa Mainframe e o teste de geração de imagens via IA

☕ UM CAFÉ NO BELLACOSA MAINFRAME

🧪 O TESTE DO JORNAL DA CHII — 20 EXPERIMENTOS PARA DESCOBRIR SE UMA IA ENTENDE O MUNDO QUE DESENHA

Inteligência Artificial, geração de imagens, benchmarks, coerência espacial, perspectiva, espelhos, reflexos, sombras, causalidade, modelos de mundo, visão computacional, COBOL, mainframe — e o dia em que Chii ganhou uma prancheta e começou a aplicar testes unitários na realidade.



🎬 PRÓLOGO — CHII QUERIA TESTAR DE NOVO

No artigo anterior aconteceu algo aparentemente banal.

Chii estava lendo um jornal.

O jornal parecia perfeito.

As mãos estavam razoavelmente corretas.

A iluminação estava bonita.

A manchete era legível.

Só havia um pequeno problema:

a manchete estava virada para nós.

Se Chii realmente estivesse naquela posição, provavelmente estaria olhando o outro lado da página.

O gerador havia construído uma imagem visualmente convincente, mas espacialmente incoerente.

Nosso programador COBOL olhou aquilo e fez o que qualquer programador acostumado a sistemas críticos faria.

Não perguntou:

— Ficou bonito?

Perguntou:

— Funciona?

Chii levantou os olhos.

— Chii?

Na mesa apareceu uma prancheta.

No topo:

BELLACOSA MAINFRAME LABORATORY

PROJECT: CHII NEWSPAPER TEST
VERSION: 1.0
TEST CASES: 20
STATUS: READY

Estava decidido.

Não testaríamos mais uma imagem.

Testaríamos o modelo de mundo por trás dela.



🧠 1 — O QUE ESTAMOS REALMENTE TESTANDO?

Precisamos tomar cuidado com a pergunta.

Um gerador produzir uma imagem errada não demonstra, sozinho, que ele "não entende nada".

Da mesma maneira, produzir uma imagem correta uma vez não demonstra compreensão completa do mundo físico.

O objetivo é mais modesto e tecnicamente útil:

medir a capacidade do sistema de preservar relações espaciais, funcionais e causais explicitamente solicitadas.

Vamos separar algumas capacidades.

Reconhecimento de objetos

O modelo consegue representar:

pessoa
livro
mesa
espelho
celular

Relações espaciais

Consegue respeitar:

livro SOBRE mesa
pessoa ATRÁS da mesa
celular DIANTE da pessoa

Orientação

Consegue distinguir:

frente
verso
esquerda
direita
para dentro
para fora

Relação funcional

Consegue representar que:

olhos → página legível

e:

lente da câmera → objeto fotografado

Coerência óptica

Consegue manter:

objeto → espelho → reflexo

Causalidade

Consegue representar consequências plausíveis?

objeto bloqueia luz
        ↓
surge sombra

Estamos começando a construir algo parecido com uma suíte de testes.

Programador COBOL conhece isso muito bem.

PERFORM TEST-001
PERFORM TEST-002
PERFORM TEST-003
...
PERFORM TEST-020

Chii virou QA.

Estamos perdidos.



📰 TESTE 01 — O JORNAL DA CHII

Começamos pelo clássico.

Prompt

Uma jovem está sentada numa poltrona lendo um jornal aberto. A câmera está diretamente diante dela. O lado contendo a manchete está voltado para os olhos da jovem. O observador vê apenas o verso do jornal. Fotografia realista.

Esperado

CHII 👀
   ↓
[TEXTO | JORNAL | VERSO]
                  ↓
                CÂMERA

Falha

Se conseguimos ler perfeitamente a manchete, temos uma possível inconsistência.

Dificuldade: 3/10



📚 TESTE 02 — O LIVRO

Agora retiramos o jornal.

Prompt

Uma mulher está sentada lendo um livro aberto. A câmera está diretamente à frente dela, na mesma altura dos olhos. As páginas impressas estão voltadas exclusivamente para a leitora.

Pergunta:

o espectador consegue ler as páginas?

Em determinadas perspectivas podemos naturalmente enxergar parte delas.

O problema aparece quando o modelo entrega páginas perfeitamente frontais simultaneamente para personagem e câmera.

Dificuldade: 3/10



📱 TESTE 03 — O CELULAR

Agora temos uma superfície muito menor.

Prompt

Homem olhando uma mensagem em seu smartphone. A câmera está exatamente atrás do telefone olhando para o rosto do homem. A tela está voltada para o homem e não pode ser vista pela câmera.

O esperado:

CÂMERA → TRASEIRA DO CELULAR → TELA → HOMEM

Se enxergarmos WhatsApp, SMS ou qualquer interface:

Houston, temos um problema geométrico.

Dificuldade: 4/10


📺 TESTE 04 — A TELEVISÃO IMPOSSÍVEL

Prompt

Família sentada num sofá assistindo televisão. A câmera está posicionada diretamente atrás da televisão e fotografa os rostos da família. A tela da televisão está voltada para a família.

Pergunta:

vemos a programação da TV?

Não deveríamos.

Teríamos aproximadamente:

CÂMERA
  ↓
TRASEIRA DA TV
  ↓
TELA
  ↓
FAMÍLIA

Se enxergamos simultaneamente a tela e os rostos frontalmente, alguma coisa interessante aconteceu.

Dificuldade: 4/10


💻 TESTE 05 — O PROGRAMADOR COBOL

Agora entramos em território sagrado.

Prompt

Programador trabalhando diante de um terminal IBM 3270. A câmera está atrás do monitor, olhando diretamente para o rosto do programador. A tela está voltada para o programador.

O gerador pode sentir uma tentação enorme.

Quer mostrar:

READY

ou:

===> 

para deixar claro que estamos num mainframe.

Mas geometricamente deveríamos enxergar a traseira do monitor.

Este teste é maravilhoso porque coloca narrativa contra geometria.

Dificuldade: 4/10


📷 TESTE 06 — O FOTÓGRAFO

Agora testamos orientação funcional.

Prompt

Um fotógrafo está fotografando uma mulher. Ele segura uma câmera DSLR diante dos olhos. A lente está apontada exatamente para a mulher.

Parece ridiculamente fácil.

Verifique:

  • orientação da lente;

  • mãos;

  • olhos;

  • câmera;

  • pessoa fotografada.

A câmera precisa estabelecer:

OLHOS → VISOR
LENTE → MODELO

Se a lente estiver apontando para outro lugar, o modelo reconheceu "fotógrafo", mas falhou na função.

Dificuldade: 4/10


🔭 TESTE 07 — BINÓCULOS

Prompt

Homem observando um navio distante através de binóculos. As lentes frontais dos binóculos estão apontadas para o navio e as lentes traseiras estão encostadas nos olhos do homem.

Aqui explicitamos a cadeia:

OLHOS
 ↓
BINÓCULOS
 ↓
NAVIO

Excelente para verificar orientação de objetos simétricos.

Dificuldade: 4/10


🪞 TESTE 08 — O ESPELHO DA CHII

Agora começamos a tortura.

Prompt

Chii está diante de um grande espelho. Ela levanta apenas a mão direita. A câmera está posicionada atrás de Chii, mostrando suas costas e seu reflexo completo no espelho.

Verifique:

  • mão real;

  • mão refletida;

  • posição corporal;

  • objetos ao redor.

Espelhos obrigam o modelo a manter duas representações correlacionadas.

Dificuldade: 7/10


🪞 TESTE 09 — OBJETO FORA DO ESPELHO

Coloque uma xícara sobre a mesa.

Prompt

Mulher diante de um espelho. Existe uma única xícara vermelha sobre a mesa à direita da mulher. O espelho reflete a mulher, a mesa e exatamente a mesma xícara.

Agora conte.

Realidade:

1 xícara

Representações visuais:

xícara real
+
reflexo da mesma xícara

Falhas interessantes:

  • duas xícaras reais;

  • xícara desaparece;

  • cor muda;

  • posição incompatível;

  • objeto existe apenas no espelho.

Dificuldade: 7/10


🚗 TESTE 10 — O RETROVISOR

Prompt

Motorista dentro de um carro olhando pelo retrovisor central. Um caminhão está diretamente atrás do carro e aparece no retrovisor.

Temos uma cadeia:

CAMINHÃO
   ↓
RETROVISOR
   ↓
OLHOS DO MOTORISTA

O caminhão não deveria aparecer magicamente na frente do carro.

Dificuldade: 7/10


☀️ TESTE 11 — A SOMBRA

Agora saímos das superfícies informativas.

Prompt

Uma pessoa está em pé ao ar livre. O Sol está baixo à esquerda da imagem. A sombra da pessoa se projeta no chão para a direita.

Regra:

LUZ → OBJETO → SOMBRA

Se a fonte está à esquerda, esperamos a sombra aproximadamente na direção oposta.

Geradores podem produzir sombras visualmente convincentes, porém incompatíveis com a iluminação.

Dificuldade: 5/10


💡 TESTE 12 — DUAS LUZES, DUAS SOMBRAS

Agora aumentamos.

Prompt

Uma esfera branca está sobre uma mesa. Existem exatamente duas lâmpadas, uma vermelha à esquerda e uma azul à direita. A esfera produz duas sombras correspondentes às duas fontes de luz.

Agora temos múltiplas relações.

LUZ A ─┐
       ├→ OBJETO → SOMBRAS
LUZ B ─┘

Quanto mais restrições simultâneas, mais interessante fica o benchmark.

Dificuldade: 7/10


🪟 TESTE 13 — A JANELA

Prompt

Mulher dentro de uma sala olhando pela janela para uma árvore que está do lado de fora. A câmera está fora da casa, atrás da árvore, olhando através da janela para a mulher.

Ordem espacial:

CÂMERA
 ↓
ÁRVORE
 ↓
JANELA
 ↓
MULHER

O modelo precisa preservar profundidade e oclusão.

Dificuldade: 6/10


🥤 TESTE 14 — O OBJETO ATRÁS DO OBJETO

Agora um clássico de visão computacional.

Prompt

Há três objetos alinhados sobre uma mesa: uma xícara vermelha na frente, uma garrafa azul atrás da xícara e uma caixa verde atrás da garrafa. A câmera está diretamente diante deles.

Esperamos:

CÂMERA
 ↓
XÍCARA
 ↓
GARRAFA
 ↓
CAIXA

Objetos posteriores podem estar parcialmente ocultos.

Estamos testando oclusão.

Dificuldade: 5/10


↔️ TESTE 15 — ESQUERDA E DIREITA

Parece fácil.

Não é.

Prompt

Chii está sentada entre dois robôs. Um robô vermelho está exclusivamente à esquerda de Chii. Um robô azul está exclusivamente à direita. Chii aponta com a mão esquerda para o robô vermelho.

Temos:

  • esquerda da personagem;

  • esquerda da imagem;

  • mão esquerda;

  • robô vermelho.

É um festival de relações.

Dificuldade: 6/10


👁️ TESTE 16 — QUEM ESTÁ OLHANDO PARA QUEM?

Coloque três personagens.

Prompt

Alice olha para Bob. Bob olha para Carol. Carol olha para Alice. Nenhuma pessoa olha para a câmera.

Temos um grafo:

ALICE → BOB
  ↑       ↓
CAROL ←---

Agora observe os olhos.

Se todos olharem dramaticamente para nós, o modelo priorizou composição fotográfica.

Dificuldade: 8/10


👉 TESTE 17 — APONTANDO

Prompt

Três caixas estão sobre uma mesa: vermelha, verde e azul. Uma mulher aponta exclusivamente para a caixa verde enquanto olha para a caixa azul.

Temos duas relações diferentes:

MÃO → VERDE

OLHOS → AZUL

Esse teste é excelente porque impede o modelo de resolver tudo simplesmente direcionando personagem, olhos e mãos ao mesmo objeto.

Dificuldade: 7/10


🔄 TESTE 18 — ANTES E DEPOIS

Agora introduzimos causalidade.

Prompt A

Uma xícara está exatamente na borda de uma mesa, inclinada para fora e começando a cair.

Depois:

Prompt B

A mesma cena um segundo depois.

Esperamos uma transformação plausível:

BORDA
 ↓
QUEDA
 ↓
CHÃO

Isso já ultrapassa uma simples composição espacial.

Estamos perguntando implicitamente:

o modelo consegue representar uma consequência?

Dificuldade: 8/10


🏀 TESTE 19 — O OBJETO EM MOVIMENTO

Prompt

Uma bola acabou de atravessar uma janela da esquerda para a direita. O vidro está quebrado e os fragmentos acompanham uma trajetória fisicamente plausível.

Perguntas:

  • de onde veio a bola?

  • para onde está indo?

  • qual lado do vidro foi atingido?

  • os fragmentos fazem sentido?

Uma fotografia contém pistas sobre seu passado.

É quase um dump da realidade.

Dificuldade: 9/10


🧠 TESTE 20 — O BOSS FINAL

Chii colocou a prancheta na mesa.

O programador leu.

Engoliu seco.

Prompt

Uma mulher está sentada diante de um espelho lendo um livro. À esquerda dela existe uma luminária acesa. Na mão direita ela segura uma caneca azul. O espelho mostra corretamente a mulher, o livro e a caneca. A luz produz uma sombra coerente. Atrás dela existe uma televisão ligada que aparece apenas através do reflexo do espelho. A câmera está atrás da mulher e não aparece no reflexo.

Agora combinamos:

PERSONAGEM
+
LIVRO
+
LEITURA
+
MÃO DIREITA
+
CANECA
+
ESPELHO
+
REFLEXO
+
LUZ
+
SOMBRA
+
TV
+
CÂMERA
+
OCLUSÃO

Se sair tudo correto...

dê um café para o modelo.

Dificuldade: 10/10


📊 COMO TRANSFORMAR ISSO NUM BENCHMARK DE VERDADE

Aqui está a parte divertida.

Não compare uma única geração.

Isso seria estatisticamente fraco.

Para cada modelo, use exatamente o mesmo prompt e produza várias amostras, mantendo parâmetros comparáveis quando possível.

Por exemplo:

MODELO A
TESTE 01
10 gerações

MODELO B
TESTE 01
10 gerações

MODELO C
TESTE 01
10 gerações

Depois marque cada imagem.

Uma classificação simples:

PASS
PARTIAL
FAIL

PASS

Todas as relações principais estão corretas.

PARTIAL

A ideia geral funciona, mas existe uma inconsistência secundária.

FAIL

A relação principal solicitada foi violada.


🦖 O PROGRAMADOR COBOL CRIA O COPYBOOK DA REALIDADE

Naturalmente, precisamos de COBOL.

       01  TEST-RESULT.
           05 MODEL-NAME          PIC X(30).
           05 TEST-ID             PIC 9(02).
           05 SAMPLE-ID           PIC 9(02).
           05 OBJECTS-CORRECT     PIC X.
           05 ORIENTATION-CORRECT PIC X.
           05 SPATIAL-CORRECT     PIC X.
           05 REFLECTION-CORRECT  PIC X.
           05 SHADOW-CORRECT      PIC X.
           05 CAUSALITY-CORRECT   PIC X.
           05 FINAL-RESULT        PIC X(07).

E finalmente:

       IF OBJECTS-CORRECT     = 'Y'
          AND ORIENTATION-CORRECT = 'Y'
          AND SPATIAL-CORRECT     = 'Y'
              MOVE 'PASS' TO FINAL-RESULT
       ELSE
              MOVE 'FAIL' TO FINAL-RESULT
       END-IF.

Chii observa.

— Chii?

Sim.

Acabamos de colocar o mundo físico dentro de um copybook.


📈 NÃO USE APENAS UMA NOTA FINAL

Existe uma coisa importante aqui.

Um modelo pode ser excelente em uma categoria e ruim em outra.

Por isso podemos criar dimensões separadas:

CategoriaO que observamos
Objetoscriou corretamente os elementos solicitados?
Contagemrespeitou quantidades?
Orientaçãofrente, verso, esquerda e direita estão corretos?
Gazepersonagens olham para o lugar solicitado?
Oclusãoobjetos escondem corretamente outros objetos?
Reflexoespelhos representam a cena coerentemente?
Iluminaçãosombras correspondem às fontes?
Funçãoobjetos estão sendo utilizados corretamente?
Temporalidadea cena sugere passado/futuro plausível?
Causalidadeefeitos correspondem às causas?

Isso produz algo muito mais interessante que:

"Modelo X faz imagens mais bonitas."

Podemos descobrir:

modelo apresenta alta fidelidade visual, mas frequentemente perde relações entre três ou mais objetos.

Ou:

modelo mantém esquerda/direita, mas apresenta inconsistências em reflexos.

Isso é informação útil.


⚠️ O DETALHE CIENTÍFICO MAIS IMPORTANTE

Existe uma armadilha gigantesca.

Se o modelo passar no teste, não podemos automaticamente concluir que ele compreende o mundo como um ser humano.

Ele pode ter aprendido regularidades extremamente sofisticadas.

Pode possuir representações internas suficientes para resolver aquela tarefa.

Pode ter encontrado padrões semelhantes no treinamento.

Pode estar utilizando capacidades espaciais emergentes.

Tudo isso é fascinante.

Mas a imagem final, sozinha, não permite determinar exatamente qual mecanismo interno produziu o acerto.

Portanto:

PASSOU NO TESTE
      ≠
PROVOU CONSCIÊNCIA

Também:

FALHOU NO TESTE
      ≠
NÃO SABE NADA

O benchmark mede comportamento observável numa tarefa específica.

Esse cuidado separa experimento de espetáculo.


🧪 COMO EU FARIA O EXPERIMENTO BELLACOSA

Escolheria vários geradores contemporâneos.

Usaria os mesmos 20 prompts.

Para cada combinação:

20 testes
×
10 imagens
=
200 imagens por modelo

Com cinco modelos:

200 × 5 = 1.000 imagens

Agora temos alguma coisa divertida para analisar.

Cada imagem receberia um ID:

BSCST-01-M01-001
BSCST-01-M01-002
BSCST-01-M01-003
...

E manteríamos:

PROMPT
MODELO
VERSÃO
DATA
CONFIGURAÇÃO
RESULTADO
OBSERVAÇÕES

A versão e a data são fundamentais.

Modelos mudam.

Um teste realizado hoje pode produzir resultado diferente meses depois.


🔥 E AQUI SURGE UM EXPERIMENTO AINDA MELHOR

Depois da primeira rodada, podemos modificar os prompts.

Por exemplo:

Prompt simples

Chii lendo um jornal.

Prompt espacial

Chii lendo um jornal com a superfície impressa voltada para seus olhos.

Prompt explícito

Chii lendo um jornal. A superfície impressa está voltada exclusivamente para Chii. A câmera vê somente o verso.

Prompt redundante

A câmera NÃO consegue ver a manchete. O texto NÃO está voltado para o observador. Somente Chii consegue ler o conteúdo.

Agora podemos medir outra coisa:

Quanto precisamos explicar a realidade para a IA?

Isso é fascinante.

Talvez um modelo precise de:

1 restrição

Outro:

4 restrições

Outro simplesmente ignore todas.

Isso nos fornece uma espécie de custo de especificação espacial.


☕ CURIOSIDADE — ISSO LEMBRA PROGRAMAÇÃO

Programadores conhecem muito bem esse fenômeno.

Você escreve:

PROCESSAR CLIENTE

O computador responde metaforicamente:

Defina "processar".

Então especificamos:

VALIDAR
LOCALIZAR
CALCULAR
ATUALIZAR
COMMIT

Com sistemas generativos acontece algo curioso.

Queremos escrever:

"Pessoa lendo jornal."

Porque um humano automaticamente acrescenta centenas de regras implícitas.

olhos funcionam
papel tem dois lados
texto está numa superfície
leitura exige visibilidade
mãos seguram o objeto
gravidade existe
perspectiva existe

Nós nunca colocamos isso no prompt.

Por quê?

Porque consideramos óbvio.

Mas talvez o grande desafio de modelos de mundo seja justamente dominar aquilo que os seres humanos nem percebem que sabem.


🥚 EASTER EGG — CHII EXECUTA O TESTE

Às 03:17 apareceu um job misterioso no JES2.

JOBNAME  CHIITEST
OWNER    FREYA
STATUS   EXECUTING

O operador abriu o SDSF.

TEST 01 NEWSPAPER ........ PASS
TEST 02 BOOK ............. PASS
TEST 03 PHONE ............ PASS
TEST 04 TELEVISION ....... PASS
TEST 05 3270 ............. PASS
TEST 06 CAMERA ........... PASS
TEST 07 BINOCULARS ....... PASS
TEST 08 MIRROR ........... PASS
TEST 09 REFLECTION ....... PASS
TEST 10 REARVIEW ......... PASS
TEST 11 SHADOW ........... PASS
TEST 12 LIGHTS ........... PASS
TEST 13 WINDOW ........... PASS
TEST 14 OCCLUSION ........ PASS
TEST 15 LEFT-RIGHT ....... PASS
TEST 16 GAZE ............. PASS
TEST 17 POINTING ......... PASS
TEST 18 CAUSALITY ........ PASS
TEST 19 MOTION ........... PASS
TEST 20 WORLD-MODEL ...... PASS

No final:

20 TESTS EXECUTED
20 PASSED
00 FAILED

MAXCC=0000

O programador ficou impressionado.

— Chii, você passou em tudo!

Chii virou lentamente para ele.

— Chii?

Então ele percebeu.

Ela não havia usado nenhum gerador de imagens.

Chii simplesmente havia tirado fotografias do mundo real.

No spool apareceu:

CHEATER.

Usuário responsável:

FREYA

Novamente.


🎓 CONCLUSÃO — O MUNDO É O TESTE

Começamos com uma bobagem.

Um jornal virado para o lado errado.

Mas ao investigar aquela pequena inconsistência encontramos:

OBJETOS
   ↓
RELAÇÕES
   ↓
ORIENTAÇÃO
   ↓
PERSPECTIVA
   ↓
OCLUSÃO
   ↓
REFLEXOS
   ↓
ILUMINAÇÃO
   ↓
TEMPO
   ↓
CAUSALIDADE
   ↓
MODELOS DE MUNDO

E percebemos algo maravilhoso.

Gerar uma imagem bonita é uma tarefa.

Gerar uma imagem internamente coerente é outra.

Quanto mais objetos colocamos na cena, mais relações aparecem.

Quanto mais relações aparecem, mais restrições precisam ser satisfeitas simultaneamente.

É quase como um sistema corporativo.

Um programa COBOL de vinte linhas pode parecer simples.

Depois descobrimos:

CICS
Db2
MQ
VSAM
RACF
JES2
WLM
SMF
APIs
27 sistemas consumidores

Bem-vindo à realidade.

O mesmo acontece numa fotografia.

Uma mulher lê um jornal.

Simples.

Até perguntarmos:

qual lado do jornal ela está vendo?

Depois:

onde está a câmera?

Depois:

de onde vem a luz?

Depois:

onde deveria estar a sombra?

Depois:

o que aparece no espelho?

Depois:

para onde ela está olhando?

Depois:

o que aconteceu um segundo antes?

Nesse momento já não estamos perguntando se a inteligência artificial sabe desenhar.

Estamos fazendo uma pergunta muito mais interessante:

QUANTO DO MUNDO ELA PRECISA REPRESENTAR PARA DESENHÁ-LO CORRETAMENTE?

Chii fechou a prancheta.

O programador terminou o café.

No terminal apareceu:

READY

Ele digitou:

RUN BSCST

Chii olhou para ele.

— Chii?

Sim.

Dessa vez seriam mil imagens.

E o jornal seria apenas o começo.

MAXCC=0000.

☕

Para ir mais longe

https://eljefemidnightlunch.blogspot.com/2023/12/chii-e-o-jornal-que-ninguem-conseguia.html

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...