- effet de bord
- ● loc. m. ►EXEC Modification indirecte de la valeur d'une variable. L'étymologie de effet de bord: c'est une traduction mot à mot de l'expression anglaise "side effect" qui signifie en bon français "effet secondaire" (comme les effets secondaires d'un médicament) [précisions de François Crevola]. À propos de l'étymologie de la chose, en physiques ou sciences expérimentales associées, on parle facilement d'effet de bord. C'est ce qui se passe quand on essaye de modéliser un truc infini par un objet fini, par exemple on veut regarder ce qui se passe sur un plan infini... mais dans le labo, le plan qu'on utilise a bêtement des bords (ceux de la table). Tant qu'on reste au milieu de la table, pas de problème. Mais si on arrive au bord de la table, le bord va avoir une influence (typiquement, des objets mobiles vont en sortir...). C'est une question classique en conférence ou en congrès, qu'on pose à quelqu'un qui présente ce genre de manips: "Es-tu sûr que tes résultats ne sont pas dus à des effets de bord ?". Donc... C'est ce qui se passe "au bord" d'un programme, qui n'arriverait pas si le programme s'exécutait tout seul dans le vide, mais voilà, le programme s'exécute au milieu d'un SE dans lequel, en général, des tas d'autres applis sont en train de s'exécuter... L'euphonie avec "effet Bohr" a sans doute joué aussi un rôle. [précisions de Jean-François Moyen]. Autres précisions, de Olivier Vasseur: "On a un effet de bord quand l'évaluation d'une expression modifie une variable. Si j'écris l'une de ces instructions: y=x+1, y= 2*x -12, y=-x, ce qui se trouve à droite du = est une expression qui est évaluée (calculée) pour obtenir une valeur. La valeur de x n'est pas modifiée. Par contre dans "y=x++" x++ renvoie une valeur, comme une expression classique, mais modifie également la valeur de x. Une expression a évaluer dissimule une opération d'affectation, on pourrait écrire: y=x;x=x+1. On a un cas similaire avec la confusion entre: if (a==0) et if (a=0). Dans les deux cas l'expression entre parenthèses est évalué et renvoie une valeur booléenne. Dans le premier cas, == est un opérateur de comparaison et renvoie vrai (1) si a est égal à zéro. Dans le second cas, le programmeur a (involontairement) utilisé l'opérateur d'affectation et la valeur renvoyé est la valeur de a après affectation, c'es-à-dire zéro. comme le zéro correspond à "false" en c++, on obtient une erreur difficile à détecter. Tous les langages n'acceptent pas les opérations d'affectation dans les instructions en if à cause de ce type de confusion. À nouveau, on parle d'effet de bord car l'affectation est effectuée là où on s'attend à la simple évaluation d'une expression. Enfin, le traducteur de "programming perl, deuxième édition", aux éditions O'Reilly (en français 'programmer en Perl') traduit par "effet secondaire" et précise en note du traducteur 'et non "effet de bord" '(p71).
Dictionnaire d'informatique francophone. 2013.