Discussion:Langage de programmation

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

Cette page doit être dynamique du bandeau déroulant {{Palette Langages de programmation}}.

Nouvelle palette à inclure sur le coté[modifier le code]

Pour les pages traitant d'un langage de programmation particulier je vous propose d'utiliser la nouvelle barre à inclure (merci Piglop) : {{Infobox Langage de programmation}} en remplacement de {{Langages de programmation}} (qui est trop générale et ne permet pas de mettre des informations pertinentes pour chaque langage).

Voir par exemple des utilisations dans la page Ruby, Lisaac, Python (langage), Oz (langage)

Outs 17 octobre 2006 à 20:54 (CEST)[répondre]

il y a un problème dans la palette du coté XSLT est classé dans les langages fonctionnels alors que comme l'indique très bien la Classification des langages généralistes , ce n'est pas le cas Eamoureux 26 mars 2007 à 11:12 (CEST)[répondre]

interprété/compilé[modifier le code]

Dans le premier paragraphe il est dit que les langages de programmation peuvent être classés selon qu'ils sont compilés ou interprétés. Or cette caractéristique n'est pas propre au langage de programmation. En effet, certains langages peuvent être utilisés sous

différentes formes. Par exemple PHP peut être utilisé interprété (le plus souvent je pense), ou sous forme semi-compilée, ou compilé.

Que les sources soient compilées ou interprétées n'est ni une caractéristique de la grammaire du langage, ni de sa sémantique. Ce n'est donc pas propre au langage lui même.

Je propose donc de supprimer l'item de la liste. —Shiningfm (d) 26 mars 2009 à 22:55 (CET)[répondre]

---> Wikipédia:N'hésitez pas ! <--- parce que si tu poste un message de 5 lignes (ce qui est tout à fait louable) à chaque fois que tu veux changer deux mots sur l'article, et vu l'état dans lequel est l'article, ça risque d'être long ... :) Outs (d) 27 mars 2009 à 18:36 (CET)[répondre]

Programmation fonctionnelle naturelle[modifier le code]

Suite à une modification récente, je me demande si on peut dire que la programmation fonctionnelle peut être moins naturelle pour certains programmeurs ? Il me semblait que les programmeurs ont plus l'habitude de donner une suite d'ordres à un ordinateur plutôt que de lui expliquer comment résoudre un problème.

Pensez-vous que c'est subjectif de dire ça ? —Shiningfm (d) 14 mai 2009 à 23:19 (CEST)[répondre]

En fait, je suppose qu'on peut dire que la prof fonctionnelle est moins naturelle pour les développeurs habitués à l'impératif, comme on peut dire que la prog objet est moins naturelle pour le développeur habitué à l'assembleur, par exemple. Donc oui on peut le dire, mais ça ne me semble pas plus pertinent que de dire qu'un habitué du pastis aura du mal avec le ricard. C'est plus anecdotique qu'encyclopédique.
Par ailleurs, la programmation fonctionnelle ne consiste pas tout à fait à "expliquer comment résoudre un programme". Je dirais plutôt que là où le programmeur impératif va écrire une succession d'opérations en stockant les résultats intermédiaires, le programmeur fonctionnel va plutôt composer des fonctions, mais donc décrira lui aussi le calcul étape par étape.--Ig0r (d) 15 mai 2009 à 10:41 (CEST)[répondre]
Bien sur il y a une décomposition en étapes, mais ce que je voulais dire c'est qu'un langage fonctionnel est déclaratif, tout comme un langage logique. Je comprends l'image du pastis, mais je ne trouve pas que ça soit très approprié ici. Ce que je soulevais c'est que lorsqu'on suit un cours d'algorithmique, on décrit étape par étape la manière de résoudre un problème. A moins que j'aie suivi des cours d'algorithmiques très particuliers, ça ne me semble pas du tout anecdotique. —Shiningfm (d) 15 mai 2009 à 10:52 (CEST)[répondre]
Concernant vos cours d'algorithmique, je ne sais pas, mais pour citer un exemple, le premier cours d'informatique en première année de licence à l'université Paris 6 s'intitule programmation récursive, et présente des algorithmes récursifs avant de les implanter en Scheme. De même, de nombreuses université américaines présentent la programmation fonctionnelle dans leurs cours d'introduction à la programmation (c'est d'ailleurs pour cela qu'a été développé DrScheme.--Ig0r (d) 15 mai 2009 à 11:16 (CEST)[répondre]
OK ! Je me basais uniquement sur les différents cours que j'ai connus et que j'ai consulté sur internet... A l'évidence ce n'est pas représentatif... Alors merci pour ces précisions ! —Shiningfm (d) 15 mai 2009 à 13:17 (CEST)[répondre]

Tableau des Listes Swadesh des langages de prog[modifier le code]

Je cherche désespérément sur le Net un tableau récapitulatif de ce type, que nous aurions tout intérêt à concevoir dans cet article :

Fonctions PHP Python ...
Commentaire // #
Déclaration Aucune def
...

JackPotte (d) 21 mai 2009 à 11:32 (CEST)[répondre]

J'ai peur que ce type de tableau ait du mal à passer la barrière des paradigmes. Par exemples, trouver des parallèles entre le langage C et le Prolog me parait difficile. De même, pour reprendre l'exemple, les déclarations de variables ne sont pas quelque chose d'universel, c'est surtout présent dans le style impératif. D'ailleurs le 'def' de Python, si je ne me trompe, sert à définir et non à déclarer.
Enfin bref, l'idée est bonne, mais elle serait peut-être plus à utiliser pour les paradigmes de façon individuelle. --Ig0r (d) 21 mai 2009 à 13:42 (CEST)[répondre]
Peut-être sur l'article Programmation impérative ? Romainhk (QTx10) 21 mai 2009 à 15:20 (CEST)[répondre]
En partant d'une matrice de type en:Comparison_of_programming_languages_(basic_instructions). JackPotte (d) 7 octobre 2009 à 21:15 (CEST)[répondre]
J'y vois peu d'intérêt. Même paradigme par paradigme l'idée n'est pas forcément bonne. Je pense que sauf en trouvant de très bons critères, la table sera très peu dense. Une table de ce type peut être pratique si les choses à comparer sont très proches. Mais généralement chaque langage essaye de se différencier de ses pairs sauf quand on a des "successeurs". —Shiningfm (d) 7 octobre 2009 à 22:31 (CEST)[répondre]

Neutralité sur le choix des langages cités[modifier le code]

Je pense qu'il y a un problème de neutralité de point de vue dans l'article dans le sens où on cite des langages pour illustrer certaines caractéristiques ou certains usages. Cependant pourquoi citer tel langage plutôt qu'un autre ? D'ailleurs certains langages sont beaucoup cités (genre python). Ce qui me fait réfléchir à cela est le précédent topic de conversation. Dans un tableau de ce type, comment choisir les langages qui y apparaissent ? C'est d'ailleurs une des raisons pour lesquelles j'avais supprimé le grand tableau qui était avant dans l'article (en plus du fait qu'il était relativement "vide").

Donc la question est : trouvez-vous que l'article respecte la neutralité de point de vue sur ce sujet ? Sinon, comment faire pour choisir les langages cités ? Se référer à leur popularité (en admettant qu'elle soit évaluable) n'est pas très encyclopédique... —Shiningfm (d) 21 mai 2009 à 19:51 (CEST)[répondre]

Une idée comme ça en passant : et si on prenait comme règle de ne citer un langage qu'un fois dans tous l'article ? Certes cela ne résout pas totalement le problème mais ça serait déjà plus clean. Outs (d) 22 mai 2009 à 17:34 (CEST)[répondre]
Ce n'est pas une mauvaise idée. Cependant, citer plusieurs fois un langage permet de mettre en évidence qu'il existe des langages multi-paradigmes. Quoique le dire dans un paragraphe est sûrement suffisant...
Pas évident.—Shiningfm (d) 22 mai 2009 à 17:49 (CEST)[répondre]
Il pourrait aussi être utile de limiter le nombre de fois qu'un langage est cité dans l'article : est-ce vraiment intéressant de citer Python à quatre ou cinq endroits différents dans l'article ? En se limitant par exemple à une citation maximum par langage, peut-être que ça inciterait à trouver des exemple caractéristiques, plutôt que de remettre à chaque fois tous les langages multi-paradigmes...--Ig0r (d) 24 mai 2009 à 10:13 (CEST)[répondre]
Tout à fait d'accord, mieux vaut essayer de trouver des exemples caractéristiques. Ou alors de vraiment illustrer le propos, en citant des langages qui mettent en oeuvre différemment telle ou telle caractéristique (comme dans le paragraphe sur les langages objet).—Shiningfm (d) 24 mai 2009 à 12:26 (CEST)[répondre]

Je serais partisan d'ajouter ces 2 langages, permettant entre autres des programmes .sh et .cmd ou .bat dans cet article et dans {{Palette Langages de programmation}}. JackPotte (d) 22 mai 2009 à 23:51 (CEST)[répondre]

L'idée n'est pas forcément d'ajouter des langages (l'article ne doit pas se résumer à une liste de langages), mais des paradigmes ou des familles de langages. Mais pour reprendre ton idée, on pourrait rajouter une partie sur les langages de shell, ou les langages de scripts (mais dans ce cas il faudrait réussir à les définir précisément, ce qui n'a pas l'air si évident que ça, vu que cette appellation semble plutôt venir de l'utilisation qui est faite d'un langage, et non du langage en lui-même...).--Ig0r (d) 24 mai 2009 à 09:51 (CEST)[répondre]
Oui, pas évident à définir... Par exemple, beaucoup mettent python, ruby et compagnie dans les langages de scripts parce qu'ils sont "interprétés".—Shiningfm (d) 24 mai 2009 à 12:47 (CEST)[répondre]

Suppression des listes : suggestion[modifier le code]

