Ordre des opérations - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

En informatique

En informatique, le concept de priorité des opérations porte le nom de précédence des opérateurs.

Certains langages informatiques comme le langage C possèdent seulement des opérateurs dont la fonction et la priorité sont prédéfinies. D'autres langages comme Haskell et Perl 6 permettent au programmeur de définir de nouveaux opérateurs dont ils doivent aussi spécifier la précédence.

Mise en place historique des priorités

René Descartes, précurseur dans la notation symbolique

Les premières écritures des formules mathématiques furent rhétoriques, c'est-à-dire sous forme de phrase. Le modèle de référence est le texte mathématique euclidien, celui mis en place dans les éléments d'Euclide en 300 avant J-C. Dans celui-ci, l'ordre des opérations est explicite. Il n'y a pas confusion possible entre les deux phrases suivantes :

  • Ajoute à la première quantité, le produit de la seconde par la troisième.
  • Ajoute les deux premières quantités puis multiplie le résultat par la troisième.

ni aucune ambiguïté dans la phrase

Mais, lors de la mise en place du calcul symbolique à la fin du XVIe siècle et tout au long du XVIIe siècle, se pose alors le problème de l'écriture d'expressions mathématiques complexes. Les deux textes précédents pouvant se traduire l'une et l'autre par la même notation symbolique

a + bc

et le troisième texte s'écrivant comme

√a+b

pouvait aussi aussi se traduire par « prend la racine carrée de a et ajoute lui b ».

La recherche s'est donc portée sur l'étude des délimitants. Ceux-ci avaient pour but de préciser quelles étaient les opérations principales et secondaires et comment devaient se regrouper les termes. Ces délimitants furent de plusieurs types. Les principaux sont

  • le vinculum : une barre horizontale placée sous ou au-dessus de l'expression à regrouper. Cette syntaxe permet de distinguer les deux sens
a + \underline{bc}
et
\underline{a+b}c
de l'expression précédente. On trouve trace de ce vinculum dans la barre de la racine carrée puisque le second texte se traduit encore de nos jours par
\sqrt{a +b}
  • le point
  • la parenthèse

Ainsi une expression qui se lit de nos jours

(a + b).c,

s'écrivait .

a + b..c

et l'on trouve chez Descartes des expressions comme

√.3+√2.

qu'il faut lire comme

\sqrt{3+\sqrt 2}.

Ces délimitants ou signes d'agrégation furent particulièrement étudiés par Leibniz qui les appelle des signes de comprehensio.

D'autres moyens d'agréger plusieurs contenus consistaient à les positionner sur des lignes différentes. On retrouve notamment cette habitude dans l'écriture spatiale des fractions où le positionnement par rapport à la ligne d'écriture sert de délimiteur confirmé par la barre de fraction, sorte de vinculum. Ainsi l'expression que Descartes écrit sous la forme

\frac{a+\frac bc}{e+\frac fg}

sera traduite par Leibniz, favorable à l'écriture linéaire,

((a + (b : c)):(e + (f : g)

On peut à ce sujet signaler l'importance de la position spatiale pour la lecture des priorités dans une expression comme

E=\frac{a}{\frac bc}

qui doit être lue

E=a:(b:c)

alors que

F=\frac{\frac ab}c

doit être lue

F=(a:b):c

Descartes utilise grandement la notation spatiale pour regrouper par exemple les termes à l'intérieur d'un produit, ainsi on peut lire chez lui des expressions comme

y^6-2by^5+ \left.\begin{array}{r} - 2cd \\ +b^2 \\ + d^2 \end{array}\right\}y^4+\left.\begin{array}{r} +4bcd \\ -2d^2v \end{array}\right\}y^3+\left.\begin{array}{r} -2b^2cd \\ +c^2d^2 \\ -d^2s^2 \\ +d^2v^2 \end{array}\right\}y^2- 2bc^2d^2y + b^2c^2d^2=0 ,

Le cas particulier de l'exponentiation doit être évoqué pour son rôle positionnel non symétrique : dans une écriture comme

3ab+2,

la position de b+2 sur la ligne de l'exponentiation vaut comme signe d'agrégation et l'expression ne peut pas être confondue avec

