Valor (informática)
|
Este artículo Necesita referencias adicionales para verificación. (Agosto de 2009) |
En Ciencias de la computación, un valor es un expresión que no puede ser evaluado cualquier otro (un forma normal).[1] Los miembros de una tipo son los valores de ese tipo.[2] Por ejemplo, la expresión 1 + 2
No es un valor que puede ser reducido a la expresión 3
. Esta expresión no puede reducirse más (y es un miembro del tipo Nat) y por lo tanto es un valor.
"El valor de una variable" está dada por la asignación correspondiente en el medio ambiente.[citación necesitada] En idiomas con variables asignables es necesario distinguir entre la valor-r (o contenidos) y el l valor (o localización) de una variable.[3]
En declarativa idiomas (alto nivel), los valores tienen que ser referencialmente transparente. Esto significa que el valor resultante es independiente de la ubicación en la cual se almacena una expresión (sub-) necesaria para calcular el valor. Sólo el contenido de la localización (los pedacitos, ya sean 1 o 0) y su interpretación son significativos.[citación necesitada]
Contenido
- 1 Tarea: los valores de l y r-valores
- 2 En lenguaje ensamblador
- 3 Notas
- 4 Referencias
- 5 Enlaces externos
Tarea: los valores de l y r-valores
Algunos lenguajes utilizan la idea de valores de l y valores de r. L-valores direcciones de almacenamiento son accesibles mediante programación para el programa en ejecución (por ejemplo, a través de una dirección de operador como "&" en C/C++), lo que significa que son variables o referencias sin referencia a un determinado lugar de la memoria. R-los valores pueden ser l-valores (véase abajo) o no-l — un término utilizado para distinguir los valores de l. Considerar la expresión de C 4 + 9
. Cuando es ejecutado, el ordenador genera un valor entero de 13, pero porque el programa no ha designado explícitamente en la computadora donde se almacena este 13, la expresión es un valor r. Por otra parte, si un programa en C declara una variable x y asigna el valor de 13 a x, entonces la expresión x
tiene un valor de 13 y es un valor l.
En C, el valor l término originalmente significaba algo que se podría asignar a (de ahí el nombre, lo que indica es en el lado izquierdo del operador de asignación), pero desde la palabra reservada Const
(constante) ha sido añadido a la lengua, el término es ahora "l valor modificable". En 11 C ++ un semántica-glifo especial & &
existe, para denotar la acceso/uso de la dirección de la expresión de la compilador Sólo; es decir, la dirección no se puede recuperar utilizando la dirección de, &
, operador durante el tiempo de ejecución del programa (véase el uso de la semántica de movimiento).
Este tipo de referencia se puede aplicar a todos los valores r l-valores así como los valores de l. Algunos procesadores proporcionan una o más instrucciones que toman un valor inmediato, a veces se refiere como "inmediata" para el corto. Como parte de la instrucción que emplea normalmente para cargar en, añadir o restar, un registro se almacena un valor inmediato. Las otras partes de la instrucción son el OpCodey el destino. Este último puede ser implícito. (Un valor no inmediatos puede residir en un registro o almacenarse en otros lugares en la memoria, que requiere la instrucción para contener una dirección directa o indirecta [por ejemplo, dirección de registro de índice] el valor).
La expresión de valor l señala (se refiere a) un objeto. Un valor de l no modificable es direccionable, pero no asignable. Un valor l modificable permite que el objeto designado será cambiado, así como examinar. Un valor-r es cualquier expresión, un no-l-valor es cualquier expresión que no es un valor l. Un ejemplo es un "valor inmediato" (ver más abajo) y en consecuencia no direccionable.
Introdujo la noción de los valores de l y r-valores CPL. Las nociones en una expresión de valor r, l valor y valor r-valor/l son análogos a los parámetro modos de parámetro de entrada (tiene un valor), parámetro de salida (puede ser asignado) y los parámetros de entrada/salida (tiene un valor y pueden ser asignados), aunque los detalles técnicos difieren entre contextos y lenguajes.
En lenguaje ensamblador
Un valor puede ser prácticamente cualquier tipo de datos por un determinado tipo de datos, por ejemplo, una cadena, un dígito, una sola letra.
Procesadores compatibles con frecuencia más de un tamaño de datos inmediatos, por ejemplo 8 o 16 bit, empleando una única operación y mnemotécnico para cada variante de la instrucción. Si un programador suministra un valor de datos que no caben, el ensamblador emite un mensaje de error "out of range". La mayoría de ensambladores permiten un valor inmediato a expresarse como ASCII, decimal, hexadecimal, octal, o binario datos. Así, el carácter ASCII 'A' es la misma que 65 o 0 x 41. El orden de bytes de las cuerdas pueden diferir entre procesadores, dependiendo de la arquitectura ensamblador y computadoras.
Notas
- ^ Mitchell 1996, p. 92.
- ^ Mitchell 1996, p. 9.
- ^ Mitchell 1996, pp. 389-390.
Referencias
- Mitchell, John C. (1996). Fundamentos de lenguajes de programación. La MIT Press. ISBN0-262-13321-0.
- Strachey, Christopher (2000). "Conceptos fundamentales en los lenguajes de programación". Computación simbólica y de orden superior 13:: 11 – 49. Doi:10.1023 / A:1010000313106.
Enlaces externos
- Objeto de valor
- Transferencia objeto patrón