Cuando escribimos algoritmos, operamos entre los diferentes objetos que hayamos declarado por nuestro entorno de trabajo para obtener valores concretos.
Una expresión es cualquier combinación de operadores y operandos:
- Un operando puede ser una variable, una constante o una expresión.
- Los operadores pueden ser unarios o binarios. Un operador unario es aquel que sólo opera con un único operando. Es, por ejemplo, el caso de la negación lógica y el signo menos aplicado a un número. Un operador binario es aquel que opera con dos operandos, por ejemplo, la suma o la resta.
La definición anterior de expresión no es suficiente. Para que una expresión nos sea útil, es necesario que ésta siga unas reglas sintácticas y que se respete el significado de los símbolos utilizados. En otras palabras, hace falta que una expresión sea correcta en sintaxis y semántica.
Sintaxis
Una expresión correcta y, por tanto, evaluable debe seguir las siguientes normas de combinación:
- Un valor es una expresión.
- Una variable es una expresión.
- Una constante es una expresión.
- Si E es una expresión, (E) también lo es.
- Si E es una expresión y · es un operador unario, · E también lo es.
- Si E1 y E2 son expresiones y · es un operador binario, E1 · E2 también lo es.
- Si E1, E2 , …, En son expresiones y f es una función, f(E1, E2 , …, En) también lo es. Las expresiones se escriben linealizadas, es decir, de izquierda a derecha y de arriba abajo.
Semántica
Aunque una expresión tenga una sintaxis correcta, ésta puede carecer de sentido, ya que hay que respetar la tipificación de variables, constantes, operadores y funciones.
Por ejemplo, si encontramos un operador suma aplicado a variables boolea-nas, la expresión puede ser correcta sintácticamente, pero será incorrecta semánticamente, ya que la suma no está definida para los booleanos.
Otro ejemplo es 4.0 + 7, la cual no es correcta semánticamente porque mezcla dos tipos de datos diferentes. Notad que la última expresión puede tener sentido fuera del contexto algorítmico, pero no lo tiene dentro de la algorítmica.
Evaluación
La evaluación de una expresión se hace de izquierda a derecha comenzando por las funciones y los elementos comprendidos entre los paréntesis internos. Dentro de los paréntesis se evaluarán primero las operaciones prioritarias y después, las de menos prioridad.
Una constante se evaluará según el valor descrito en su definición, así como según el valor que guarda en el momento en que se evalúa.
Las prioridades de los operadores son:
- −(cambio de signo), no
- ∗, /, div, mod
- 3. +, − (resta)
- 4. =,≠,<,≤,>,≥
- y
- o
En igualdad de prioridades, se evalúa de izquierda a derecha.