Je suis d'accord avec la suppression des listes dans l'article ; mais ne devrait-on pas en faire des sous-catégories de Catégorie:Langage de programmation ? (pour ceux que l'on peut classer bien entendu :.) comme par exemple, Catégorie:Langage de requête ou Catégorie:Langages pour pages Web dynamiques. Romainhk (QTx10) 7 septembre 2009 à 10:34 (CEST)[répondre]

Je suis moi aussi d'accord avec cette suppression, et content que ça ait été fait ! Par contre pour recréer les listes, c'est pas si évident. Vouloir absolument catégoriser les langages va aboutir à des incohérences comme avant. De plus il me semble que faire une liste manquera toujours cruellement d'exhaustivité. Autre problème : si ce n'est pas exhaustif, comment choisir les langages ? Il y aura toujours ceux qui voudront rajouter "leur" langage, qui n'a pas forcément autant de notoriété que ceux qu'on va décider de citer. Et si on cite un langage peu notoire, pour quelle raison ne pas tous les citer ? Et surtout comment choisir les catégories ? A mon humble avis, il faut d'abord répondre à toutes ces questions (au moins) avant de se lancer là dedans !
Pour finir je suis tout à fait d'accord avec la catégorie langage de requête qui est une sous catégorie de langage informatique et non de langage de programmation. —Shiningfm (d) 7 septembre 2009 à 12:34 (CEST)[répondre]
Pareil, la suppression des listes de l'article c'est bien. Le remplaçant naturel c'est bien sur avec le système de catégorie. Alors c'est un gros boulot assez délicat de faire des bon classements, en plus je suis pas persuadé que les gens se servent vraiment des catégories pour naviguer dans WP. Bon ca reste le seul moyen viable. Outs (d) 7 septembre 2009 à 21:15 (CEST)[répondre]
Personnellement, je préfère renvoyer le lecteur aux catégories ({{Article détaillé}} ou {{Catégorie détaillée}}) plutôt que de créer de nouvelles listes toujours incomplètes et NPOV : au moins, les catégories sont complètent et se mettent à jour toute seules Émoticône sourire. J'ai commencé en me basant sur le diff de IgOr (ça reste incomplet et imparfait) :
Pour les langages de définition de données il y a par exemple SQL (ou plutôt la partie DDL de SQL), XML Schema, les DTD, Relax NG, RDF... Donc pour répondre à la question, non ce ne sont pas des spécialement des langages XML. Mais je pense qu'on peut ranger ces articles dans la catégorie (je ne sais pas comment on fait lol)—Shiningfm (d) 8 septembre 2009 à 14:16 (CEST)[répondre]
Ok, je ne connais pas trop ces langages là ; j'ai d'ailleurs mis Catégorie:Langage de définition de données dans Catégorie:Langage de programmation ...
Pour catégoriser, il faut passer sur chaque article et ajouter : [[Catégorie:Langage de définition de données]] (voir Aide:Catégorie/Syntaxe), mais je t'ai devancé du coup Émoticône. Romainhk (QTx10) 9 septembre 2009 à 11:13 (CEST)[répondre]
OK mais je ne mettrais pas langage de définition de données dans langage de programmation... Les langages de définitions de données sont souvent en lien avec les bases de données. Or tout ce qui est langage de requête n'est pas vraiment langage de programmation. Une requête n'est pas vraiment un programme. Je mettrais donc les langages de définition de données dans la catégorie langage informatique mais pas dans langage de programmation.—Shiningfm (d) 9 septembre 2009 à 20:18 (CEST)[répondre]
icône « fait » Fait. Romainhk (QTx10) 10 septembre 2009 à 09:35 (CEST)[répondre]

Avancement B[modifier le code]

On pourrait mettre l'article en avancement B non ? Peu de sources sont citées pour qu'il devienne un bon article, mais je pense qu'on n'est plus au début. —Shiningfm (d) 19 novembre 2009 à 23:36 (CET)[répondre]

Presque. Pour moi, cela manque un tout petit peu de wikification et parfois certains passages sont encore à relire car trop obscure pour un néophyte ("généralités" est à revoir notamment). Il manquait aussi quelques illustrations alors j'ai ajouté une section la littérature autour des langages et sur un code source! Romainhk (QTx10) 20 novembre 2009 à 09:51 (CET)[répondre]
Cool ! Par contre la chapitre sur les langages fonctionnels est faux maintenant : on ne peut pas dire que les principaux langages fonctionnels soient OCaml Haskell et Python... Ce ne sont que des exemples, et du coup je sais pas trop comment formuler ça maintenant ! —Shiningfm (d) 20 novembre 2009 à 11:56 (CET)[répondre]
icône « fait » Fait. : Par exemple (pour chercher compliqué :). Romainhk (QTx10) 20 novembre 2009 à 14:07 (CET)[répondre]
Merci pour la correction de ce contresens sur "dénombrable"! (Smiley oups) Romainhk (QTx10) 21 novembre 2009 à 09:17 (CET)[répondre]
lol de rien —Shiningfm (d) 21 novembre 2009 à 11:59 (CET)[répondre]
Relecture faite ; Ok pour un avancement B ! Romainhk (QTx10) 23 novembre 2009 à 11:59 (CET)[répondre]
Jai relu aussi ! Pourquoi avoir changé l'ordre des sections dans "Particularités" ? Ça me dérange pas du tout, mais comment as tu choisi le nouvel ordre ? —Shiningfm (d) 23 novembre 2009 à 17:02 (CET)[répondre]
Merci! C'est un classement assez subjectif au final Émoticône sourire mais j'ai essayé de mettre en premier ce qui est le plus simple et le plus frappant au premier regard (détails visuels) pour finir par des notions plus abstraites ou plus "cachées" qui prennent beaucoup de lignes à être codé. Romainhk (QTx10) 23 novembre 2009 à 22:37 (CET)[répondre]
C'est malin, moi qui voulait introduire l'article Langage de balisage ;). En fait, il y a probablement une contradiction de définition sur les articles Langage de définition de données (spécialisé aux BDD) et Langage de balisage ("sous-classe des langages de description"). XML et LaTeX sont des langages de balisage mais pas des langages de définition de données. En même temps, je ne pense pas que les langages de balisage soient des paradigmes à part entière (on ne peut pas parler de réflexivité, d'évaluation, etc. ; seulement de typage et de syntaxe) donc on pourrait créer une séction supplémentaire dans "5 Utilisations" ?
Pour ta question sur les langage de présentation, je ne sais pas :S. Romainhk (QTx10) 25 novembre 2009 à 14:01 (CET)[répondre]
En fait, un langage de balisage est un langage qui utilise des balises dans sa syntaxe.C'est juste une particularité syntaxique. LaTeX est donc bien un langage de balisage, ainsi que XML. XML est bien un langage de définition de données, avec un modèle d'arbre. Au même titre que le DDL de SQL permet de définir des données relationnelles. Il faut faire attention parce qu'un LDD n'est pas forcément spécialisé aux BDD... L'article Langage de définition de données est vraiment très incomplet, et, je pense, fais la confusion avec la partie DDL de SQL.
Et pour répondre, on ne peut pas mettre au même niveau langage de balisage et langage de définition de données : un LDD est une utilisation alors que les balises c'est juste de la syntaxe. Par exemple il y a plein de langage de balisage qui n'ont pas du tout la même utilisation (tous les dialectes XML : XHTML est un langage qui définit des documents alors que XSLT un langage de transformation...). Donc langage de balisage c'est pas un paradigme. C'est comme si on disait qu'il y avait le paradigme des langages dont les instructions terminent pas un point-virgule !
Après est-ce que LaTeX est un langage de définition de données... C'est délicat car il permet de définir des documents, tout comme HTML.. Les documents sont des données ? De toute façon on est un peu hors sujet ici puisque ce ne sont pas réellement des langages de programmation (pas des programmes mais des données ou des documents !)—Shiningfm (d) 25 novembre 2009 à 14:48 (CET)[répondre]
Je serais tenté de dire que les langages à balises sont des langages de programmation car le problème qu'ils résolvent est la présentation (affichage ou interprétation) de données qui leurs sont intégrées ; il n'y a qu'une instruction : créer un noeud... mais je pars dans le TI là :)
Ok ; si le balisage est plus une particularité syntaxique ont pourrait l'intégrer à la section "Syntaxe" alors, non ? Romainhk (QTx10) 25 novembre 2009 à 15:37 (CET)[répondre]
On pourrait voir ça comme ça pour les langages de présentation, mais la frontière est mince entre un simple format et un vrai langage de programmation. Par exemple PDF est vraiment complet, avec des structures de contrôle etc. alors qu'on aurait tendance à penser que c'est simplement un format de document. Le problème en considérant que LaTeX par exemple est un langage de programmation, c'est que l'on pourrait du coup faire entrer le format de document Word ou OpenOffice pour ne citer qu'eux, ou tout autre format de document. Quoiqu'il est vrai que LaTeX est plus qu'un format de document puisqu'il permet une certaine interaction avec le système...
Enfin c'est pas évident ... Sinon pour les balises oui c'est une bonne idée de l'intégrer dans syntaxe ! —Shiningfm (d) 25 novembre 2009 à 17:12 (CET)[répondre]
En fait il y a une différence entre LaTeX qui dit "affiche ceci" "écrit cela", et un simple format de document où c'est le logiciel qui va seulement analyser le document et agir en fonction, sans que le document lui même ne lui donne de directives. On peut considérer LaTeX comme du langage de programmation dans ce sens je pense. Pour XML la question est différente : de nombreux dialectes XML sont des formats de documents (XHTML etc.) qu'on ne peut pas considérer comme programmes, mais certains permettent d'écrire des programmes... genre Apache XSP, ou XSLT (qui est plutôt un langage de requête mais bon...)—Shiningfm (d) 25 novembre 2009 à 17:16 (CET)[répondre]
Houla, normalement on ne considère pas que Latex est un langage de programmation. D'ailleurs il n'existe pas de logiciel programmé en Latex. On peut définir des macro dans les packages mais ce ne va pas très loin. Outs (d) 25 novembre 2009 à 20:25 (CET)[répondre]
C'est vrai on s'emporte peut être un peu ! Cependant, PostScript et PDF sont définis par Adobe comme des langages de programmation, avec des objets, des procédures et tout ce qui va avec. TeX contient également des structures de contrôle (boucles, tests...) —Shiningfm (d) 25 novembre 2009 à 22:00 (CET)[répondre]

XSLT est bien un langage de programmation. Il comporte variables, structures de contrôle, système de types... XSP (eXtensible Server Pages) est aussi un langage de programmation, qui permet de générer des servlets Java.

Bref ce n'est pas parce qu'on a des balises qu'on n'a pas affaire à un langage de programmation. —Shiningfm (d) 1 décembre 2009 à 14:06 (CET)==[répondre]

Critère de complétude[modifier le code]

J'ai décidé de faire le ménage dans la classification de base des langages informatiques, l'ontologie actuelle est déficiente.

Nous devons définir trois types fondamentaux de langages informatiques :

1) Les langages de programmation, conçus dès l'origine pour être Turing-complet, pour être utilisé par des programmeurs et possédant, habituellement, la possibilité de liaison statique et dynamique à des librairies externes.

