Quelle est la différence entre les paradigmes de programmation déclarative et procédurale?
-
06-07-2019 - |
Question
Quelle est la différence entre les paradigmes de programmation déclaratif et procédural ? Pourriez-vous donner quelques exemples?
Quels sont les autres paradigmes de programmation?
La solution
Impératif
Il existe plusieurs sous-paradigmes du paradigme de programmation impératif, tels que les paradigmes de programmation procédural ou orienté objet .
Dans le paradigme de la programmation impérative, vous décrivez l’algorithme pas à pas, à divers degrés d’abstraction.
Exemples de langages de programmation prenant en charge le paradigme procédural:
- C (et la plupart des autres langages hérités)
- PHP, principalement
- En un sens, toutes les langues principales
Orienté objet
Il fait généralement référence aux langages qui présentent une hiérarchie de types qui héritent des méthodes et des états, des types de base aux types dérivés, mais qui incluent également le code JavaScript inhabituel basé sur un prototype.
Exemples de langages de programmation prenant en charge le paradigme OO:
- Java
Déclaratif
Il existe plusieurs sous-paradigmes du paradigme de la programmation déclarative, tels que les paradigmes de la programmation fonctionnelle ou logique.
Dans le paradigme de la programmation déclarative, vous décrivez un résultat ou un objectif et vous l'obtenez via un " boîte noire " ;. Le contraire de impératif.
Exemples de langages de programmation prenant en charge le paradigme de programmation déclarative:
- yacc
- Treetop
- SQL
- Expressions régulières
- lex
- XSLT
- balisage, troff, CSS, VHDL
fonctionnel
La programmation fonctionnelle met l’accent sur l’application de fonctions sans effets secondaires et sans état modifiable. Les systèmes déclaratifs ci-dessus présentent certains aspects de la programmation fonctionnelle.
Exemples de langages de programmation prenant en charge le paradigme fonctionnel déclaratif:
- Haskell
- OCaml
- Scheme
- Erlang
- F #
- Scala
Autres conseils
La programmation déclarative est l'endroit où vous dites ce que vous voulez sans avoir à dire comment le faire. Avec la programmation procédurale, vous devez spécifier les étapes exactes pour obtenir le résultat.
Par exemple, SQL est plus déclaratif que procédural, car les requêtes ne spécifient pas les étapes pour produire le résultat.
Laissez-moi vous donner un exemple concret: j'ai besoin d'une tasse de thé.
Procédure:
- Accéder à la cuisine
- Obtenez du sucre, du lait et du thé,
- Mélangez-les et faites chauffer sur le feu jusqu'à ébullition
- Mettez cela dans une tasse et apportez-le-moi
Déclaratif:
- Apportez-moi une tasse de thé.
Dans un langage procédural, vous définissez l’ensemble du processus et indiquez les étapes à suivre. Vous venez de fournir des commandes et de définir comment le processus sera servi.
Dans un langage déclaratif, il vous suffit de définir la commande ou l'ordre et de le laisser au système indiquer comment exécuter cet ordre. Vous avez juste besoin de votre résultat sans fouiller dans la façon dont cela devrait être fait.
Programmation procédurale:
En programmation procédurale, lorsque le programme démarre, il suit un ensemble d’instructions. Les instructions peuvent changer en fonction du contenu de certains fichiers ou de la mémoire, mais dans l'ensemble, elles ne varient pas beaucoup. l'entrée dans le programme ne provient généralement pas d'une entrée utilisateur en temps réel, mais plutôt d'un ensemble de données pré-rassemblées.
Programmation déclarative:
Dans Déclarative Event, la programmation est centralisée autour d’un ensemble de données avec des actions facultatives que le programme peut entreprendre. Par exemple, chaque " événement " dans un traitement de texte, toute modification de la souris ou du clavier (ou du fichier) qui affecte les données, le (s) document (s). Ils n'ont pas besoin d'être effectués dans un ordre quelconque. La programmation événementielle prend la forme de petits programmes (gestionnaires d’événements) qui fonctionnent tous sur un ensemble de données commun, de sorte que chaque petit programme puisse utiliser les mêmes données, le document dans cet exemple.
Dans l’approche procédurale, vous codez votre instruction pour obtenir le résultat. Dans l’approche déclarative, vous définissez ce qui doit être résolu en tant que connaissance de la résolution du problème. Consultez l'approche procédurale ou déclarative que j'ai mise en œuvre dans les deux approches .
Comme vous le verrez dans l'exemple, en approche déclarative, vous n'avez pas besoin d'instruire HOW pour résoudre le problème.