6

En anglais, nous dirions, "to run an algorithm". J'aimerais connaître la liste de tous les verbes que l'on peut employer dans ce groupe verbal.

À ma connaissance il y a :

  1. Lancer un algorithme
  2. Faire tourner un algorithme
  3. Appliquer un algorithme (dans un sens légèrement différent)

Je me pose cette question car l'un de mes étudiants, que je suppose étranger, a écrit :

J'effectue l'algorithme [...]. Est-ce bien une mauvaise formulation ?

  • La formule ne me choque pas si c'est l'étudiant qui exécute l'algorithme et non une machine – vc 74 Sep 29 at 20:33
7

Un algorithme est une description formelle des étapes utilisées pour résoudre un type de problème donné. C'est donc quelque chose d'abstrait.

Que ce soit en anglais ou en français, ce mot se prête moins bien à un verbe concret comme to run ou « lancer ».

En anglais, algorithm peut être employé par métonymie pour program ou application mais je ne connaissais pas cet usage en français, qui semble néanmoins se répandre.

Ce qu'on lance, c'est tout de même bien un programme, programme qui peut mettre en application un ou plusieurs algorithmes.

Les deux propositions « lancer un algorithme1 » et « faire tourner un algorithme  sont donc pour moi peu opportunes mais la troisième, « appliquer un algorithme », est pertinente.

Effectuer l'algorithme est moins problématique mais je lui préfère quand même « mettre en œuvre l'algorithme ».

@vc74 suggère aussi « exécuter un algorithme ». L'expression est utilisée couramment et signifie dérouler les étapes d'un algorithme, soit dans sa tête, soit par le biais d'un programme, souvent en pas à pas. On pourrais aussi directement dire « dérouler un algorithme ».

1 Lancer un algorithme peut cependant aussi se dire pour dévoiler/déployer un nouvel algorithme : Le gouvernement veut lancer un algorithme à l'assaut des réseaux sociaux pour débusquer les fausses domiciliations fiscales et le commerce illicite. (Le Figaro)

| improve this answer | |
  • 3
    Je ne suis pas tout à fait d'accord, par exemple: "exécuter un algorithme pour calculer le 10ème terme de la suite de Fibonacci" ne me choque pas. Un algorithme est, selon moi, une série d'étapes concrète qui peut être exécutée de plusieurs manières, de tête, par écrit ou plus souvent à l'aide d'une machine. – vc 74 Sep 25 at 11:12
  • 2
    @vc74 Je n'ai pas évoqué exécuter un algorithme dans ma réponse mais je suis d'accord, l'expression ne me choque pas non plus. Je vais l'intégrer à ma réponse. – jlliagre Sep 25 at 13:10
  • 2
    Il est vrai qu'on exécute un programme, qui met en œuvre un algorithme. En pratique, on emploie très souvent les expressions lancer un algorithme, faire tourner un algorithme, même s'il s'agit d'un abus de langage – Damien Sep 25 at 15:02
  • @Damien Oui, cet usage existe plus que je ne le pensais. – jlliagre Sep 25 at 15:15
  • The problem is that lancer is start and run means to do the entire thing. exécuter me semble bien. faire tourner, oui. We ran the machine yesterday for two hours. Hier, nous avons fait tourner la machine pendant deux heures. Lá, on a le sens de run ici. – Lambie Sep 26 at 16:08
2

I mostly heard faire tourner un algorithme (VS lancer un programme).

I guess a naive intuition behind it is that running a program is a discreet operation (i.e you are doing it here and now) whereas running an algorithm comes with an idea of continuity.

| improve this answer | |
1

Tester un algorithme. Exécuter un algorithme.

| improve this answer | |
-7

Pour ce qui est de constituer une méthode appelée algorithme, que ce soit dans la programmation ou dans les mathématiques, on utilise les termes suivants :

  • faire, inventer, créer, écrire, rédiger, concevoir, étudier, mettre sur pied, assembler, confectionner, élaborer, développer, synthétiser, construire, réaliser, effectuer

Pour ce qui est de l'utilisation (run) ce sont les termes suivants ; soit il s'agit d'une utilisation stylo en main, soit il s'agit d'une utilisation par ordinateur :

  • appliquer, utiliser, exécuter, mettre en application

Pour ce qui est de donner à un ordinateur la commande d'exécution d'un algorithme on dit « lancer » un algorithme.

Les termes suivants ne sont pas acceptables en tant que termes techniques formels et devraient être relégués au langage littéraire à propos de l'informatique ou à ce que l'on peut appeler le « discours libre » (rectification après remarque) :

  • mettre un algorithme en train, mettre un algorithme au travail

« Faire tourner un algorithme » a une signification particulière (réf.).

  • Faire "tourner" un algorithme, consiste à se mettre à la place de la machine et effectuer les instructions, ligne après ligne.

On voit de par l'utilisation des guillemets que le terme « tourner » n'est pas accepté sans quelque réserve.