2) Les langages informatiques dédiés au traitement de problèmes spécifiques, comme le langage SQL qui n'est devenu accidentellement complet qu'à partir de 1999 quand il a été possible d'écrire des requêtes récursives ou un langage de description de document comme postscript, complet dès le départ (automate à deux piles) mais pour lequel aucune liaison à une librairie n'est possible. En général, programmer avec un tel langage est périlleux.

3) Les langages non Turing-complet comme PERE, HTML, RTF, etc.

Je ne dit pas qu'il n'y a plus de zone d'ombre mais au moins ça permet une classification sans ambiguïté la plupart du temps. Il faudrait simplement réserver le terme de langage de programmation au cas #1 et indiquer pour le cas #2 que ces langages sont turing-complet mais pas spécifiquement conçus pour la programmation. Ainsi, il serait possible de ramener plusieurs langages dans la page langages informatiques et faire un beau grand ménage conceptuel.

--Nipou (d) 15 août 2011 à 05:42 (CEST)[répondre]

Je me permet de revenir sur cette remarque. Je suis assez pour cette idée, mais pour moi un langage de Programmation n'est pas nécessairement Turing-complet. Le but but d'un langage de programmation est d'être compilable et/ou interprétable. Par exemple, Lustre est pour moi un langage de programmation non Turing-complet (on ne peut y coder que des automates finis), Coq est un langage que je considère aussi être langage de programmation (même si je reconnais que ce point de vue est discutable); pour VHDL, j'ai un doute qu'il soit Turing-complet. Pour moi, ce qui différe un langage de programmation d'un autre langage informatique est la notion de calcul sous jacente. Typiquement le langage des fichiers de configuration de Xorg n'est pas un langage de programmation par exemple, même s'il est un langage informatique.
Sedrikov (d)

Voilà pourquoi la notion de Turing complet retenue par la plupart des auteurs de manuels universitaires (voir mes deux citations dans l'article) permet de trancher de façon formelle la question. Cette définition rejoint parfaitement votre notion de «calcul sous-jacent», un langage non Turing complet ne permet pas de définir toutes les fonctions calculables. Tout langage plus faible est un langage de configuration pour une machine de Turing particulière représentant un espace d'état inférieur à une machine de Turing universelle. Le critère de compilation/interprétation est fallacieux car le langage machine est un langage de programmation, d'autant plus quand ce langage machine est un langage évolué comme le BASIC (langage machine de certains micro-controleurs). --Nipou (d) 11 mai 2012 à 00:51 (CEST)[répondre]

En ce qui concerne les automates de puissance inférieur à la machine de Turing, il faudrait également parler de langages de configuration. En ce qui concerne vos exemples que je ne connais pas, j’ai facilement trouvé que « Lustre with unbounded integers is Turing-complete » et que Coq est aussi puissant que le lambda calcul dont il s’inspire et est donc, évidemment, Turing-complet. Un langage de description comme VHDL est également certainement Turing-complet car il permet de concevoir un système électronique aussi puissant qu’un ordinateur avec de la RAM et un programme en ROM.--Nipou (d) 12 mai 2012 à 06:29 (CEST)[répondre]

---
Je ne sais pas où tu as lu que Coq est aussi puissant que le lambda calcul dont il s’inspire. Le lambda calcul non typé est Turing complet. Le lambda calcul simplement typé ne l’est pas. Pour garder la Turing complétude sans perdre le typage, des gens ont ajouté des combinateurs de points fixe dans les langages usuels (OCaml, Haskell, …). Sans un tel combinateur, on ne peut pas faire de récursion tout en restant typé. Coq a choisi un combinateur plus contraignant que celui en usage en OCaml, ou Haskell, dans l’optique de garantir la terminaison de fonctions ; comme on ne peut y écrire de fonction close qui ne termine pas, il n’est pas Turing-complet. On peut y décrire les machines de Turing, ainsi que décrire une étape de calcul, mais pas exécuter la machine. En gros on peut demander d’exécuter 100, 1000, 10000 itérations, mais on reste borné, on ne peut pas demander d’éxecuter des itérations ad vitam eternam.
Quant à Lustre, c’est un langage synchrone, un programme Lustre peut simuler une machine de Turing à condition de lui fournir des entrées en continu.
Sedrikov (d)

Le cas de VHDL est extrêmement intéressant car il s’agit d’un langage de programmation où on peut voir la notion de possibilité de création de toute machine constructible ; soit la définition de machine universelle de Turing.--Nipou (d)

Tout interpréteur est une machine de Turing universelle. Sedrikov (d)

Voici des critères plus clairs[modifier le code]

1) Un langage de programmation est nécessairement Turing-complet mais par extension, s'il ne possède que la puissance d'un automate inférieur de la hiérarchie de Chomsky et répond parfaitement aux autres critères, il est possible d’utiliser le vocable de langage de programmation bien que le terme de configuration serait plus juste.

