Pergunta

Qual é a diferença entre as marcas declarativa e processual de programação paradigmas? Poderia dar alguns exemplos?

O que existem outros paradigmas de programação?

Foi útil?

Solução

Imperativo

Existem várias sub-paradigmas do paradigma de programação imperativa, como o processual ou orientada a objetos paradigmas de programação.

No paradigma programação imperativa, você descreve o algoritmo passo-a-passo, em vários graus de abstração.

Exemplos de linguagens que suportam o paradigma processual programação:

  • C (ea maioria dos outros idiomas legados)
  • PHP, principalmente
  • Em certo sentido, todos os principais idiomas

Object-Oriented

Ele normalmente se refere a idiomas que apresentam um hierarquia de tipos que herdam ambos os métodos e estado de tipos base para tipos derivados, mas também inclui o inusitado JavaScript com base em protótipo.

São exemplos de linguagens de programação que suportam o paradigma OO:

  • Java

declarativa

Existem várias sub-paradigmas do paradigma de programação declarativa, como o funcional ou a lógica paradigmas de programação.

No paradigma de programação declarativa, você descreve um resultado ou um objetivo, e você obtê-lo através de um " preto caixa ". O oposto de imperativa.

Exemplos de linguagens que suportam o paradigma de programação declarativa programação:

  • yacc
  • Treetop
  • SQL
  • Expressões Regulares
  • lex
  • XSLT
  • marcação, troff, CSS, VHDL

Funcional

A programação funcional enfatiza a aplicação de funções sem efeitos colaterais e sem estado mutável. Os sistemas declarativas acima exibem determinados aspectos da programação funcional.

Exemplos de linguagens que suportam o paradigma funcional declarativa programação:

  • Haskell
  • OCaml
  • Esquema
  • Erlang
  • F #
  • Scala

Outras dicas

A programação declarativa é onde você dizer o que quiser sem ter que dizer como fazê-lo. Com programação procedural, você tem que especificar passos exatos para obter o resultado.

Por exemplo, SQL é mais declarativo do que processual, porque as consultas não especificar passos para produzir o resultado.

Deixe-me dar um exemplo do mundo real:. Eu preciso de uma xícara de chá

Processual:

  1. Vá para a cozinha
  2. Obter açúcar, leite e chá,
  3. Mix-los, e aqueça em fogo até ferver
  4. Coloque isso em um copo e trazê-lo para me

declarativa:

  1. Get me uma xícara de chá.

Em uma linguagem procedural, você define todo o processo e fornecer os passos como fazê-lo. Você apenas fornecer ordens e definir como o processo será servido.

Em uma linguagem declarativa, você apenas definir o comando ou ordem, e deixá-lo estar no sistema como completar essa ordem. Você só precisa do seu resultado, sem cavar em como deve ser feito.

programação procedural:

Na programação processual, quando o programa é iniciado, ele segue um conjunto de instruções. As instruções podem mudar com base em algum índice arquivo ou memória, mas no geral, não variam muito. a entrada para o programa não é tipicamente de entrada do usuário em tempo real, mas sim a partir de um conjunto pré-reunidos de dados.

Programação declarativa:

Em declarativa Evento de programação orientada centraliza em torno de um corpo de dados com ações opcionais o programa pode tomar sobre ele. Por exemplo, cada "evento" em um processador de texto é qualquer mouse ou teclado (ou arquivo) mudanças que afetam os dados, o documento (s). Eles não precisam ser realizados em qualquer ordem. programação orientada a eventos assume a forma de pequenos programas (manipuladores de eventos) que todo o trabalho em um conjunto comum de dados, de modo que cada pequeno programa pode usar os mesmos dados, o documento neste exemplo.

Na abordagem processual você codificar a sua instrução para alcançar o resultado. Na abordagem declarativa de definir o que precisa ser resolvido como o conhecimento de resolver o problema. Ter um olhar para exemplo abordagem processual ou declarativa I implementado em ambas as abordagens .

Como seria ver no exemplo, na abordagem declarativa, você não precisa instruir como resolver o problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top