On pourra dire « effectuer « XXX » par algorithme » où « XXXX » est « calcul » ou le nom d'un calcul ou d'une procédure.

On ne trouve pas « effectuer un algorithme » ni « effectuer l'algorithme » (ngram) dans les livres.

« Effectuer » a deux significations fondamentales.

(TLFi) A.− Mettre à effet, à exécution Synon. accomplir, réaliser.
Si tu es assez imprudent pour effectuer ce projet, je te déshérite (Guilbert de Pixer., Cœlina,1801, II, 7, p. 35).L'opération expressive réalise ou effectue la signification (Merleau-Ponty, Phénoménol. perception,1945, p. 213).
[…]
En partic., usuel. [L'obj. désigne une opération arithm.] Mener à terme. Effectuer une addition de deux chiffres (Queneau, Pierrot,1942, p. 205): ... cette incapacité congénitale des Allemands à effectuer convenablement un calcul aussi simple que celui d'une troupe alignée. Ambrière, Les Grandes vacances,1946, p. 47.
B.− P. ext. Mener à bien. Effectuer une enquête, des essais, des observations, des prélèvements. Synon. faire.Effectuer la promenade sacrée (Stendhal, A

On ne dira pas « effectuer un algorithme » dans le sens d'effectuer un calcul ou une opération, c'est l'algorithme qui effectue le calcul ; cependant, dans le sens de « créer un algorithme » il n'y a pas de problème, on peut dire « effectuer un algorithme ». La différence est plutôt idiomatique que purement sémantique; par exemple on dit bien « faire un calcul » et aussi « faire un algorithme ».

Addition en réponse à des assertions douteuses relevées dans un commentaire à la présente réponse

Ce commentaire laisse entendre qu'un algorithme n'est pas un programme, cependant il est clair que les algorithmes écrits dans un langage de programmation sont écrits par des programmeurs ou des personnes qui ont des notions assez importantes de programmation et qui peuvent être considérés comme étant des programmeurs de niveau élémentaire. Ensuite, il se trouve un dictionnaire de mathématiques dans lequel l'ensemble des instructions pour calculer le pgcd (algorithme d'Euclide) est appelé un programme. Ce dictionnaire est « Toutes les Mathématiques et les Bases de l'Informatique » aux éditions Dunod, 2002, dont l'auteur est Horst Stöcker. Voici le texte que l'on trouve dans ce dictionnaire, page 12.

Programme pour calculer le pgcd de deux nombres a et b, a≥b, d'après l'algorithme d'Euclide.

BEGIN Euclide
INPUT a,b
c:=1
WHILE (c ≠ 0) DO
c:= a MOD b
a ;= b
b := c
ENDDO
OUTPUT a
END Euclide.

| improve this answer | |
  • 3
    Mettre un algorithme en train, mettre un algorithme au travail... Qui peut bien upvoter ça ? – jlliagre Sep 25 at 9:55
  • 5
    Cette réponse est un peu un méli-mélo de bonne idées et de choses qui me semblent absurdes en tant que natif. "Synthétiser" et "étudier" un algorithme ne signifient pas le créer. De même, "mettre un algorithme en train / au travail" n'a aucun sens (particulièrement "en train" -> un algorithme s'échauffe-t-il avant son exécution ?). Et pour moi, il y a un vrai problème à dire "effectuer un algorithme", même dans le cadre de la création de celui-ci. C'est dommage parce que le reste de la réponse me semble tout à fait pertinent. À vouloir trop en faire... – Reyedy Sep 25 at 10:02
  • @Reyedy Je ne suis pas d'accord. 1/ Une synthèse est une création, une construction, c'est une façon de créer ; (En informatique, la synthèse de programmes consiste à construire automatiquement un programme à partir d'une spécification. fr.wikipedia.org/wiki/Synth%C3%A8se_de_programmes). 2/ (TLFi) mettre en train − [L'obj. est un inanimé] Commencer l'exécution, l'utilisation de quelque chose. (lancer le programme pour les ordinateurs; évidemment ce n'est pas applicable pour un tavail au crayon et au stylo). (1/2) – LPH Sep 25 at 14:59
  • @Reyedy 3/ Je ne dis pas pas que « effectuer un algorithme » soit utilisable mais je dis que la différence est surtout idiomatique. – LPH Sep 25 at 15:01
  • 3
    1/ Je suis ingénieur en informatique, et je le confirme : les algorithmes ne sont pas des programmes. 2/ Je n'ai jamais vu l'expression "mettre en train" employée dans le registre de l'informatique et en cela, je considère que cette expression n'est pas idiomatique dans ce contexte. Maintenant, je vais arrêter de répondre à cette discussion car nous sommes de deux avis clairement différents et l'espace commentaires n'est pas fait pour ça. Bonne journée. :) – Reyedy Sep 26 at 9:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.