---
Tu veux dire un langage ? Il y a toute une famille de langages entre les bêtes automates et les langages Turing Complets.
Je ne suis pas d’accord avec ce point, mais je n’ai pas d’objection si dans l’article il est mentionné qu’il existe aussi des acceptations un peu plus larges qui ne vérifient pas ce point.
Sedrikov (d)

2) Il est conçu pour être utilisé par des programmeurs et pour générer un programme c’est-à-dire une entité exécutable acceptant au minimum une entrée quelconque, effectuant un traitement et générant une sortie.

---
Les entrées peuvent être codées en dur dans le programme. Par exemple, si tu veux générer une image d’un ensemble de Mandelbrot, tu ne vas pas forcément passer d’arguments à ton programme.
Sedrikov (d)
Il ne s'agit plus d'une application au sens mathématique, un programme qui ne possède qu'une seule sortie est sans aucun intérêt calculatoire. Pourquoi ne pas directement coder l'image de la sortie dans ton exemple, le traitement devient ici un artifice inutile. Le seul intérêt d'un traitement logico-mathématique est qu'il puisse s'appliquer à différentes entrées, dans le cas contraire la notion de fonction calculable, d'algorithme et d'informatique est inexistante.--Nipou (d) 29 septembre 2012 à 05:27 (CEST)[répondre]
Parce que l’on ne la connait pas à l’avance et qu’on ne veut pas la calculer à la main ? avant de coder en dur la sortie, il faut au moins avoir fait une fois le calcul, d’une manière ou d’une autre. Enfin on s’égare vers les travaux personnels là, la gestion des entrées sorties n’est pas vraiment le sujet de cet article, et tu n’as donné de source significative qui listent ça comme caractéristiques essentielles d’un langage. TomT0m (d) 29 septembre 2012 à 15:04 (CEST)[répondre]

3) Il est en général compilé ou interprété.

---
Je dirais même qu’il l’est systématiquement. À moins que quelqu’un n’ait un contre exemple en tête.
Sedrikov (d)
Le langage machine est un langage de programmation. D'ailleurs, avant l'invention des compilateurs et des interpréteurs il s'agissait du seul existant.--Nipou (d) 29 septembre 2012 à 05:27 (CEST)[répondre]

Nous voyons que par le critère 1 et par le critère 2 qu’un automate fini n’est pas un langage de programmation car il ne permet pas d’effectuer un traitement intermédiaire entre l’entrée et la sortie.

---

Pourquoi dis-tu cela ? Les transducteurs font du traitement…
Sedrikov (d)

Le langage PostScript n’est pas un langage de programmation car il n’accepte pas d’input.

Coq ne permet pas de traiter une entrée quelconque comme SQL ; ils ne gèrent qu’un format très particulier de données.

VHDL est plus proche d’un langage de programmation mais l’objectif principal est de simuler le fonctionnement d’une machine physique (créer du hardware) et non pas de créer un exécutable. --Nipou (d) 12 mai 2012 à 17:32 (CEST)[répondre]

Je ne pense pas que ne pas accepter de flux d’entrée soit un critère pour un langage de programmation.
Comme je l’ai dit plus haut, on peut faire beaucoup de choses intéressantes sans avoir besoin de gérer des flux d’entrée-sortie. Le langage LOGO par exemple, si on lui retire les entrées-sorties (à supposer qu’il en ait) est quand même à considérer comme un langage de programmation.
Un système sans entrée-sortie est un trou noir ou rien ne se passe... c'est la fonction vide sans entrée et sans sortie, ce n'est pas une fonction calculable.--Nipou (d) 29 septembre 2012 à 05:27 (CEST)[répondre]
Pour ce qui est de Coq, je pense que tu as une vision assez fausse de ce que c’est. Pour moi, Coq gère les données au sens le plus général que je connaisse. Je ne sais pas quelles données sont gérées par SQL, mais je doute vraiment que SQL ait un format de données qui ne soit pas géré par Coq.
Sedrikov (d)
Coq n’est pas Turing complet, mais la seule chose qui l’en empêche ce sont des restrictions destinées à garantir la terminaison du programme … Coq (logiciel) peut clairement servir à programmer tous les types de calcul que l’ont veut, avec pour objectif de pouvoir garantir et prouver les propriété du programme que l’on écrit (« de synthétiser des programmes certifiés à partir de preuves constructives de leurs spécifications. », un peu comme la méthode B, qui permet à la fois d’écrire les spécification du programme et d’écrire un programme qui respecte ses spécifications) . Ce n’est pas du tout de la configuration mais bel et bien de la programmation. Par contre SQL est plutôt un langage de requettage et de gestion de base de données et est bien plus spécifique. Ça n’en fait pas pour autant un langage de configuration.
Il est impossible de considérer la notion de langage de programmation en dehors de la théorie des automates. Un langage de programmation doit accepter tous les langages acceptables par une machine de Turing universelle (lambda), dans le cas contraire il s'agit d'un langage de configuration, soit un langage accepté par une machine de Turing particulière (application calculable inférieure à la machine de Turing).--Nipou (d) 29 septembre 2012 à 05:36 (CEST)[répondre]
C’est une définition discutable, il faut la sourcer. Ça m’a tout l’air d’une définition de langage de programmation relativement personnelle. On parle de programmation d’un magnétoscope même si ce n’est pas une machine Turing-complète. Je cite l’article anglais

« Definitions - A programming language is a notation for writing programs, which are specifications of a computation or algorithm.[1] Some, but not all, authors restrict the term "programming language" to those languages that can express all possible algorithms.[1][2] »

