Aller au contenu
Accueil

Paradigme (programmation)

Les paradigmes de programmation sont une façon de regrouper les langages de programmation en fonction de ce qu'ils font. Les langages peuvent se trouver dans plus d'un paradigme. Certains paradigmes s'intéressent à la façon dont le code est exéc…

Les paradigmes de programmation sont une façon de regrouper les langages de programmation en fonction de ce qu'ils font. Les langages peuvent se trouver dans plus d'un paradigme.

Certains paradigmes s'intéressent à la façon dont le code est exécuté, par exemple en permettant des effets secondaires ou en obligeant à faire les choses dans un certain ordre. D'autres paradigmes s'intéressent à la manière dont le code est regroupé, par exemple en le mettant en un ou deux morceaux (ou plutôt en plusieurs petits morceaux). D'autres encore s'intéressent à l'ordre et aux éléments qui font que le programme est tel qu'il est.

Il existe deux grands groupes de paradigmes, impératif et déclaratif. Une langue peut être les deux en même temps.

Contenu

·         1 Programmation impérative

·         2 Programmation déclarative

·         3 Autres paradigmes

·         4 Vue d'ensemble

·         5 Problèmes liés aux paradigmes

·         6 Histoire

o    6.1 Code machine

o    6.2 Langues de procédure

o    6.3 Programmation axée sur les objectifs

o    6.4 Les paradigmes déclaratifs

·         7 Pages connexes

·         8 Références

·         9 Autres sites web

Programmation impérative

Dans les programmes impératifs, les programmeurs donnent à l'ordinateur un ensemble d'étapes ordonnées qui doivent être effectuées pour faire quelque chose. Si quelqu'un voulait que l'ordinateur dessine une tête de chat, il pourrait donner des instructions comme "Dessinez un cercle ici, deux petits cercles là, deux triangles au-dessus", etc. Les programmes impératifs ont parfois de nombreux effets secondaires.

Il y a deux grands paradigmes impératifs, et bien souvent une langue aura les deux :

  • Structuré - L'ordinateur reçoit des instructions qui sont toujours dans un certain ordre. Des étapes telles que "revenir à l'étape 3" (appelées déclarations goto) ne sont pas autorisées.
    • Procédure - Le programme permet au programmeur de donner un nom à une liste d'ordres, ce qui transforme ces ordres en une "procédure" qu'ils peuvent utiliser plus tard. La plupart des langages structurés sont également procéduraux.
  • Orienté objet - Les idées sont expliquées à l'ordinateur à l'aide d'objets, de morceaux de code qui ont un ensemble d'ordres qu'ils peuvent recevoir et de quelques informations à leur sujet.

Programmation déclarative

Dans les paradigmes déclaratifs, le programmeur dit à l'ordinateur ce qu'il doit faire au lieu de lui dire comment le faire. S'il voulait que l'ordinateur dessine une tête de chat, il pourrait donner des instructions comme "Dessine un visage, dessine deux yeux, deux oreilles et une bouche".

Les paradigmes déclaratifs les plus connus sont :

  • Fonctionnel - La plupart du travail est effectué par des fonctions sans effets secondaires.
  • Logique - Un ensemble de faits est énoncé, puis une ou plusieurs "questions" sont posées.
  • Événement - Des morceaux de code sont programmés pour s'exécuter lorsque certaines choses se produisent (comme la mise sous tension de l'ordinateur).

Autres paradigmes

Certains paradigmes peuvent être trouvés à la fois dans les langages impératif et déclaratif. Ces paradigmes se trouvent généralement avec l'un des paradigmes ci-dessus au lieu d'aller de soi.

Vue d'ensemble

Les langages de programmation sont regroupés par paradigmes de la même manière que les machines peuvent être regroupées en fonction de leur utilisation.

Quelques langues s'inscrivent dans un seul paradigme principal, tel que :

  • Smalltalk (orienté objet)
  • Assemblée (impérative, mais non structurée ou orientée vers l'objet)
  • Haskell (fonctionnelle)
  • Prologue (logique)

La plupart des langues, cependant, sont dans plus d'un paradigme. Certaines de celles qui se distinguent par le fait d'en avoir plus d'une le sont :

  • Scala (orienté objet, fonctionnel, parallèle)
  • Visual Basic (piloté par les événements, orienté objet)
  • Common Lisp (procédural, fonctionnel, orienté objet, méta)
  • Schéma (fonctionnel, procédural, méta)
  • Perl (fonctionnel, procédural, méta, orienté objet, événementiel)
  • Python (fonctionnel, orienté objet, procédural)
  • Ruby (fonctionnel, orienté objet, procédural)
  • Langage Wolfram (fonctionnel, procédural, généralement déclaratif)
  • Oz (logique, fonctionnel, impératif, orienté objet)
  • F# (fonctionnel, impératif, orienté objet, méta)

Il n'est pas toujours bon d'avoir plus de paradigmes. Une fois, le fait d'avoir moins de paradigmes peut être une bonne chose, c'est lorsqu'il y a un langage qui n'est que fonctionnel. Une fonction dans l'une de ces langues fonctionne parfois moins bien (comme le fait de ne passer en revue que les parties d'un groupe de choses dont elle a réellement besoin) que si la langue était également procédurale.

De nombreux paradigmes de programmation sont aussi bien connus pour les choses qu'ils ne laissent pas faire que pour celles qu'ils laissent faire. Les langages fonctionnels en sont un exemple. Lorsqu'un langage fonctionnel est uniquement ou principalement fonctionnel, il ne permet généralement pas d'effets secondaires. La programmation structurée est un autre cas de figure : elle est différente des langages impératifs normaux parce qu'elle ne permet pas aux programmeurs d'utiliser des "déclarations goto" (déclarations indiquant au programme de passer à une étape antérieure). Pour cette raison, entre autres, les gens pensent parfois que les nouveaux paradigmes ne permettent pas assez de choses. Il est parfois acceptable que l'ordinateur ne laisse pas les gens faire des choses, cependant : cela peut aider les gens à éviter des problèmes avec leur code, et laisser l'ordinateur faire des suppositions pour qu'il puisse exécuter le code plus rapidement, ou même vérifier le code pour des problèmes avant que le code ne s'exécute !

Problèmes de paradigmes

Certaines personnes qui étudient les langages de programmation n'aiment pas que les paradigmes soient utilisés pour regrouper les langages de programmation, comme Harper et Krishnamurthi. Ces personnes disent que beaucoup de langages de programmation ne peuvent pas être simplement regroupés en paradigmes parce que les langages empruntent des choses et des idées à de nombreux paradigmes.

Histoire

De nouveaux paradigmes ont été créés au fil du temps, et les gens les ont soulignés soit à l'époque, soit en regardant en arrière. L'un des premiers paradigmes qui a été reconnu comme une nouvelle façon de programmer a été la programmation structurée des années 1960. L'idée d'un "paradigme de programmation" remonte à 1978, si ce n'est plus, lorsque Robert W. Floyd l'a utilisée en enseignant. Le mot "paradigme" tel que Robert le concevait a été utilisé pour la première fois par Thomas Kuhn dans son livre, The Structure of Scientific Revolutions (1962).

Code machine

Le paradigme de programmation le plus bas (le plus proche de la façon dont l'ordinateur aime comprendre les choses) et le plus ancien est le code machine, un paradigme impératif. Les directions du code machine ne sont qu'un ensemble de nombres dans un certain ordre. Le langage assembleur est un peu moins bas niveau (et un peu moins ancien). Dans le langage assembleur, les directions de l'ordinateur reçoivent des mnémoniques (noms plus faciles à retenir), et les adresses de mémoire (directions pour trouver une information dans l'ordinateur) peuvent recevoir des noms. On les appelle parfois langues de première et de deuxième génération.

