Est-il possible de dire que la différence entre programmation impérative et programmation déclarative se situe simplement au niveau de l'abstraction?


Réponse 1:

Un peu, mais pas vraiment. Il s'agit de savoir combien vous devez considérer la machine.

La signification d'un programme impératif est ce qu'il fait à la machine. Le sens d'une déclaration est tout ce qu'elle désigne. Celles-ci sont appelées respectivement sémantique opérationnelle et sémantique dénotationnelle. Comme exemple d'un programme qui est clair sur le plan opérationnel mais qui ne dénote rien de particulier, considérez le fragment suivant de BASIC: 10 GOTO 10. En revanche, il est clair ce que signifie le texte suivant, mais cela n'oblige pas une machine à faire quelque chose en particulier: {"x": 7} (c'est un objet dont la propriété X a la valeur 7).

Vous pouvez et devez considérer les significations opérationnelles et dénotatives de votre programme. Par exemple, en C impératif, vous pouvez comprendre ce qu'est x + 1 plutôt que ce qu'il fait. Et dans Haskell déclaratif, vous devez comprendre le comportement opérationnel de foldl (+) [1..10000000] (car il risque de manquer de mémoire).

(Il y a plus de façons de comprendre la signification d'un programme informatique que celles-ci. C'est un domaine activement étudié.)


Réponse 2:

Ce n'est pas une chose utile à dire. Ce qui est abstrait est une partie très importante de la définition du déclaratif.

La programmation déclarative définit ce qui doit être et ne traite pas directement de la manière dont cela est réalisé. Cela nécessite la prise en charge du runtime, du framework et / ou des bibliothèques. La programmation impérative se concentre sur la façon dont les choses sont mises en œuvre et nécessite une abstraction supplémentaire pour atteindre le niveau «Comment les choses devraient être». Ces deux approches sont essentiellement opposées.


Réponse 3:

Ce n'est pas une chose utile à dire. Ce qui est abstrait est une partie très importante de la définition du déclaratif.

La programmation déclarative définit ce qui doit être et ne traite pas directement de la manière dont cela est réalisé. Cela nécessite la prise en charge du runtime, du framework et / ou des bibliothèques. La programmation impérative se concentre sur la façon dont les choses sont mises en œuvre et nécessite une abstraction supplémentaire pour atteindre le niveau «Comment les choses devraient être». Ces deux approches sont essentiellement opposées.


Réponse 4:

Ce n'est pas une chose utile à dire. Ce qui est abstrait est une partie très importante de la définition du déclaratif.

La programmation déclarative définit ce qui doit être et ne traite pas directement de la manière dont cela est réalisé. Cela nécessite la prise en charge du runtime, du framework et / ou des bibliothèques. La programmation impérative se concentre sur la façon dont les choses sont mises en œuvre et nécessite une abstraction supplémentaire pour atteindre le niveau «Comment les choses devraient être». Ces deux approches sont essentiellement opposées.