Note que le définitions est donné au pluriel, et que le critère d’expressivité n’est pas noté comme universellement partagé.
La définition selon sources d'un langage de programmation, et celle utilisée actuellement dans l'introduction est: « an artificial formalism in which algorithms can be expressed...Its study can make good use of tools used in linguistics ». C'est ici à la page 27. Autrement dit il sert à exprimer des algorithmes, et il peut être étudié comme une langue, artificielle, mais une langue quand même. Je pense qu'il n'est pas nécessaire de rentrer dans les détails de la théorie des automates et de la complétude de Turing pour en faire une description sur un point de vue linguistique, ni d'un point de vue pratique (point de vue du programmeur).--Silex6 (d) 29 septembre 2012 à 14:18 (CEST)[répondre]
Tu oublies un peu une chose importante sur wikipedia : la neutralité de point de vue. Wikipedia soit certes être pédagogique, mais aussi être neutre. C’est à dire qu’elle doit présenter (de manière pédagogique) les différentes points de vus significatifs. À partir du moment ou certaines visions des langages de programmations incluent la Turing complétude, on doit l’évoquer. Au moins comme un critère permettant de classifier les langages : séparer ceux qui permettent d’exprimer absolument tous les algorithmes possibles et les autres, en renvoyant à la Turing-complétude pour la notion de tous les algorithmes possibles. Ça ne coûte pas très cher et ça permet de compléter l’article avec des choses bien connues et largement documentées. En plus ça peut éclairer un peu les cas limites, comme SQL par exemple (cité dans l’article en anglais), qui peuvent ou pas être considérés comme des langages de programmation … TomT0m (d) 29 septembre 2012 à 14:55 (CEST)[répondre]
He bien il ne reste plus qu'à trouver des sources qui affirment que la définition d'un langage de programmation implique la complétude. Celles que j'ai utilisé ne l'affirment pas... Concernant SQL, il permet d'exprimer des algorithmes donc oui c'est un langage de programmation, même si le fait d'exprimer les algorithmes n'est pas l'objectif initial de ce langage.--Silex6 (d) 29 septembre 2012 à 15:05 (CEST)[répondre]
C’est pas très compliqué, juste reprendre la source de l’article en anglais « Principle of Computational Completeness
The computational model for a general purpose programming language must be universal. » (du lien [1]). En fait je crois que tu as mal saisi la problématique. La grande question c’est est-ce qu’un langage dédié est ou pas un langage de programmation ? Prends en:Domain-specific language par exemple, certains de ces langages permettent d’exprimer certains algorithmes, mais pas - forcément - tous ceux qu’il est possible de décrire avec un ordinateur. Je cite langage dédié: « Il doit être universel (c'est-à-dire qu'il doit résoudre tout les problèmes auquel il est dédié). ». La notion d'universalité est différente de celle de l’autre citation : dans la première, l’universalité signifie "avec le même pouvoir de calcul qu’un ordinateur", dans la deuxième l’universalité c’est de résoudre tous les problèmes d’un domaine plus réduit. Un langage de programmation généraliste sera capable de résoudre tous les problèmes que le langage spécifique peut résoudre, mais la réciproque n’est pas - toujours - vraie. On peut pourtant certainement écrire certains algorithmes avec le langage spécifique. La question est : si le langage spécifique permet de décrire certains algorithmes, mais pas tous, est-ce un langage de programmation ?
Abordons la question d’une autre manière : prenons un robot. Il a des capacité limitées, il peut avancer, reculer, tourner. Il est fourni avec un environnement de programmation qui permet de l’utiliser et de lui faire faire certaines choses, par des algorithmes, mais il ne peut pas faire absolument tous les calculs qu’un ordinateur pourrait faire. Est-ce que le langage de programmation du robot fourni est un langage de programmation ? Un ordinateur est une machine universelle, notre hypothétique robot ne l’est pas, pourtant on programme bien les deux, dans des langages ... La définition de Nipou exclue cependant carrément ce langage des langages de programmation.
Pour SQL, même sans rentrer - volontairement - dans les triggers et le PL/SQL et en se restreignant aux calculs de type selection, jointure et caetera, il permet d’écrire certains algorithmes qui permettent de faire des jointures, des intersections d’ensemble, des calculs de nombre ... il permet de programmer un moteur base de donnée ... mais ce modèle de calcul est limité parce qu’on ne peut pas faire de boucle ou d’appels récursifs arbitraires - sauf erreur de ma part.
Ça me parait au moins utile de parler et de mettre un lien vers les DSL dans cet article.
TomT0m (d) 29 septembre 2012 à 15:54 (CEST)[répondre]
Pour poursuivre la réflexion, il me parait clair qu’il faut avoir une référence aux Langage de programmation généraliste (en), voir un article dédiés. Je crois qu’on peut sans soucis affirmer que le critère de l’universalité du calcul s'applique à ce type de langages. TomT0m (d) 29 septembre 2012 à 16:39 (CEST)[répondre]
Au crédit de Nipou, les références citées dans Turing-complet TomT0m (d) 29 septembre 2012 à 16:59 (CEST)[répondre]
En même temps je suis moyennement d’accord avec ce diff (de Nipou (d · c · b) justement) du coup : [2]. Je suis pas tout à fait sur de la neutralité. TomT0m (d) 29 septembre 2012 à 17:16 (CEST)[répondre]
Revue de liens sur le net sur le sujet : on apprend que [lemire.me/blog/archives/2011/03/08/breaking-news-htmlcss-is-turing-complete/ HTML+CSS seraient Turing Complets] ou encore que la question qui nous occupe est traitée sur stack overflow sans concensus flagrant, cf. aussi Voir « non turing complete programming languages » (sur Google). Cet article sur wikipedia ne peut qu’acter les différences de point de vue … TomT0m (d) 29 septembre 2012 à 18:17 (CEST)[répondre]
La classification langage généraliste (anglais general-purpose) est en rapport avec l'usage qui est fait de chaque langage de programmation. Dans la source citée plus haut, il est dit que le pragmatics c'est-à-dire le champ d'utilisation d'un langage de programmation n'est pas figé, n'est pas déterminé à l'avance, et évolue avec le temps, avec les modes et les raffinements apportés au langage.--Silex6 (d) 29 septembre 2012 à 19:07 (CEST)[répondre]

Organisation de l'article[modifier le code]

