✨ Bem-vindo ao meu espaço! ✨ Este blog é o diário de um otaku apaixonado por animes, tecnologia de mainframe e viagens. Cada entrada é uma mistura única: relatos de viagem com fotos, filmes, links, artigos e desenhos, sempre buscando enriquecer a experiência de quem lê. Sou quase um turista profissional: adoro dormir em uma cama diferente, acordar em um lugar novo e registrar tudo com minha câmera sempre à mão. Entre uma viagem e outra, compartilho também reflexões sobre cultura otaku/animes
quarta-feira, 3 de janeiro de 2024
Descubra o que foi/é a Crise do Software.
Leia na InTEGRA
segunda-feira, 9 de junho de 2014
COBOL Imperativo, Procedural e Procedural Estruturado
COBOL Imperativo, Procedural e Procedural Estruturado
Três fases da mesma linguagem (e três estados de espírito no CPD)
Ao estilo Bellacosa Mainframe, servido quente no El Jefe Midnight Lunch
☕ Introdução: o mesmo COBOL, três mentalidades
Quem olha de fora acha que COBOL é tudo igual desde 1959. Quem viveu mainframe sabe: o COBOL mudou — não tanto na sintaxe, mas na forma de pensar.
Imperativo, Procedural e Procedural Estruturado não são dialetos oficiais escritos em pedra. São estágios evolutivos, reflexo direto de:
Limitações de hardware
Pressões de negócio
Maturidade da engenharia de software
Entender essas diferenças é entender por que tanto código legado funciona… e por que outro tanto assombra equipes até hoje.
🧠 COBOL no modo Imperativo — o nascimento selvagem
📅 Quando surgiu
Final dos anos 50 e início dos 60, junto com o próprio COBOL.
🎯 Ideia central
“Faça exatamente isso. Agora isso. Agora pule para lá.”
O foco é comando direto. O programa é uma lista de ordens explícitas para a máquina.
🧩 Características
Uso intenso de
GO TOFluxo não linear
Dependência forte da ordem física do código
Parágrafos longos e multifuncionais
🧨 Comentário Bellacosa
Era compreensível. Memória era cara, CPU era lenta e ninguém pensava em manutenção a longo prazo.
Funcionou ontem? Então não mexe.
🥚 Easter Egg
Muito código imperativo ainda roda em produção porque ninguém tem coragem de tocar.
🧠 COBOL Procedural — organização por rotinas
📅 Quando ganhou força
Anos 60 e 70, com sistemas maiores e equipes crescendo.
🎯 Ideia central
“Organize o programa em procedimentos reutilizáveis.”
Aqui surge a noção clara de rotinas, chamadas e retorno.
🧩 Características
Uso intenso de
PERFORMDivisão do programa em parágrafos
Fluxo mais previsível
Ainda aceita
GO TO(e muita gente abusou)
⚠️ O perigo oculto
Procedural não é automaticamente estruturado.
Você pode ter um código procedural organizado e ainda assim caótico.
🥚 Easter Egg
Parágrafos chamados 9999-FIM ou EXIT-PROG são herança direta dessa fase.
🧠 COBOL Procedural Estruturado — quando o COBOL vira engenharia
📅 Quando surgiu
Final dos anos 70 e anos 80, influenciado pela programação estruturada (Dijkstra, Böhm & Jacopini).
🎯 Ideia central
“Fluxo previsível é mais importante que truque de performance.”
Aqui o COBOL ganha disciplina formal.
🧩 Características
Eliminação prática do
GO TOUso sistemático de:
IF / END-IFEVALUATE / END-EVALUATEPERFORM UNTIL / END-PERFORM
Parágrafos pequenos e coesos
Código que se lê como um roteiro lógico
🏦 Razão de negócio
Auditoria
Confiabilidade
Manutenção por décadas
Bancos e seguradoras exigiram esse padrão.
📊 Comparativo rápido
| Estilo | Controle de fluxo | Manutenção | Risco |
|---|---|---|---|
| Imperativo | Caótico | Difícil | Alto |
| Procedural | Médio | Melhor | Médio |
| Procedural Estruturado | Previsível | Excelente | Baixo |
🛠️ Passo a passo: migrando o pensamento
1️⃣ Pare de pensar em linhas, pense em fluxo
Pergunte:
Onde começa?
Onde decide?
Onde termina?
2️⃣ Um parágrafo, uma responsabilidade
Se o nome precisa de “E”, “OU” e “TAMBÉM”… está grande demais.
3️⃣ Substitua IFs aninhados por EVALUATE
Mais legível, mais auditável.
4️⃣ Use PERFORM como se fosse chamada de função
Mesmo sem parâmetros formais, o conceito é o mesmo.
🔐 Segredos de veterano
🔹 Código estruturado reduz incidentes noturnos.
🔹 Auditor confia mais em código previsível do que em código “esperto”.
🔹 Performance se resolve depois; clareza primeiro.
🔹 Todo sistema legado parece ruim… até você entender o contexto em que nasceu.
🧾 Curiosidades de bastidor
Muitos padrões internos de bancos proíbem
GO TOhá mais de 30 anos.Há programas imperativos mais antigos que seus mantenedores.
COBOL estruturado influenciou diretamente padrões de codificação em PL/I e até Java.
🥚 Easter Eggs do CPD
🕰️ Parágrafos numerados (1000-INICIO) são fósseis vivos.
🐘 Compiladores modernos reclamam de GO TO, mas ainda aceitam — respeito aos ancestrais.
☕ Quanto mais estruturado o código, menos café o time consome em fechamento.
✅ Boas práticas Bellacosa Mainframe
✔ Evite GO TO como se fosse vazamento em produção
✔ Prefira clareza a micro-otimização
✔ Nomeie parágrafos com linguagem de negócio
✔ Estruture pensando no próximo mantenedor
✔ Código bom é código explicável
🌙 Conclusão: não é sobre sintaxe, é sobre mentalidade
Imperativo, Procedural e Procedural Estruturado contam a história da maturidade do software corporativo.
O COBOL não ficou velho.
Ele ficou responsável.
E no mundo mainframe, responsabilidade é o que mantém sistemas rodando…
sem glamour, sem barulho e sem falhar.
— Bellacosa Mainframe, direto do CPD para o El Jefe Midnight Lunch 🌙