stringtranslate.com

Expresión (informática)

En informática , una expresión es una entidad sintáctica en un lenguaje de programación que puede evaluarse para determinar su valor [1] o no terminar, en cuyo caso la expresión no está definida. [2] Es una combinación de una o más constantes , variables , funciones y operadores que el lenguaje de programación interpreta (de acuerdo con sus reglas particulares de precedencia y de asociación ) y calcula para producir ("retornar", en un entorno con estado) . ) otro valor. Este proceso, para expresiones matemáticas , se llama evaluación . En configuraciones simples, el valor resultante suele ser uno de varios tipos primitivos , como cadena , booleano o numérico (como entero , punto flotante o complejo ).

Las expresiones a menudo se contrastan con declaraciones : entidades sintácticas que no tienen valor (una instrucción).

Ejemplos

2 + 3es una expresión aritmética y de programación, que se evalúa como 5. Una variable es una expresión porque denota un valor en la memoria , por lo que y + 6también lo es una expresión. Un ejemplo de expresión relacional es 4 ≠ 4, que se evalúa como false. [3] [4]

Anulado como tipo de resultado

En C y en la mayoría de los lenguajes derivados de C, una llamada a una función con un tipo de retorno nulo es una expresión válida, de tipo nulo. [5] Los valores de tipo void no se pueden utilizar, por lo que el valor de dicha expresión siempre se desecha.

Efectos secundarios y eliminación.

En muchos lenguajes de programación, una función y, por tanto, una expresión que contiene una función, puede tener efectos secundarios . Una expresión con efectos secundarios normalmente no tiene la propiedad de transparencia referencial . En muchos lenguajes (por ejemplo, C++ ), las expresiones pueden terminar con un punto y coma ( ;) para convertir la expresión en una declaración de expresión . Esto le pide a la implementación que evalúe la expresión sólo por sus efectos secundarios y que ignore el resultado de la expresión (por ejemplo, x+1;) a menos que sea parte de una declaración de expresión que induzca efectos secundarios (por ejemplo, y=x+1;o func1(func2());).

Advertencias

La noción formal de efecto secundario es un cambio en el estado abstracto del programa en ejecución.

Otra clase de efectos secundarios son los cambios en el estado concreto del sistema computacional, como la carga de datos en memorias caché . Los lenguajes que a menudo se describen como "libres de efectos secundarios" generalmente seguirán teniendo efectos secundarios concretos que pueden explotarse, por ejemplo, en ataques de canal lateral .

Además, el tiempo transcurrido al evaluar una expresión (incluso una que no tenga otros efectos secundarios aparentes) es a veces esencial para el correcto funcionamiento de un sistema, ya que el comportamiento en el tiempo es fácilmente visible desde fuera del entorno de evaluación por otras partes del sistema con las que se utiliza. interactúa e incluso podría considerarse como el efecto principal , como cuando se realizan pruebas comparativas .

Depende de la especificación particular del lenguaje de programación si una expresión sin efectos secundarios abstractos puede ser eliminada legalmente de la ruta de ejecución por el entorno de procesamiento en el que se evalúa la expresión.

Ver también

Referencias

  1. ^ Mitchell, J. (2002). Conceptos en lenguajes de programación. Cambridge: Cambridge University Press, 3.4.1 Declaraciones y expresiones , pág. 26
  2. ^ Maurizio Gabbrielli, Simone Martini (2010). Lenguajes de programación: principios y paradigmas. Springer London, 6.1 Expresiones , pág. 120
  3. ^ Expresiones de Javascript, Mozilla Archivado el 9 de marzo de 2012 en Wayback Machine . Consultado el 6 de julio de 2009.
  4. ^ Programación en C Archivado el 9 de enero de 2015 en Wayback Machine. Consultado el 6 de julio de 2009.
  5. ^ ISO/IEC 9899:1999 sección 6.3.2.2, consultado el 31 de agosto de 2009

enlaces externos