J'ai regardé les tables des matières de plusieurs bouquins sur les langages de programmation et j'ai retenu la structure conceptuelle de Bruce J.MacLennan, Principles of Programming Languages,Oxford University Press, 1999 - 509 pages. Ce livre possède en plus de la table des matières et d'un index un «concept directory».

Voilà en gros la structure :

I. Histoire, motivation et évaluation

  A. Les générations de langages.
  B. Les langages spécifiques.

II. Design

  A. L'organisation structurelle.
  B. Les structures de contrôles.
  C. Les structures de données.
  D. Les structures de nommage.
  E. Les structures syntaxiques.

III. Les principes

  A. Abstraction
  B. Automatisation
  C. Limitation en profondeur
  D. Masquage de l'information
  E. Étiquetage
  F. La localisation du coût
  G. Interfaces claires
  H. L'orthogonalité 
  I. La portabilité
  ... et plein d'autres

IV. L'implémentation

  A. Interpréteur
  B. Compilateur
  C. Les enregistrements d'activation
  D. La gestion de la mémoire
  E. Systèmes

--Nipou (d) 16 août 2011 à 02:20 (CEST)[répondre]

+1 : cela permettrait de mieux découper l'actuel chapitre "Particularité" qui est un fourre tout. Par contre, il s'agit d'un ouvrage technique ; il faut donc l'adapter afin de ne pas oublier l'autres points importants d'un article encyclopédique, comme les généralités (introduction pour ceux qui découvre le concept), ou les cas d'utilisations (aspects pratiques). Ce plan serait parfait pour restructurer les actuelles parties 2 à 4 (Historique, Particularités et Paradigmes). Romainhk (QTx10) 17 août 2011 à 10:20 (CEST)[répondre]

Tout à fait. En gros, le problème, c'est que des concepts fondamentaux ne sont pas abordés ; ex. Les modes de passage de paramètres. L'idée est de ce doter d'un cadre conceptuel pour indiquer ce qui doit être ajouté. La page est déjà longue. Je crois que si nous abordons correctement le sujet il ne restera qu'une structure conceptuelle pointant vers un large ensemble de pages.

Si plusieurs personnes sont d'accord, je développerai la structure conceptuelle (copierais devrais-je dire). Par exemple, la force du typage, déjà présente dans l'article serait dans Design/Les structures de données/Typage/Force

J'imagine que la main d'oeuvre pour aborder ce sujet est assez grande ; cette structure serait également une sorte de check list pour les participants, chacun pouvant réserver son thème avant de commencer à écrire. Je suggère fortement que cette réservation soit faite à l'aide de la liste des références qui sera utilisé et de la signature.

--Nipou (d) 18 août 2011 à 01:04 (CEST)[répondre]

Les articles généralistes ne sont pas forcément les mieux suivi car il est difficile d'en faire convenablement le tour ^^. Je voyais aussi une structure qui pointerait abondamment vers des articles spécialisés au moyen de {{Article détaillé}}. Pourrais-tu développer cette check list ? Romainhk (QTx10) 22 août 2011 à 15:09 (CEST)[répondre]
Je suis assez d'accord mais attention quand même : un article n'est pas un livre. Le sujet est tellement large qu'il va très vite devenir beaucoup trop long si on détaille vraiment le plan comme ça. —Shiningfm (d) 29 août 2011 à 18:53 (CEST)[répondre]

Simplification de l'article[modifier le code]

