La définition d'opérateur est une fonctionnalité offerte par certains langages de programmation qui permet d'utiliser des opérateurs (comme +, = ou ==) comme des fonctions ou des méthodes en les définissant pour de nouveaux types de données. Les opérateurs ne sont pas nécessairement des symboles. Parfois, la définition de nouveaux opérateurs est autorisée. Il s'agit généralement de sucre syntaxique, et peut facilement être émulé par des appels de fonction ou de méthode :
avec définition d'opérateurs : a + b * c ;
sans définition d'opérateurs : somme (a, produit (b, c)).
Lorsque les opérateurs sont des fonctions, on parle en général de surcharge d'opérateur, car l'implémentation est choisie en fonction du type des opérandes (on parle également de polymorphisme ad hoc). C'est notamment le cas en C++.
Tous les langages permettant la définition d'opérateur ne permettent pas la surcharge. Python, par exemple, ne supporte pas la surcharge, mais permet de définir des opérateurs via des méthodes spéciales.
Dans le cas où les opérateurs peuvent être appelés implicitement, ils deviennent plus utiles qu'esthétiques. C'est le cas avec l'opérateur to_s de Ruby, qui retourne une représentation chaîne d'un objet et avec les opérateurs de PostgreSQL, sur lesquels peuvent être définies des transformations mathématiques. PostgreSQL peut aussi employer de nombreuses optimisations sur les expressions qui utilisent ces opérateurs.
La définition des opérateurs permet notamment une écriture du code plus proche de l'écriture mathématique. Lorsque la définition des opérateurs est utilisée en respectant les conventions rattachées à l'opérateur, elle peut aider le lecteur d'un programme.
Par exemple, on peut définir l'opérateur * pour réaliser des multiplications de matrices ou définir l'opérateur + pour additionner deux nombres complexes.
// Exemple avec des matrices
// ...
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
L'objectif de ce cours est d'introduire les étudiants à la pensée algorithmique, de les familiariser avec les fondamentaux de l'Informatique et de développer une première compétence en programmation (
This seminar teaches the participants to use advanced Python concepts for writing easier to read, more flexible and faster code.
It teaches concepts in a hands-on and tangible fashion, providing examp
Explore la densité de l'opérateur ou de la matrice en physique quantique, en discutant de l'évolution du système et des interactions avec l'environnement.
Python (prononcé ) est un langage de programmation interprété, multiparadigme et multiplateformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.
C++ est un langage de programmation compilé permettant la programmation sous de multiples paradigmes, dont la programmation procédurale, la programmation orientée objet et la programmation générique. Ses bonnes performances, et sa compatibilité avec le C en font un des langages de programmation les plus utilisés dans les applications où la performance est critique. Créé initialement par Bjarne Stroustrup dans les années 1980, le langage C++ est aujourd'hui normalisé par l'ISO.
C# (C sharp en anglais britannique) est un langage de programmation orientée objet, commercialisé par Microsoft depuis 2002 et destiné à développer sur la plateforme Microsoft .NET. Il est dérivé du C++ et très proche du Java dont il reprend la syntaxe générale ainsi que les concepts, y ajoutant des notions telles que la surcharge des opérateurs, les et les délégués. Il est utilisé notamment pour développer des applications web sur la plateforme ASP.NET, ainsi que des jeux vidéo avec le moteur de jeux Unity.
Le cours suivi propose une introduction aux concepts de base de la programmation orientée objet tels que : encapsulation et abstraction, classes/objets, attributs/méthodes, héritage, polymorphisme, ..
We consider Lorentzian CFT Wightman functions in momentum space. In particular, we derive a set of reference formulas for computing two- and three-point functions, restricting our attention to three-point functions where the middle operator (corresponding ...
2020
, ,
While theoretical and empirical insights suggest that the capacity to represent and process complex syntax is crucial in language as well as other domains, it is still unclear whether specific parsing mechanisms are also shared across domains. Focusing on ...
Wiley2022
, ,
Typical operators for the decomposition of Boolean functions in state-of-the-art algorithms are AND, exclusive-OR (XOR), and the 2-to-1 multiplexer (MUX). We propose a logic decomposition algorithm that uses the majority-of-three (MAJ) operation. Such a de ...