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

modifier

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

modifier

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.

Voir aussi

modifier

Notes et références

modifier

📚 Artikel Terkait di Wikipedia

Python (langage)

la bibliothèque standard de gestion de HTML. En 1999, le projet Computer Programming for Everybody (CP4E) est lancé conjointement entre le CNRI et la

Lisp

most powerful programming language is Lisp. If you don't know Lisp (or its variant, Scheme), you don't know what it means for a programming language to

Goto (informatique)

Structured programming with goto statements, (1974) (en) A. T. Arblaster, M. E. Sime, T. R. G. Green, Jumping to some purpose, The Computer Journal, volume

Classification mathématique par matières

62 : Statistics 65 : Numerical analysis 68 : Computer science {For papers involving machine computations and programs in a specific mathematical area

Théorie des catégories

Typed lambda calculi”, Combinators and Functional Programming Languages (Lecture Notes in Computer Science, volume 242), Berlin: Springer, 136–175. Lambek

Dualité (optimisation)

Scientific, 2003 (ISBN 1-886529-45-0) (en) Dimitri P. Bertsekas, Nonlinear Programming, Belmont, Mass., Athena Scientific, 1999, 777 p. (ISBN 1-886529-00-0)

Opérateur conditionnel ternaire

Operator ? : (en-US) Mike Blome, « Conditional Operator: ? », sur docs.microsoft.com (consulté le 29 avril 2019) (en-US) Bill Wagner, « ?: Operator -

Analyse lexicale

[(identifiant, sum), (opérateur d'affectation, =), (entier littéral, 2), (operator, +), (entier littéral, 3), (fin de déclaration, ;)] Généralement, quand