Una operación es una construcción en lenguajes de programación , similar por escrito a las operaciones matemáticas, es decir, una forma especial de registrar algunas acciones.
Las más utilizadas son las operaciones aritméticas, lógicas y de cadenas . A diferencia de las funciones, las operaciones suelen ser elementos básicos del lenguaje y se indican mediante varios caracteres de puntuación en lugar de caracteres alfanuméricos; tienen una sintaxis de infijo especial y reglas de paso de argumentos no estándar. La terminología, sin embargo, difiere un poco de un idioma a otro.
La palabra inglesa operator , que corresponde al término "operation" , a veces se traduce erróneamente como "operator". De hecho (por razones históricas) el término ruso "operador" significa lo mismo que " instrucción " , que corresponde al enunciado inglés [1] . La confusión se exacerbó por el hecho de que en C , la asignación y el incremento/decremento son tanto operadores como operaciones.
De hecho, una operación es la misma función , pero escrita de una manera especial. Por esta razón, tiene sentido poder definir operaciones en tipos arbitrarios de la misma manera que los métodos , para que pueda trabajar con ellos de la misma manera que lo haría con tipos elementales. Esta función se denomina " sobrecarga de operadores " y está presente en la mayoría de los lenguajes de cuarta y quinta generación . En tales lenguajes, el traductor en realidad sustituye una llamada a la función correspondiente en lugar de realizar una operación.
Las operaciones se dividen por el número de argumentos aceptados en:
Dado que las operaciones son similares en notación a las expresiones algebraicas , para ellas, al igual que para estas últimas, existen 3 opciones de sintaxis:
Para las operaciones binarias y ternarias (con 3 operandos), en la gran mayoría de los casos, se utiliza la notación infija, por la sencilla razón de que se acepta en matemáticas y es más familiar para la mayoría de las personas. No hay notación de infijos para las operaciones unarias, y generalmente se usa la notación de prefijos.
Las operaciones generalmente se mueven de lenguajes a lenguajes relacionados; por ejemplo, las operaciones del lenguaje C se encuentran en C++ , Java , JavaScript y muchos otros.
Señal | Operación en progreso | Lenguajes de programación |
---|---|---|
a = boa := b | asignación | casi todos |
Aritmética | ||
a + b | adición de argumentos | casi todos |
a - b | sustracción | casi todos |
-a | cambio de signo | casi todos |
a / b,a div b | división | casi todos |
a % b,a mod b | resto de la división (división módulo) | casi todos |
a++ a-- |
aumentar en 1 con asignación ( incremento ) disminuir en 1 con asignación (decremento) |
C , Java , PHP |
a ^ bo a ^^ boa ** b | exponenciación | BÁSICO , Fortran , Ruby , Python , Haskell (los 3) |
rompecabezas | ||
a & b, o a && b, oa and b | conjunción (multiplicación lógica) | casi todos |
a | b, o a || b, oa or b | disyunción (suma lógica) | |
~a, o !a, onot a | inversión (negación lógica) | |
a = boa == b a <> bo a /= boa != b |
prueba de igualdad prueba de desigualdad | |
a > b,a >= b a < b,a <= b |
mayor que, mayor que o igual a menor que, menor que o igual a | |
a ? b : c | operación condicional ternaria (si la condición a es verdadera, la expresión completa es igual a b , de lo contrario c ) | C, C++, Java, PHP |
Cuerda | ||
a + bo a & bo a.b(PHP) o a..b(Lua) o a ++ b(Haskell) | concatenación (fusión) | casi todos |
bit a bit | ||
a & b, a y b (Pascal, Kotlin), a /\ b (Prólogo), a .&. b (Haskell) | conjunción bit a bit | C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin , Prolog , Haskell |
un | b, a o b (Pascal, Kotlin), a \/ b (Prólogo), a .|. (Haskell) | disyunción bit a bit | |
~a, no a (Pascal), inv a (Kotlin), \a (Prólogo) | negación bit a bit | C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin , Prólogo |
a^b, xor (Pascal, Kotlin) | XOR | C / C++ , Java , C# , Ruby , Python , Pascal , Kotlin |
a << b, a shl b (Pascal, Kotlin)
|
Desplazamiento de bit a la izquierda
|