Translate

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

quinta-feira, 1 de fevereiro de 2007

O que é Paradigma de Programação Procedural?

 

Bellacosa Mainframe e o paradigma de programação procedural

O que é Paradigma de Programação Procedural?

Quando estudamos:

  • COBOL;

  • C;

  • PL/I;

  • Assembler;

  • programação no mainframe;

um dos conceitos mais importantes é o:

paradigma procedural.

Ele dominou o desenvolvimento corporativo durante décadas e ainda hoje é extremamente utilizado no ambiente:

z/OS IBM Z.


Primeiro: o que é paradigma?

Paradigma é:

um modelo ou estilo de programação.

Ele define:

  • como o programa será organizado;

  • como a lógica será construída;

  • como o fluxo será executado.


O que significa “procedural”?

Procedural vem de:

procedimentos.

Ou seja:
o programa é dividido em:

  • rotinas;

  • módulos;

  • procedimentos;

  • etapas organizadas.


Definição simples

Programação procedural é:

um paradigma baseado em procedimentos que executam tarefas passo a passo.

O programa normalmente:

  • segue sequência;

  • manipula variáveis;

  • altera estados;

  • executa rotinas.


Analogia simples

Imagine uma empresa.

Cada setor possui um procedimento:

  • financeiro;

  • RH;

  • cobrança;

  • estoque.

Cada procedimento executa:

uma tarefa específica.

O paradigma procedural funciona assim.


Relação com paradigma imperativo

O procedural é:

um tipo de programação imperativa.

Porque ele também diz:

como fazer as tarefas.


O que muda?

No procedural:

o código é organizado em procedimentos.


Exemplo simples

INICIO
   VALIDAR CLIENTE
   CALCULAR SALDO
   GERAR RELATORIO
FIM

Cada etapa é um:

procedimento.


Como isso aparece no COBOL?

Muito fortemente.


Exemplo COBOL procedural

PROCEDURE DIVISION.

MAIN-PROCESS.
    PERFORM VALIDAR-CLIENTE
    PERFORM CALCULAR-SALDO
    PERFORM GERAR-RELATORIO
    STOP RUN.

O que é PERFORM?

Comando COBOL usado para:

executar procedimentos.


Exemplo dos procedimentos

VALIDAR-CLIENTE.
    DISPLAY 'VALIDANDO'.

CALCULAR-SALDO.
    DISPLAY 'CALCULANDO'.

GERAR-RELATORIO.
    DISPLAY 'GERANDO'.

Isso é programação procedural

O sistema:

  • chama procedimentos;

  • executa etapas;

  • controla fluxo.


Estrutura clássica procedural

ENTRADA
 ↓
VALIDAÇÃO
 ↓
PROCESSAMENTO
 ↓
ATUALIZAÇÃO
 ↓
RELATÓRIO
 ↓
FIM

Características do paradigma procedural


Código dividido em procedimentos


Fluxo sequencial


Uso intenso de variáveis


Alteração de estado


Reutilização de rotinas


Forte controle do fluxo


Como procedural aparece no mainframe?

Praticamente em tudo:

  • COBOL batch;

  • utilitários;

  • JCL procedural;

  • automações;

  • sistemas financeiros.


O COBOL é procedural?

Tradicionalmente:

sim.

Especialmente:

  • COBOL batch clássico;

  • sistemas legados.


Por que procedural fez tanto sucesso no mainframe?

Porque funciona muito bem para:

  • processamento batch;

  • regras de negócio;

  • arquivos sequenciais;

  • grandes volumes de dados.


Exemplo real batch procedural

LER ARQUIVO
 ↓
VALIDAR REGISTRO
 ↓
CALCULAR VALOR
 ↓
ATUALIZAR DB2
 ↓
GERAR RELATÓRIO

O que é modularização?

Dividir programa em partes menores.


Exemplo

ROTINA-LEITURA
ROTINA-CALCULO
ROTINA-IMPRESSAO

Isso facilita:

  • manutenção;

  • testes;

  • reutilização;

  • organização.


O que é subprograma?

Programa chamado por outro programa.

Muito comum em COBOL.


Exemplo

CALL 'CALCSAL'

O que é parâmetro?

Informação enviada para procedimento/subprograma.


Exemplo

CALL 'CALCSAL' USING SALARIO

Procedural vs Orientado a Objetos


Procedural

Organiza:

procedimentos.