Dans les années 1960, les langages d'assemblage ont été améliorés par l'ajout de nouvelles choses comme la COPIE de bibliothèque, les macros (des morceaux de code "spécial" qui ont été transformés en code normal avant que le programme ne commence à fonctionner), les procédures d'exécution (des ensembles de directions données à un nom et enregistrées pour plus tard), et les variables (des éléments donnés à un nom et enregistrés pour plus tard) de l'extérieur du programme. Cela permet d'utiliser du code dans plus d'un projet et de ne pas avoir à se soucier des problèmes spécifiques au matériel (problèmes qui n'arrivent qu'à un seul type d'ordinateur) grâce à des commandes (noms pour les instructions) comme READ/WRITE/GET/PUT.

L'assemblage était, et est parfois encore, utilisé dans des systèmes où il est important que le code soit rapide, et il est également beaucoup utilisé dans les systèmes embarqués car il permet à l'utilisateur d'avoir un contrôle exact de ce que fait la machine.

Langues de procédure

À la toute fin des années 1960, les gens ont commencé à inventer des langues de procédure. Ces langages de troisième génération (les premiers de ce que nous appelons aujourd'hui les langages de haut niveau) comportaient des mots en rapport avec ce qu'ils essayaient de résoudre. Par exemple,

  • COmmon Business Oriented Language (COBOL) - utilise des mots comme fichier, déplacer et copier.
  • TRADUCTION DE FORMULE (FORTRAN) - utilise des mots et des symboles mathématiques ( formes utilisées dans l'écriture et la frappe). Elle a été développée principalement pour les sciences et l'ingénierie.
  • ALGOrithmic Language (ALGOL) - conçu pour écrire des algorithmes (ensembles d'étapes indiquant à l'ordinateur ce qu'il doit faire). Il utilise des mots et des symboles mathématiques, tout comme FORTRAN.
  • Le langage de programmation 1 (PL/I) - était censé être utile à tous.
  • Beginners All purpose Symbolic Instruction Code (BASIC) - fait pour aider les débutants à programmer.
  • C - un langage de programmation destiné à faire beaucoup de choses. Dennis Ritchie y a travaillé de 1969 à 1973 aux AT&T Bell Labs.

Programmation axée sur les objectifs

Après avoir commencé à utiliser des langages procéduraux, de nombreuses personnes ont inventé des langages de programmation orientés objet. Dans ces langages, les données et leurs "méthodes" (façons de manipuler les données) sont mises dans un "objet". Certains programmeurs, comme Richard Stallman, ne sont pas d'accord avec le fait que les langages orientés objet sont meilleurs pour expliquer des idées à un ordinateur que les langages procéduraux.

Parce que la programmation orientée objet est un paradigme, et non un langage, les gens ont créé des langages d'assemblage orientés objet comme le HLA (High Level Assembly).

Les paradigmes déclaratifs

En même temps, certains font des langages de programmation déclaratifs. Un langage bien connu pour être déclaratif est le SQL (un langage permettant d'ajouter et de supprimer des choses dans les tables).

Pages connexes

  • Mindset
  • Système de type
  • Turing completeness

Questions et réponses

Q : Qu'est-ce qu'un paradigme de programmation ?

R : Un paradigme de programmation est une façon de regrouper les langages de programmation en fonction de leur mode de fonctionnement.

Q : Quels sont les deux principaux groupes de paradigmes ?

R : Les deux principaux groupes de paradigmes sont l'impératif et le déclaratif.

Q : En quoi les paradigmes impératifs et déclaratifs diffèrent-ils ?

R : Les paradigmes impératifs s'intéressent à la façon dont le code est exécuté, par exemple en autorisant les effets secondaires ou en obligeant à faire les choses dans un certain ordre, tandis que les paradigmes déclaratifs s'intéressent à la façon dont le code est regroupé, par exemple en mettant le code en un ou deux morceaux (ou au contraire, en plusieurs petits morceaux).

Q : Un langage peut-il être à la fois un paradigme impératif et déclaratif ?

R : Oui, un langage peut être à la fois un paradigme impératif et déclaratif.

Q : Comment un paradigme de programmation regroupe-t-il des langages ?

R : Les paradigmes de programmation regroupent les langages par ce qu'ils font. Ils examinent la façon dont le code est exécuté, comment il est regroupé, et quel ordre et quelles pièces composent le programme.

Q : Existe-t-il d'autres types de paradigmes de programmation que l'impératif et le déclaratif ?

R : Oui, il existe d'autres types de paradigmes de programmation que l'impératif et le déclaratif. Par exemple, certains s'intéressent à la façon dont le code est exécuté (comme autoriser les effets secondaires), tandis que d'autres s'intéressent à la façon dont le code est regroupé (comme regrouper le code en un ou deux morceaux).

Q : Chaque langage appartient-il à un seul type de paradigme de programmation ?

R : Non, chaque langage n'appartient pas à un seul type de paradigme de programmation ; certains langages peuvent appartenir à plus d'un type de paradigme.

Articles liés

Auteur

AlegsaOnline.com Paradigme (programmation)

URL: https://fr.alegsaonline.com/art/79379

Partager

Sources