Opérateur (informatique)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Opérateur.

En programmation informatique, un opérateur est une fonction spéciale dont l'identificateur s'écrit avec des caractères non autorisés pour les identificateurs fonctions ordinaires. Il s'agit souvent des équivalents aux opérateurs mathématiques pour un langage de programmation.

Les opérateurs peuvent effectuer des opérations arithmétiques, booléennes ou agir sur des chaînes de caractères. Contrairement aux fonctions, les opérateurs fournissent souvent les opérations primitives du langage. Leur nom est constitué de caractères symboles ou de ponctuation. La terminologie varie néanmoins de langage en langage.

En informatique, l'utilisation du mot opérateur va au-delà des opérateurs arithmétiques communs. Le langage C, par exemple, supporte aussi des opérateurs comme &, ++ and sizeof. Des opérateurs comme sizeof, sont alphanumériques plutôt que des caractères symboles ou de ponctuation. On les appelle quelquefois opérateurs nommés. Les opérateurs en C sont des opérations primitives du langage que le compilateur peut transposer relativement directement en instructions du microprocesseur. Au contraire, dans certains langages de programmation, tel C++ ou Haskell, les opérateurs peuvent être définis ou surchargés afin de faciliter l'écriture et la relecture du code.

Dans des langages comme Haskell et Prolog, les opérateurs sont purement du sucre syntaxique. On peut utiliser toute combinaison de symboles et de caractères de ponctuation comme opérateur, et on peut définir la précédence et l'associativité d'un tel opérateur. Haskell permet seulement de définir de nouveaux opérateurs binaires alors que Prolog permet de définir des opérateurs qui sont soit binaires ou unaires et qui peuvent être préfixés, infixés ou postfixés. En Haskell, on peut définir et appliquer un opérateur comme une fonction et réciproquement par l'utilisation de parenthèses et d'accents graves.

Dans certains langages de programmation tels que PostScript, l'utilisation du mot opérateur a une signification plus précise. Un opérateur est un élément exécutable sur la pile. Comme les opérateurs sont toujours écrit de manière postfixée comme dans tout langage qui utilise la notation polonaise inverse, l'utilisation de parenthèses est inutile.

Classification[modifier | modifier le code]

On peut classer les opérateurs selon le nombre d'arguments qu'ils acceptent. Ainsi une opération unaire accepte un seul argument, une opération binaire accepte deux arguments et un opérateur ternaire accepte trois arguments. Par exemple, le moins unaire (-) et le plus unaire (+) sont des opérateurs unaires permettant d'obtenir l'opposé (-1) et l'identité (+1) d'un nombre, le multiplié (*) et le divisé (/) sont des opérateurs binaires codant la multiplication (2*3) et la division (5/7), l'opérateur « ? : » est un opérateur ternaire retournant conditionnellement un résultat (true ? 1 : 2).

Les opérateurs peuvent aussi être classés selon l'ordre d'évaluation des arguments (suivant généralement l'associativité à droite ou à gauche des opérateurs mathématiques) ou bien leur notation : infixe (++i) ou postfixe (i++). Il existe aussi un ordre de priorité entre opérateurs afin de désambiguïser l'évaluation d'expressions où ils sont mélangés comme, par exemple, 1 + 4 / 5 * 2.

Exemples[modifier | modifier le code]

Les langages de programmation disposent souvent (mais pas toujours) des opérateurs suivants :

  • + (plus unaire), - (moins unaire)
  • + (plus binaire), - (moins binaire), x (multiplié), / (divisé),  % (reste de la division euclidienne)
  • ++ (incrément pre et post-fixé), -- (décrément pre et post-fixé)
  • [] (accès aux éléments d'un tableau)
  •  := ou = (affectation ou bien égalité), != ou <> (inégalité)
  • < (inférieur à), ≤ (inférieur ou égal à), > (supérieur à), ≥ (supérieur ou égal à)
  • << (décalage de bits à gauche), >> (décalage de bits à droite)
  • && (et booléen), || (ou booléen),  ! (négation booléenne)
  • & (et logique), | (ou logique), ~ (négation logique), ^ (ou exclusif)
  • etc.

Notes et références[modifier | modifier le code]