Reflexión (informática)

Reflexión (informática)

Reflexión (informática)

En informática, reflexión (o reflexión computacional) es la capacidad que tiene un programa de ordenador para observar y opcionalmente modificar su estructura de alto nivel.

Normalmente, la reflexión es dinámica o en tiempo de ejecución, aunque algunos lenguajes de programación permiten reflexión estática o en tiempo de compilación. Es más común en lenguajes de programación de alto nivel ejecutándose sobre una máquina virtual, como Smalltalk ó Java, y menos común en lenguajes de programación de bajo nivel como C.

En un sentido más amplio, la reflexión es una actividad computacional que razona sobre su propia computación.

Cuando el código fuente de un programa se compila, normalmente se pierde la información sobre la estructura del programa conforme se genera el código de bajo nivel (normalmente lenguaje ensamblador). Si un sistema permite reflexión, se preserva la estructura como metadatos en el código generado. Dependiendo de la implementación, el código con reflexión tiende a ser más lento que el que no lo tiene.

En los lenguajes que no distiguen entre tiempo de ejecución y tiempo de compilación (como las distintas variantes de Lisp), no hay diferencia entre compilación o interpretación de código y reflexión.

Implementación

Un lenguaje con reflexión proporciona un conjunto de características disponibles en tiempo de ejecución que, de otro modo, serían muy difícilmente realizables en un lenguaje de más bajo nivel. Algunas de estas caractacterísticas son las habilidades para:

  • Descubrir y modificar construcciones de código fuente (tales como bloques de código, clases, métodos, protocolos, etc.) como objetos de "categoría superior" en tiempo de ejecución.
  • Convertir una cadena que corresponde al nombre simbólico de una clase o función en una referencia o invocación a esa clase o función.
  • Evaluar una cadena como si fuera una sentencia de código fuente en tiempo de ejecución.

Ejemplo

A continuación se muestra un ejemplo en Python:

# sin reflexión
Foo().bar()
 
# usando reflexión.
getattr(globals()['Foo'](), 'bar')()

Ejemplo

A continuación se muestra un ejemplo en C#:

// Con reflexión
// Usando GetType para obtener información del tipo:
int i = 24;
System.Type tipo = i.GetType();
System.Console.WriteLine(tipo);
 
El resultado sería: 
System.Int32
Obtenido de "Reflexi%C3%B3n (inform%C3%A1tica)"

Wikimedia foundation. 2010.

Игры ⚽ Поможем написать курсовую

Mira otros diccionarios:

  • Reflexión — Saltar a navegación, búsqueda Paisaje reflejado en la superficie de un lago. El término reflexión puede tener distintos significados: En fisica se refiere al fenómeno por el cual un rayo de luz que incide sobre una superficie es reflejado. El… …   Wikipedia Español

  • Memoria (informática) — En informática, la memoria (también llamada almacenamiento) se refiere a parte de los componentes que forman parte de una computadora. Son dispositivos que retienen datos informáticos durante algún intervalo de tiempo. Las memorias de computadora …   Wikipedia Español

  • Modelo de reflexión de Phong — No debe confundirse con Sombreado de Phong. En gráficos 3D por ordenador, el modelo de reflexión de Phong es un modelo de iluminación y sombreado que asigna brillo a los puntos de una superficie modelada. Fue desarrollado por Bui Tuong Phong en… …   Wikipedia Español

  • Introspección de tipos — En informática, la introspección de tipos es la capacidad de algunos lenguaje de programación orientado a objetos de determinar el tipo de un objeto en tiempo de ejecución. Esta es una característica notable de Objective C, y una característica… …   Wikipedia Español

  • Joven Club de Computación — Los Joven Club de Computación y Electrónica (JCCE) constituyen una red de centros tecnológicos que surge el 8 de septiembre de 1987, por iniciativa del Comandante en Jefe Fidel Castro, con el objetivo de contribuir a la socialización e… …   Wikipedia Español

  • Edad Contemporánea — La carga de los mamelucos, de Francisco de Goya, 1814, representa un episodio del levantamiento del 2 de mayo de 1808 en Madrid. Los pueblos europeos, convertidos en protagonistas de su propia historia y a los que se les había proclamado sujetos… …   Wikipedia Español

  • Historia del arte — Para la historiografía de la historia del arte, véase Estudio de la historia del arte. La creación …   Wikipedia Español

  • Colegio Universitario Francisco de Miranda — [[Archivo: Sede principal del Colegio Universitario Francisco de Miranda |200px]] Sede Principal de Mijares …   Wikipedia Español

  • Historia de la ciencia y la tecnología en España — Fragmento del Atlas catalán de Abraham Cresques, 1375. Historia de la ciencia y la tecnología en España es la denominación …   Wikipedia Español

  • Mente — Para otros usos de este término, véase Mente (desambiguación). Las ciencias cognitivas: teorías explicativas en torno a las funciones de la mente, encefálicamente incorporadas, en sujetos socio comunicativamente vinculados. La mente es el nombre… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”