Orientado a Objetos

Organiza:

objetos/classes.


Procedural vs Declarativo


Procedural

Diz:

como executar.


Declarativo

Diz:

o que deseja obter.


Exemplo SQL

SELECT NOME
FROM CLIENTES

Mais declarativo.


Exemplo procedural equivalente

LER CLIENTE
SE NOME EXISTE
   MOSTRAR

Vantagens do paradigma procedural


Fácil entender fluxo


Excelente para batch


Ótimo desempenho


Muito eficiente em mainframe


Bom para regras de negócio


Muito estável


Desvantagens


Sistemas grandes ficam complexos


Muito acoplamento


Código repetitivo


Difícil manutenção em programas enormes


GO TO excessivo gera spaghetti code


O que é spaghetti code?

Código confuso cheio de desvios.

Muito famoso em sistemas antigos COBOL.


Curiosidades incríveis

1. Grande parte do sistema bancário mundial ainda usa lógica procedural


2. Muitos programas COBOL possuem décadas de evolução procedural


3. Procedural dominou a computação corporativa por muitos anos


4. O COBOL procedural continua extremamente relevante


Erros comuns de iniciantes


1. Criar procedimentos gigantes


2. Não modularizar


3. Usar GO TO demais


4. Misturar lógica demais em uma única rotina


Dicas importantes

Divida programas em pequenas rotinas


Use PERFORM corretamente


Nomeie procedimentos claramente


Organize fluxo do programa


Como isso aparece no dia a dia?

Praticamente em:

  • COBOL;

  • batch;

  • DB2 procedural;

  • processamento financeiro;

  • faturamento;

  • folha salarial.


Exemplo simplificado completo

MAIN
 ↓
LER CLIENTES
 ↓
VALIDAR DADOS
 ↓
CALCULAR JUROS
 ↓
ATUALIZAR DB2
 ↓
GERAR RELATÓRIO
 ↓
FIM

Resumo rápido

ConceitoSignificado
ProceduralBaseado em procedimentos
PERFORMExecuta rotina COBOL
CALLChama subprograma
ModularizaçãoDividir programa
FluxoOrdem execução
COBOLPrincipal exemplo procedural

Conclusão

O paradigma procedural é um dos modelos mais importantes da programação tradicional no ambiente mainframe IBM Z.

Ele organiza programas em procedimentos e rotinas reutilizáveis, permitindo criar sistemas batch eficientes, estáveis e capazes de processar enormes volumes de dados no z/OS.


quarta-feira, 31 de janeiro de 2007

O que é Paradigma de Programação Imperativo?

 

Bellacosa Mainframe e o paradigma de programação imperativo

O que é Paradigma de Programação Imperativo?

Quando começamos a estudar:

  • COBOL;

  • Assembler;

  • C;

  • JCL;

  • programação mainframe;

encontramos um conceito muito importante chamado:

paradigma de programação.

E um dos paradigmas mais famosos da computação é o:

paradigma imperativo.


O que significa “paradigma”?

Paradigma é:

um modelo ou estilo de programação.

Ou seja:
é a forma como organizamos a lógica do programa.


Definição simples

Programação imperativa é:

dizer ao computador exatamente o que fazer, passo a passo.

O programa descreve:

  • sequência;

  • comandos;

  • mudanças de estado;

  • fluxo de execução.


Analogia simples

Imagine ensinar alguém a fazer um bolo.

Você diz:

1. Pegue farinha
2. Misture ovos
3. Ligue o forno
4. Coloque a massa
5. Asse por 40 minutos

Isso é:

programação imperativa.

Você descreve:

cada passo da execução.


Por que “imperativo”?

Porque o programa usa:

comandos e instruções.

Ou seja:
ele “ordena” o que o computador deve fazer.


Como isso aparece no mainframe?

O mainframe tradicional é fortemente baseado em:

paradigma imperativo.

Principalmente em:

  • COBOL;

  • Assembler;

  • PL/I;

  • JCL procedural.


Exemplo simples em pseudocódigo

LER SALARIO
SE SALARIO > 5000
   CALCULAR IMPOSTO
SENAO
   MOSTRAR ISENTO

O programa controla:

  • ordem;

  • variáveis;

  • decisões;

  • fluxo.


Exemplo COBOL

IF SALARIO > 5000
   COMPUTE IMPOSTO = SALARIO * 0.15