Bonjour, je viens de voir l’historique ( http://fr.wikipedia.org/w/index.php?title=Langage_de_programmation&curid=6923&diff=81650465&oldid=81649923 ) et le désaccord sur les paragraphes, on peut en discuter ici. La discussion a été lancée sur la page du projet:Informatique mais devrait être continuée ici. Mon avis est que ces paragraphes peuvent figurer dans l’article mais qu’ils ne méritent pas un paragraphes chacun, l’ensemble des infos peut être résumée en quelques phrases, et globalement renvoyer vers des articles détaillés. TomT0m (d) 7 août 2012 à 13:49 (CEST) @utilisateur:Rahl43 : Oui en python l’indentation est significative, mais il y a un gros saut dans l’article : par exemple on parle de séparateur d’instructions, information qui va plutôt être importante pour un programmeur, sans avoir jamais auparavant parler d’instruction ou même de bloc d’instruction ... L’article devrait plutôt insister sur l’explication de la sémantique, de la syntaxe et d’instructions et d’être assez général plutôt que de s’intéresser à des détails pour programmeur, qui sont très spécifiques, à mon humble avis cette article doit s’adresser à n’importe qui, pas à un programmeur. TomT0m (d) 7 août 2012 à 13:59 (CEST)[répondre]

Les paragraphes en question ont leur place dans cet article, c'est seulement les explications qui doivent y être peut-être réécrites pour être plus compréhensibles par des lecteurs non-programmeurs. C'est donc pour ça que j'ai reverté. Ca a ça place, mais ça mérite une petite réécriture pour simplifier.
Les quatre sections renvoient déjà vers les articles détaillés. Je ne trouve pas le développement actuel excessif, au contraire, si quelques lignes supplémentaires permettaient de simplifier les explications, je n'y verrais aucun inconvénient. -- Rahl43 (d) 7 août 2012 à 18:09 (CEST)[répondre]
Dans les textes que j'ai ajouté dernièrement [3], les notions de syntaxe, de sémantique et de commentaire sont expliquées. Il n'est à mon avis pas nécessaire de rentrer dans le détail des règles de syntaxe propres à chaque langage dans un article sur les langages de programmation en général. Le règles de syntaxe étant non seulement spécifiques à chaque langage, mais également intéressantes uniquement pour le programmeur.--Silex6 (d) 7 août 2012 à 18:30 (CEST)[répondre]
Ah oui, je n'avais pas vu que la première partie en parlait un peu. Il faudrait remettre les liens vers les articles détaillés dans la première partie avant de supprimer par contre, je pense. Pas forcément en {{article détaillé}}, mais au moins un lien wiki classique dans le texte. Sinon, va pour la suppression, je n'avais pas vu, désolé. -- Rahl43 (d) 7 août 2012 à 20:21 (CEST)[répondre]
Bonjour, je suis en accord avec vous, l’article Langages de programmation est assez confus et s’attaque directement à des notions complexes. Je tiens d’ailleurs à attirer votre attention sur un sujet qui pose problème. Nous utilisons dans cet article vingt et une fois le mot instruction. Hors aucun lien en rapport avec ce terme n’existe dans l’article et aucune définition de ce mot n’est présente dans Wikipédia. Il y a bien un article Commande informatique mais j’ai découvert qu’il ne s’agissait pas exactement de la même chose qu’une Instruction informatique (voir : Discussion:Commande informatique.) Il pourrait être utile de créer un article définissant ce qu’est une Instruction informatique ? --Microco (d) 8 août 2012 à 10:09 (CEST)[répondre]
Le mot est utilisé en particulier dans ce paragraphe « Chaque appareil informatique a un ensemble d'instructions qui peuvent être utilisées pour effectuer des opérations. Les instructions permettent ...ou bifurquer vers l'exécution de d'autres instructions. Ces instructions sont enregistrées sous forme de séquences de bits...c'est le langage machine ». Il fait référence aux instruction machine. Personnellement je trouve très bizzare la redirection de instruction informatique vers commande informatique, il me semble que ce n'est pas la même chose.--Silex6 (d) 8 août 2012 à 11:16 (CEST)[répondre]
Personnellement je trouve très bizarre la redirection d’instruction informatique vers commande informatique, il me semble que ce n'est pas la même chose. Comme je disais dans cette discussion, ce n’est effectivement pas la même chose (voir : Discussion:Commande informatique.) La redirection ? C’est moi qu’il l’a faite faute de mieux. Ce qu’il faudrait, c’est un article complet sur ce qu’ai une instruction informatique, car un nombre conséquent d’article parle d’instruction sans définition claire. Comme mes connaissances en programmation s’arrête au souvenir que je garde des langages assembleur 8086, 6800, BASIC, C et C++ d’il y a une dizaine d’année, je préfère vous soulever le problème et me reposer sur des spécialistes qui pratiquent tous les jours la programmation pour créer cet article… Comme il s’agit d’une simple redirection il suffi de se mettre au boulot Émoticône… Bien cordialement. --Microco (d) 16 août 2012 à 16:43 (CEST)[répondre]
Il est employé dans un sens différent dans la partie "séparateur d’instruction", en plus, pas dans le sens de "jeu d’instruction machine", mais dans le sens plutot bloc ::= (intruction| bloc)* de la grammaire ... dans ce cas l’instruction est une primitive du langage, une affectation ou une expression … TomT0m (d) 8 août 2012 à 14:04 (CEST)[répondre]
La notion d'instruction n'est souvent pas expliquée dans les ouvrages d'informatique, mis à part ici « most programming language have the concept of statement. a statement is a command that the programmer gives to the computer ». La traduction usuelle (en dehors du jargon informatique) de l'anglais command est ordre (donné à qqn).--Silex6 (d) 10 août 2012 à 13:50 (CEST)[répondre]
à noter aussi l’article de en: en:Statement_(computer_science) qui détaille supposément un statement pour un langage impératif. C’est sans doute pas faux mais manque de source et un peu de généralité. TomT0m (d) 25 septembre 2012 à 18:38 (CEST)[répondre]

Déplacement d'un passage d'une IP en PDD[modifier le code]

Langage de programmation et langage naturel

Une partie considérable du vocabulaire des langages informatiques est directement reprise de langages naturels, et en particulier de l'anglais qui représente la quasi totalité des langages naturels utilisés en programmation. Il en résulte que la pratique de la programmation implique celle de l'anglais et favorise les programmateurs dont l'anglais est la langue maternelle. Les conséquences culturelles de cette réalité ne sont pas négligeables dans la mesure où il existe une relation forte entre langue et culture et, partant, dans la façon propre à chaque culture de concevoir la "réalité" (Théorie du relativisme linguistique de Sapir-Whorf. Voir aussi les travaux de Cole (1971) et de Serpell (2000) montrant que ce qui est considéré comme intelligent dans une culture ne l'est pas nécessairement dans une autre) [1].

  1. "Psychologie cognitive", Robert J. Sternberg, Éditions De Boeck Université, 2007, (ISBN 978-2-8041-5386-1)

Raisons du déplacement : Aucun rapport direct avec le sujet des langages de programmations, et thèse discutable et non sourcée : les sources parlent de la pratique de l’anglais, et pas du tout de la pratique de l’anglais dans les langages de programmation qui est liée mais très indirectement. — TomT0m [bla] 15 septembre 2013 à 11:51 (CEST)[répondre]

le phénomène que décrit ce texte est relaté en deux phrases dans Terminologie informatique. « Il existe en outre un phénomène d'emprunt lexical réciproque entre les langages de programmation - dont le lexique est basé sur l'anglais, et le jargon informatique. ».--Silex6 (discuter) 15 septembre 2013 à 13:11 (CEST)[répondre]
Complètement d'accord, thèse discutable très peu sourcée et à la limite des pseudo-sciences et de l'action militante. Aucune étude à ma connaissance à ce jour n'a démontrée ni même donné quelques indices de la suradaptation des anglophones à la programmation (c'était un postulat à la mode chez certains enseignants en france dans les années 80). Et quand on regarde ce qui se passe en Chine, au Japon ou en Russie (langues totalement différentes y compris sur la structure des caractères), cette thèse fait franchement rigoler. Bublegun (discuter) 15 septembre 2013 à 19:36 (CEST)[répondre]

Historique[modifier le code]

Je pense qu'il serait judicieux de citer le premier programme créé par Ada Lovelace vers 1843 (https://fr.wikipedia.org/wiki/Ada_Lovelace#/media/Fichier:Diagram_for_the_computation_of_Bernoulli_numbers.jpg). Même s'il ne s'agit pas réellement d'un langage au sens où on l'entend actuellement, c'est quand même une base fondatrice faisant apparaître des variables et un pointeur de programme. La forme est celle d'un tableau plutôt que d'un script, mais il s'agit bien d'un programme compréhensible par un humain et nécessitant une traduction pour être exécuté par l'ordinateur. — Le message qui précède, non signé, a été déposé par Jmbc12 (discuter), le 31 octobre 2021 à 10:01 (CET)[répondre]

Un diagramme de flux est une méthode pour représenter un algorithme[modifier le code]

Un diagramme de flux étant une méthode pour représenter un algorithme, ajouter « et exprimer des diagrammes de flux », ouisqu'il s'agit de la même chose, constituer une redondance inutile qui n'ajoute que de la confusion au texte. ProgMan (discuter) 24 octobre 2022 à 02:36 (CEST)[répondre]