programacion-operadores-y-expresiones

Operadores y expresiones en programación

En el mundo de la programación, las expresiones y los operadores son conceptos fundamentales que nos permiten manipular y combinar valores y datos, y generar nuevos resultados.

Habíamos visto que nuestros programas se componen de sentencias y bloques. Cada sentencia es una acción ejecutable de nuestro programa.

Los operadores y expresiones son ladrillos básicos con los que creamos las sentencias. La nomenclatura varía un lenguaje a otro, e incluso de un libro de texto a otro. Pero en general, yo voy a decir que:

  • Una sentencia no devuelve un resultado
  • Una expresión devuelve un resultado
// a, b y c con datos
// + e = son operadores
// a + b es una expresión
// c = a + b es una sentencia
c = a + b;

Ya sea en lenguajes como C#, C++, JavaScript, Python las expresiones y los operadores juegan un papel crucial en el desarrollo de programas.

Qué son las expresiones

Una expresión es una combinación de valores, variables, constantes, operadores y funciones que se evalúan para obtener un resultado.

En otras palabras, las expresiones son la forma en que se construyen bloques de código para realizar cálculos o manipular datos. Pueden ser tan simples como una constante numérica o tan complejas como una expresión que involucra múltiples operaciones y variables.

Las expresiones pueden ser aritméticas, relacionales, lógicas o de otros tipos, dependiendo del propósito que se quiera lograr. Veamos algunos ejemplos de expresiones,

Por ejemplo, así se usarían los operadores en en C#

var x = 5 + 3;  // Expresión aritmética
var y = (x > 7);  // Expresión relacional
var z = (x > 7) && (y == true);  // Expresión lógica

Que es básicamente idéntico a JavaScript

let x = 5 + 3  // Expresión aritmética
let y = (x > 7)  // Expresión relacional
let z = (x > 7) && (y == true)  // Expresión lógica

O en Python

x = 5 + 3  ## Expresión aritmética
y = (x > 7)  ## Expresión relacional
z = (x > 7) and (y == True)  ## Expresión lógica

Como vemos las expresiones, aparte de algunas pequeñas diferencias de sintaxis, básicamente son similares en todos los lenguajes.

Qué son los operadores

Los operadores son símbolos o palabras clave que se utilizan para manipular y combinar expresiones. Permiten realizar diferentes acciones, como realizar operaciones aritméticas, comparar valores o asignar valores a variables.

En esencia, los operadores son las herramientas fundamentales para formar con expresiones en la programación. Por ejemplo, en los siguientes ejemplos de Python

x = 5
y = 3

resultado = 5 + 3;            # Operador suma +
resultado = x > y;            # Operador comparación mayor que >
resultado = x > 4 and x > y;  # Operador lógico and

Existen diversos tipos de operadores que se utilizan en los lenguajes de programación, entre ellos:

Funcionamiento interno de los operadores

Internamente, cada operador se traduce en un conjunto de instrucciones que realizan la función específica correspondiente.

En un nivel más bajo, los operadores se traducen en una secuencia de instrucciones específicas que son ejecutadas por el microprocesador. Tomemos como ejemplo el lenguaje C++ y supongamos que tenemos el siguiente código:

int a = 5;
int b = 3;
int resultado = a + b;

Cuando este código se compila y se ejecuta, el operador de suma + se traduce en una serie de instrucciones a nivel de microprocesador que realizan la operación de suma.

A continuación, se muestra un ejemplo simplificado de cómo podría ser la traducción a nivel de instrucciones de microprocesador:

  • Cargar el valor de a en un registro del microprocesador.
  • Cargar el valor de b en otro registro del microprocesador.
  • Sumar los valores de los dos registros.
  • Almacenar el resultado en una ubicación de memoria asignada para la variable resultado.

Cabe destacar que esta es una representación simplificada y puede variar dependiendo del microprocesador y la arquitectura utilizada.

Los microprocesadores modernos están diseñados para ejecutar múltiples instrucciones simultáneamente y optimizar el rendimiento, utilizando técnicas como el pipeline y la ejecución fuera de orden.

En cada paso de la traducción del operador de suma a instrucciones de microprocesador, se están realizando operaciones a nivel de bits y registros internos del procesador para llevar a cabo la suma de manera eficiente.

Sin embargo, estos detalles de bajo nivel suelen estar ocultos para el programador, ya que se encargan del compilador y el sistema operativo.