ELSE
   DISPLAY 'ISENTO'
END-IF

Isso é imperativo porque:

o programador define:

exatamente como o processamento acontece.


Características do paradigma imperativo


Sequência de comandos


Alteração de variáveis


Controle de fluxo


Uso de IF e LOOP


Estado do programa muda durante execução


O que é “estado”?

Valores atuais do programa.

Exemplo:

SALDO = 100

Depois:

SALDO = 200

O estado mudou.


Estruturas clássicas do imperativo


IF

Decisão.


PERFORM

Repetição COBOL.


GO TO

Desvio fluxo.


MOVE

Movimentação dados.


COMPUTE

Cálculo.


Exemplo COBOL batch

READ CLIENTE
IF SALDO > 0
   WRITE RELATORIO
END-IF

Fluxo típico imperativo

INICIO
 ↓
LER DADOS
 ↓
PROCESSAR
 ↓
ATUALIZAR
 ↓
GERAR SAÍDA
 ↓
FIM

Por que o paradigma imperativo domina no mainframe?

Porque ele funciona muito bem para:

  • processamento batch;

  • regras de negócio;

  • arquivos sequenciais;

  • grande volume de dados.


O COBOL é imperativo?

Sim.

Principalmente:

COBOL procedural clássico.


O Assembler é imperativo?

Totalmente.

Assembler é um dos exemplos mais “puros” de paradigma imperativo.


O JCL é imperativo?

Parcialmente.

Porque ele descreve:

sequência operacional.


Paradigma imperativo vs declarativo


Imperativo

Diz:

COMO fazer.


Declarativo

Diz:

O QUE deseja obter.


Exemplo SQL

SELECT NOME
FROM CLIENTES
WHERE SALDO > 1000

Isso é mais:

declarativo.


Porque o SQL não explica:

  • loops;

  • leitura;

  • memória;

  • fluxo detalhado.


Exemplo imperativo equivalente

LER CLIENTE
SE SALDO > 1000
   MOSTRAR NOME
LER PRÓXIMO

Paradigma imperativo em batch

Muito comum em:

  • COBOL;

  • SORT;

  • processamento sequencial.


Exemplo clássico batch

LER REGISTRO
VALIDAR
CALCULAR
GRAVAR
LER PRÓXIMO

Isso é extremamente comum no z/OS


O que é programação procedural?

Subtipo muito ligado ao paradigma imperativo.

Usa:

  • procedimentos;

  • rotinas;

  • subprogramas.


COBOL clássico é procedural


Vantagens do paradigma imperativo


Fácil entender fluxo


Controle detalhado


Excelente para batch


Ótimo desempenho


Muito eficiente em processamento massivo


Desvantagens


Pode ficar complexo


Muito código repetitivo


GO TO excessivo vira “spaghetti code”


Difícil manutenção em sistemas enormes


O que é spaghetti code?

Código confuso cheio de desvios.

Muito comum em sistemas antigos.


Curiosidades incríveis

1. Grande parte do sistema financeiro mundial roda lógica imperativa


2. COBOL foi criado pensando em processamento procedural


3. Mainframes executam bilhões de instruções imperativas diariamente


4. Muitos sistemas críticos possuem décadas de evolução imperativa


Erros comuns de iniciantes


1. Confundir paradigma com linguagem

Paradigma:
modelo lógico.

Linguagem:
ferramenta.


2. Usar GO TO demais


3. Não controlar estado das variáveis


4. Criar lógica procedural confusa


Como isso aparece no dia a dia?

Praticamente em:

  • COBOL;

  • batch;

  • JCL;

  • DB2 procedural;

  • CICS;

  • automação.


Exemplo real simplificado

LER CONTA
 ↓
VALIDAR
 ↓
CALCULAR JUROS
 ↓
ATUALIZAR DB2
 ↓
GERAR RELATÓRIO

Resumo rápido

ConceitoSignificado
ParadigmaEstilo de programação
ImperativoDiz como fazer
EstadoValores atuais
ProceduralBaseado em procedimentos
FluxoOrdem da execução
COBOLPrincipal exemplo no mainframe

Conclusão

O paradigma imperativo é um dos modelos mais importantes da computação e domina grande parte do desenvolvimento tradicional em mainframe IBM Z.

Ele organiza programas através de comandos sequenciais, decisões e alterações de estado, sendo a base do COBOL, Assembler e do processamento batch no z/OS.