# Opérateur (informatique)

En programmation informatique, un opérateur est une fonction spéciale dont l'identificateur s'écrit généralement avec des caractères non autorisés pour l'identificateur des 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 peut néanmoins varier selon les langages.
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 &, ++ et 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 orientés objet, tels 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 soit 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 écrits de manière postfixée comme dans tout langage qui utilise la notation polonaise inverse, l'utilisation de parenthèses est facultative.

## Classification

On peut classer les opérateurs selon le nombre d'opérandes 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 : préfixe (++i), infixe (i + j) 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 1 + 4 / 5 * 2.

## Exemples

Les langages de programmation disposent souvent (mais pas toujours) des opérateurs suivants :
* + (plus unaire), - (moins unaire)
* + (plus binaire), - (moins binaire), * (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 à)
* <=> (comparaison trilatérale)
* << (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.