ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Introspección y Reflexión


Enviado por   •  10 de Mayo de 2017  •  Apuntes  •  590 Palabras (3 Páginas)  •  104 Visitas

Página 1 de 3

Introspección y Reflexión.

Muchas veces durante el tiempo de ejecución de un programa, tenemos que hacer preguntas acerca de algunos de nuestros datos - cosas como qué tipo es o si es una instancia de una clase determinada (en la programación orientada a objetos). Además de eso, a veces es necesario para ejecutar una lógica basada en el objeto en cuestión, tales como llamar a un método de instancia o un método de clase, o incluso modificar algunos datos internos del objeto - y puede que no tengamos la variable de objeto necesario o constante Para hacer eso. Si esto no tiene sentido, tiene que sujetar - eso es lo que vamos a entrar en aquí hoy (con una gran cantidad de ejemplos de código). Todo lo que acabo de discutir aquí ilustra los efectos de dos características que se encuentran en casi todos los idiomas de programación moderna que utilizamos en estos días: el tipo de introspección y reflexión.

Introspección.

Tipo de la introspección es la capacidad de un programa para examinar el tipo o propiedades de un objeto en tiempo de ejecución. Así como hemos mencionado en la introducción, los tipos de preguntas que puede hacer son qué tipo es este objeto, o se trata de una instancia de una clase determinada. Algunos idiomas, incluso le permiten atravesar la jerarquía de herencia para ver si su objeto se deriva de una clase base hereditaria. Varios idiomas tienen la capacidad de introspección tipo, tales como Ruby, Java, PHP, Python, C ++, y mucho más. En general, el tipo de la introspección es un concepto muy sencillo de entender - y se puede escribir realmente poderosa lógica cuando se puede consultar algunos de los metadatos acerca de sus objetos.

Reflexión.

La reflexión es la capacidad de un programa de ordenador para examinar y modificar la estructura y el comportamiento (específicamente los valores, los meta-datos, propiedades y funciones) de un programa en tiempo de ejecución. En términos sencillos, lo que esto le permite hacer es invocar un método en un objeto, una instancia de un objeto nuevo o modificar un atributo de un objeto - todo sin conocer los nombres de las interfaces, campos, métodos en tiempo de compilación. Debido a la naturaleza-tiempo de ejecución específica de la reflexión, es más difícil de poner en práctica la reflexión en un lenguaje de tipo estático en comparación con un lenguaje de tipo dinámico debido verificación de tipos en tiempo de compilación en un lenguaje de tipo estático en lugar de en tiempo de ejecución, sin embargo no es imposible implementar la reflexión en lenguajes estáticos como Java, C#, entre otros, excepto C++ que únicamente permite la introspección pero la reflexión no.

Del mismo modo que la reflexión es más fácil de implementar en lenguajes de tipo dinámico en comparación con los lenguajes de tipo estático, es también más fácil de implementar en implementaciones de lenguajes interpretados en comparación con implementaciones de lenguajes compilados. Esto se debe a que las funciones, objetos y otras estructuras de datos se crean y se invocan en tiempo de ejecución, algún tipo de sistema de ejecución debe existir para asignar memoria correctamente. En una implementación lenguaje interpretado, esto es simple porque el intérprete por defecto por lo general proporciona al sistema el tiempo de ejecución, pero las implementaciones de lenguaje compilado debe proporcionar un adicional de compilador y el intérprete que vigila la ejecución del programa a lo largo de su tiempo de ejecución para permitir una reflexión que se produzca (a menudo esto puede hacerse a través transformación de programas también).

...

Descargar como (para miembros actualizados) txt (4 Kb) pdf (36 Kb) docx (12 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com