127 votes

Différence entre la programmation déclarative et procédurale ?

Lors d'un de mes entretiens, on m'a demandé quelle était la différence entre les deux ( Declarative Programming y Procedural Programming ) et le problème est que je ne pouvais pas donner la bonne réponse qu'ils voulaient.

Donc, pourriez-vous s'il vous plaît me dire ce que le difference between them with examples .

Merci beaucoup d'avance.

Vos réponses vont certainement m'aider beaucoup pour les questions de ce genre lors des entretiens.

P.S : Si vous avez le temps, pourriez-vous me dire, à part ces deux-là et la programmation orientée objet, quels types de langages de programmation il existe ? Parce qu'ils peuvent aussi demander la différence entre les autres langages de programmation. Et il y a des questions similaires à celle-ci mais trop éparpillées.

Sincèrement.

131voto

DigitalRoss Points 80400

Déclaratif

Décrire un résultat et l'obtenir via une boîte noire. Exemples :

  • yacc
  • Treetop
  • SQL
  • Expressions régulières
  • lex
  • XSLT
  • balisage, troff, CSS, VHDL

Procédure

Décrire l'algorithme et les étapes du processus, à différents degrés d'abstraction.

  • C, la plupart des anciens langages
  • PHP, principalement
  • dans un certain sens, toutes les langues principales

Orienté objet

  • Tend à être dans la catégorie procédurale, se réfère typiquement aux langages qui présentent une hiérarchie de types qui héritent à la fois des méthodes et de l'état des types de base aux types dérivés, mais inclut également les langages basés sur des prototypes comme JavaScript. Il s'agit d'une dimension quelque peu distincte des autres catégories.

Fonctionnel

Tu as oublié celui-ci. Le contraire de programmation impérative Il met l'accent sur l'application de fonctions sans effets secondaires et sans état mutable. Les systèmes déclaratifs ci-dessus présentent certains aspects de la programmation fonctionnelle.

  • Schéma
  • Erlang
  • OCaml
  • Haskell
  • Lisp, selon. (Lisp mérite peut-être sa propre catégorie unique)
  • Clojure, en quelque sorte
  • Ruby, un peu moins
  • F#

77voto

Ned Batchelder Points 128913

La programmation déclarative consiste à dire ce que l'on veut 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, le langage SQL est plus déclaratif que procédural, car les requêtes ne spécifient pas d'étapes pour produire le résultat.

6voto

SattiS Points 38

Programmation procédurale :

Dans la programmation procédurale, lorsque le programme démarre, il suit un ensemble d'instructions. Les instructions peuvent changer en fonction du contenu d'un fichier ou d'une mémoire, mais dans l'ensemble, elles ne varient pas beaucoup. L'entrée du programme ne provient généralement pas de l'utilisateur en temps réel, mais plutôt d'un ensemble de données rassemblées au préalable.

Programmation déclarative :

La programmation événementielle déclarative se concentre sur un ensemble de données avec des actions optionnelles que le programme peut entreprendre sur celles-ci. Par exemple, chaque "événement" dans un traitement de texte est un changement de souris ou de clavier (ou de fichier) qui affecte les données, le ou les documents. Ils ne doivent pas nécessairement être exécutés dans un ordre quelconque. La programmation pilotée par événements prend la forme de petits programmes (gestionnaires d'événements) qui travaillent tous sur un ensemble commun de données, de sorte que chaque petit programme peut utiliser les mêmes données, le document dans cet exemple.

-2voto

Arash Aghlara Points 111

Dans l'approche procédurale, vous encodez votre instruction pour obtenir le résultat. Dans l'approche déclarative, vous définissez ce qui doit être résolu comme la connaissance de la résolution du problème. Jetez un coup d'œil à Approche procédurale ou déclarative exemple que j'ai mis en œuvre dans les deux approches.

Comme vous le verrez dans l'exemple, dans l'approche déclarative, vous n'avez pas besoin d'indiquer COMMENT résoudre le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X