http://pt.wikipedia.org/wiki/Paradigma_de_programação
Um paradigma de programação fornece (e determina) a visão que o programador possui sobre a estruturação e execução do programa. Por exemplo, em programação orientada a objetos, programadores podem abstrair um programa como uma coleção de objetos que interagem entre si, enquanto em programação funcional os programadores abstraem o programa como uma sequência de funções executadas de modo empilhado.
Um paradigma de programação fornece (e determina) a visão que o programador possui sobre a estruturação e execução do programa. Por exemplo, em programação orientada a objetos, programadores podem abstrair um programa como uma coleção de objetos que interagem entre si, enquanto em programação funcional os programadores abstraem o programa como uma sequência de funções executadas de modo empilhado.
Assim como diferentes grupos em engenharia de software propõem diferentes metodologias, diferentes linguagens de programação propõem diferentes paradigmas de programação. Algumas linguagens foram desenvolvidas para suportar um paradigma específico (Smalltalk e Java suportam o paradigma de orientação a objetos enquanto Haskell e Scheme suportam o paradigma funcional), enquanto outras linguagens suportam múltiplos paradigmas (como o LISP, Perl, Python, C++ e Oz).
Os paradigmas de programação são muitas vezes diferenciados pelas técnicas de programação que proíbem ou permitem. Por exemplo, a programação estruturada não permite o uso de goto. Esse é um dos motivos pelo qual novos paradigmas são considerados mais rígidos que estilos tradicionais. Apesar disso, evitar certos tipos de técnicas pode facilitar a prova de conceito de um sistema, podendo até mesmo facilitar o desenvolvimento de algoritmos.
O relacionamento entre paradigmas de programação e linguagens de programação pode ser complexo pelo fato de linguagens de programação poderem suportar mais de um paradigma.
Exemplos
- Programação estruturada, em contraste a Programação orientada a objetos
- Programação imperativa, em contraste de programação declarativa
- Programação de passagem de mensagens, em contraste de programação imperativa
- Programação procedural, em contraste de programação funcional
- Programação orientada a fluxos, em contraste de programação orientada a eventos
- Programação escalar, em contraste de programação vetorial
- Programação restritiva, que complementa a programação lógica
- Programação orientada a aspecto (como em AspectJ)
- Programação orientada a regras (como em Mathematica)
- Programação orientada a tabelas (como em Microsoft FoxPro)
- Programação orientada a fluxo de dados (como em diagramas)
- Programação orientada a políticas
- Programação orientada a testes
- Programação genérica
- Programação multiparadigma (como em Scala)
0 comentários:
Postar um comentário