3ab+2.

En revanche, le fait que 3 et a soit tous les deux placés sur la ligne de calcul ne permet pas pour autant de les agréger et, de manière implicite, dès les premières exponentiations, chez Descartes, seul le premier terme à gauche de la puissance est concerné.

En toute théorie, toute expression mathématique complexe devrait contenir autant de délimitants que nécessaire pour lever tout ambiguïté. Ainsi une écriture comme

3a2b+5

devrait s'écrire

3a^{2b+5} = 3\left(a^{2b+5}\right)
3a2b + 5 = 3(a^(2b+5))
3a2b + 5 = 3(a^((2b)+5))

écriture qui, certes, ne présente aucune autre interprétation, mais ne brille pas par la clarté de sa lecture.

La suppression de certains délimitants, comme dans l'exemple de l'exponentiation évoqué précédemment, apparaît naturellement chez les premiers auteurs comme Descartes ou Leibniz. Ainsi dans la résolution de l'équation du second degré que Descartes écrit

zz=az+bb

et dont il propose comme solution

\dfrac 12 a + \sqrt{\dfrac 14 aa+bb} ,

celui-ci omet délibérément les délimitants

zz=(ax)+(bb)

et

(\dfrac 12 a) + \sqrt{(\dfrac 14 aa)+(bb)}

sans que ne soit jamais indiquées les règles de priorité qui régissent ce type de calcul.

Il faut probablement voir dans cet absence de délimitant une interprétation quant à la nature des objets manipulés. Cette interprétation en termes d'unité se retrouve déjà dans des textes rhétoriques. Quand les traducteurs d'Euclide écrivent, concernant le partage entre moyenne et extrême raison

« Si une ligne est coupée entre raison extrême et moyenne, le carré du plus grand segment ajouté à la moitié du tout est égal à cinq fois le carré de la moitié » - Les éléments, Livre XIII, proposition 1.

il n'y a pour eux aucune ambiguïté. Le mathématicien moderne, cherchant à écrire sous forme algébrique une telle expression et appelant x le plus grand segment et L la ligne se trouverait devant deux interprétations pour ce texte :

  • le carré du plus grand segment (x²) ajouté à la moitié du tout (L/2) est égal à cinq fois le carré de la moitié (5(L/2)²
  • Le carré du "plus grand segment ajouté à la moitié du tout" (x+L/2)² est égal à cinq fois le carré de la moitié (5(L/2)²

Pour Euclide et ses lecteurs, en revanche, il n'existe aucune ambiguïté, la première interprétation n'ayant aucun sens à leur yeux. Le carré du plus grand grand segment étant une aire, et la moitié du tout étant une longueur, il n'y a aucun sens à ajouter une aire et une longueur et seule la seconde interprétation est correcte.

De même, quand Descartes écrit

zz=az+bb,

le membre de gauche reste pour lui une aire et tout autre agrégation du second membre que celle couramment admise, ne pourrait conduire à une aire. Enfin le 1/2 devant a est davantage vu comme une fraction qu'un multiplication, on prend la moitié de a. De même, il n'y a pas moyen d'agréger différemment

\dfrac 14 aa+bb

sans que l'expression perde sa qualité d'aire.

Descartes donc, et ses successeurs, ont établi de manière implicite les règles de priorité opératoire qui sont utilisées actuellement. L'usage des parenthèses n'intervenant que pour déroger à ses priorités ou lever une ambiguïté sur le contenu.

La convention qui aurait privilégié l'ordre d'écriture, c'est-à-dire qui aurait consisté à effectuer les opérations dans leur ordre d'apparition, de la gauche vers la droite, sauf contrordre signalé par des délimiteurs, aurait chargé inutilement des expressions comme az + bb. Elle aurait, de plus, installé un ordre prioritaire (ce qui est à gauche est plus aggloméré que ce qui arrive à droite) qui serait entré en conflit avec les propriétés de commutativité (ce qui est à gauche peut passer à droite)

D'autres priorités ont tenté de voir le jour comme la notation polonaise inversée au début de XXe siècle mais elles n'ont pas résisté à trois siècles de conventions et de publications.

Page générée en 0.123 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise