Programação declarativa e imperativa são dois paradigmas comuns de programação. o diferença chave entre programação declarativa e imperativa é que A programação declarativa se concentra no que o programa deve realizar, enquanto a programação imperativa se concentra em como o programa deve alcançar o resultado.
Um paradigma de programação é usado para classificar uma linguagem de programação, dependendo do recurso. Também permite seguir um determinado padrão ou estilo para resolver um problema específico.
1. Visão geral e principais diferenças
2. O que é programação declarativa
3. O que é programação imperativa
4. Comparação lado a lado - programação declarativa versus imperativa em forma de tabela
5. Resumo
A programação declarativa pode ser explicada usando um cenário do mundo real. Suponha que o usuário precise verificar novos e-mails. Um método é ativar as notificações da caixa de entrada. O usuário precisa habilitar as notificações apenas uma vez e, sempre que um novo email chega, ele recebe uma notificação automaticamente. A programação declarativa é semelhante a isso. Fornece simplicidade. A programação declarativa expressa qual é o resultado necessário. Explica a lógica de uma computação sem descrever o fluxo de controle.
Figura 01: Paradigmas de programação
Um exemplo de programação declarativa é o seguinte. É multiplicar números de uma matriz por uma constante e armazená-los em uma nova matriz.
números var = [1,2,3];
var newnumbers = numbers.map (function (number)
retornar números * 5;
);
Console.log (novos números);
No exemplo acima, 'map' fornece instruções para iterar cada item da matriz e chamar a função de retorno de chamada para cada item e armazenar o valor de retorno na nova matriz. Isso dará a saída 5,10,15. Neste programa, o principal objetivo de multiplicar os números por 5 é alcançado usando a função de mapa. Ele percorrerá cada elemento e usará a função de retorno de chamada para calcular e armazenar os valores na nova matriz. Não é necessário fornecer todas as etapas. O foco principal é dado ao que deve ser alcançado.
A programação imperativa pode ser explicada usando um cenário do mundo real como antes. Para verificar os novos emails, o usuário pode fazer login no gmail e atualizar a página para verificar se recebeu novos emails ou não. Isso é semelhante à programação imperativa. Explica todos e cada passo envolvido para alcançar o resultado. Ele usa instruções para expressar as alterações no estado do programa.
A multiplicação dos elementos das matrizes por uma constante e o armazenamento dos valores em uma nova matriz na programação imperativa são os seguintes.
números var = [1,2,3];
var newnumbers = [];
para (int i = 0; i< numbers.length ; i++)
newnumbers.push (números [i] * 5);
Console.log (novos números);
No exemplo acima, numbers é uma matriz. Ao passar pelo loop, cada número é multiplicado por 5 e adicionado à matriz newnumbers. Após o término do loop, o conteúdo dos novos números será impresso 5,10,15.
Pode-se observar que o estilo imperativo fornece todas as etapas para a realização da tarefa. Ele expressa como iterar pela matriz usando a variável do contador 'i', quantas vezes iterar antes de sair do loop e como inserir os valores calculados nas novas matrizes, etc..
O mesmo problema foi resolvido usando programação declarativa e imperativa.
Programação declarativa versus imperativa | |
Programação declarativa é um paradigma de programação que expressa a lógica de uma computação sem descrever seu fluxo de controle. | Programação imperativa é um paradigma de programação que usa declarações que alteram o estado do programa. |
Foco principal | |
A programação declarativa enfoca o que o programa deve realizar. | A programação imperativa se concentra em como o programa deve alcançar o resultado. |
Flexibilidade | |
A programação declarativa fornece menos flexibilidade. | A programação imperativa fornece mais flexibilidade. |
Complexidade | |
A programação declarativa simplifica o programa. | Programação imperativa pode aumentar a complexidade do programa. |
Categorização | |
Programação funcional, lógica e de consulta cai para programação declarativa. | A programação processual e orientada a objetos se enquadra na programação imperativa. |
Este artigo discutiu a diferença entre dois principais paradigmas de programação, que são programação declarativa e imperativa. A diferença entre programação declarativa e imperativa é que a programação declarativa se concentra no que o programa deve realizar, enquanto a programação imperativa se concentra em como o programa deve alcançar o resultado.
1. "Programação Declarativa". Wikipedia, Wikimedia Foundation, 3 de abril de 2018. Disponível aqui
2. "Programação imperativa". Wikipedia, Wikimedia Foundation, 3 de abril de 2018. Disponível aqui
3.Lição 17 - Programação Imperativa vs Declarativa, Sam Nxstack, 11 de abril de 2017. Disponível aqui