Paradigmas de Programação

6 de outubro de 2009 Comente! Follow me!
Programação

Introdução

Um paradigma se define na forma como o programador lida com um determinado problema.

Muitos pensam que as linguagens de programação surgiram em uma escala linear, ou seja, que na primeira geração delas o homem se adaptava às máquinas e, depois de várias outras gerações, as linguagens evoluiram umas das outras e capacitaram as máquinas a fazer as necessidades humanas. Na verdade, as linguagens surgiram em diferentes trajetórias, cada uma seguindo um determinado paradigma. Além disso, não é verdadeira a proposição que diz que uma linguagem qualquer é, sem exceção, a evolução da linguagem anterior (historicamente).

As linguagens existentes hoje foram se adaptando a uma única forma de programação[bb] e às linguagens inseridas no mesmo paradigma. Dentre esses paradigmas, vou conceituar quatro, que são considerados os principais: paradigma imperativo, declarativo, funcional e orientado a objetos.

1. Paradigma imperativo

“Primeiro faça isso e depois faça aquilo.”

A frase acima resume o paradigma imperativo, também conhecido como paradigma procedural. O problema é analisado até que se encontre uma solução. Basicamente, é uma sequência de comandos que o computador executará, passo-a-passo, modificando dados e variáveis a fim de chegar ao resultado esperado. Algol, Basic, C e Pascal são algumas das linguagens de programação que seguem esse paradigma.

Exemplo em C do algoritmo de ordenação por inserção:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int InsertionSort(int *vetor, int tam){
	int i, j, elemento;
 
	for (i=1; i<tam; i++){
		elemento=vetor[i];
		j=i-1;
		while ((j >= 0) && (vetor[j] > elemento)){
			vetor[j+1] = vetor[j];
			j--;
		}
		vetor[j+1] = elemento;
	}
 
	return 0;
}

2. Paradigma declarativo

“Qual é o problema?”

O paradigma declarativo caracteriza-se pelo método preciso de descrever um problema, sem se preocupar com qual algoritmo será utilizado para resolvê-lo. A idéia é criar um algoritmo “universal”, capaz de solucionar qualquer problema. O problema se adapta a esse algoritmo[bb], e não o contrário. É baseado em axiomas (verdades universais) e regras de inferência. Prolog é uma linguagem lógica que ilustra essa definição.

Exemplo na linguagem PROLOG:

1
2
3
4
5
6
fatorial(0, 1). 
fatorial(N, F) :-
      N>0,
      Nmenos1 is N-1,
      fatorial(Nmenos1, X),
      F is X * N.

3. Paradigma funcional

Subdividir o problema em outras funções e resolver cada uma separadamente, pois os resultados encontrados serão utilizados posteriormente.

Sobre o paradigma funcional, é fácil ilustrar através de um fluxograma. Cada bloco recebe no topo uma entrada de dados e retorna, na base, os dados de saída. A solução geral é dividida em várias funções que, no final, se associam para mostrar o resultado na tela.

Um exemplo na linguagem Haskell:

1
2
3
4
5
pertence :: Eq t => t -> [t] -> Bool
pertence x (c:r)
    | x == c = True
    | otherwise = pertence x r
pertence x [] = False

Vários autores definem Programação Funcional dentro de Programação Descritiva, que é uma divisão bastante válida.

4. Paradigma orientado a objetos

Um conjunto de classes faz a interação entre objetos (instâncias) e, com a troca de mensagens entre eles, forma-se o software como um todo.

Praticamente tudo é objeto, cada qual com estrutura e comportamento próprios. Esses objetos são classificados em classes e comunicam entre si. Cada uma dessas representa um determinado fenômeno e seus objetos são organizados hierarquicamente. O conjunto de classes faz a interação entre objetos e a troca de mensagens entre eles forma o software como um todo.

Exemplo de código orientado a objetos em Java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Caminhao extends Veiculo {
 
    private double capacidade;
    private int numEixos;
 
    public Caminhao(double capacidade, int numEixos) {
        this.capacidade = capacidade;
        this.numEixos = numEixos;
    }
 
    public double calcularIPVA() {
        return 0.05 * this.getValor();
    }
}

Esse paradigma vem ganhando cada vez mais popularidade. Isso se dá devido ao grande número de vantagens em trabalhar com orientação a objeto, como a manutenção e flexibilidade do código quando se trabalha em sistemas de grande porte e com uma maior equipe de programadores.

Referência

BROOKSHEAR, J. Glenn. Ciência da Computação: uma visão abrangente . 5. ed

Compartilhe:

  • Print
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • PDF
  • Twitter
  • Add to favorites
  • RSS
  • Identi.ca


Comentários

  1. JÂNIO MARQUES 9 de junho de 2010

    Sou estudante do curso de análise e desenvolvimento de Sistemas do Sistema de Ensino a distância, moro em Belém do Pará, gostei muito da forma simples, clara e objetiva que você abordou e explicou o assunto.
    Espero no futuro poder contar com explicações, definições e conceitos sobre outros assuntos relativos a Linguagem de Programação de Computadores.

    Muito Obrigado e fique com Deus.

    JÂNIO MARQUES
    BELÉM-PA

  2. Tasio Pinheiro 27 de setembro de 2010

    Sou Estudante do Curso de Sistemas de Informação, gostei muito das definições.
    Espero que sempre atualizem essa paginas para posteriores esclarecimentos.

    SDS

  3. jose 3 de novembro de 2010

    Orientação a objetos: Conjuto de bibliotecas as famosas dlls, que se relacionam entri si, por referência, habilitando ou não suas classes, conforme a assinatura dessas classes.

  4. kauan 21 de fevereiro de 2011

    bom galera da info sou estudante e vou me especializar em programaçao e estava com umas duvidas dessa materia e voce me ajudou essas frases ai resumem tudo e e facil de aprender para passar no periodo valeu

    ABRAÇO PRA GALERA DA ANALISE DE SISTEMAS
    FAÇO NA CATOLICA DO TOCANTINS

  5. Sergio veinho 1 de outubro de 2011

    Boa tarde!
    Sou estudando do curso de Sistemas de Informação e estou com o seguinte trabalho pra ser entregue:
    Preciso de um mesmo algoritmo escreto em tres paradigmas diferentes. Pode ser um algoritmo bem simples tipo um fatorial com tres linhas de instrução, o importante é esse MESMO ALGORITMO estar escrito em tres paradigmas diferentes. Ah! podem estar em linguagem diferentes desde que eu consiga explicar no algoritmo o conceito do seu paradigma. Alguem pode me ajudar? sergiothu@hotmail.com (msn). Desde de já agradeço por toda e qualquer ajuda.

  6. Willas Mar 29 de outubro de 2011

    É isso aí! Gosto de gente que vai direto ao ponto! Um dia serei eu a explicar o que é paradigmas de programação.

  7. Fredy wache 16 de maio de 2012

    Sou estudade da universidade pedagogica e presidentente da associacao de estudantes delegacao de manica,cusro de matematica e informatica, gostei da maneira como voce abordou resumidamente este grande tema,foi trabalho do segundo grupo da minha turma e k foi facil trabalhar com este tema devido sua abordagem . Valeu meu irmao.

Deixe um comentário:

* Campo de preenchimento obrigatório.

XHTML: Você pode usar estas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Para mostrar uma foto nos comentários, use o Gravatar.