Reflexión (informática)

En informática, reflexión (o reflexión computacional) es la capacidad que tiene un programa 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 o Java, y menos común en lenguajes 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 distinguen 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 caracterí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.

Ejemplos

# sin reflexión
Foo().bar()

# usando reflexión.
getattr(globals()['Foo'](), 'bar'())
// 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

PHP

Abajo un ejemplo con PHP:

// sin reflexión
$foo = new Foo();
$foo->hello();

// con reflexión, usando la API de reflexión
$reflector = new ReflectionClass('Foo');
$foo = $reflector->newInstance();
$hello = $reflector->getMethod('hello');
$hello->invoke($foo);

// con reflexión, usando la retro llamada
$foo = new Foo();
call_user_func(array($foo, 'hello'));

// con reflexión, usando la sintaxis de variables
$className = 'Foo';
$foo = new $className();
$method = 'hello';
$foo->$method();

Véase también

Read other articles:

Rawa DanauRawadanoCagar Alam Rawa DanauPemandangan Rawa Danau dari atas bukit mengarah ke selatan tampak bukit Kemuning (270 mdpl) dan Gunung Karang (1.778 mdpl)LetakKab. Serang, BantenKoordinat6°09′43″S 105°59′01″E / 6.16184°S 105.9835°E / -6.16184; 105.9835Koordinat: 6°09′43″S 105°59′01″E / 6.16184°S 105.9835°E / -6.16184; 105.9835Bagian dariDAS CidanauAliran keluar utamaCidanauLembaga yang mengaturBKSDA Jawa BaratDiben...

 

 

مصباح بخار الزئبق عن قرب مصباح بخار الزئبق هو مصباح تفريغ غازي يحوي فلز الزئبق في حالة مهيجة بحيث يساهم في إصدار الضوء.[1][2][3] يستخدم فلز الزئبق السائل في الإضاءة، حيث يتحول الزئبق إلى بخار الزئبق، ثم يتحول تحت تأثير درجة الحرارة وفرق الجهد من زئبق بحالته العادي�...

 

 

Scottish Division A 1954-1955 Competizione Scottish Division A Sport Calcio Edizione 58ª Organizzatore SFL Date dall'11 settembre 1954al 30 aprile 1955 Luogo  Scozia Partecipanti 16 Formula Girone all'italiana A/R Risultati Vincitore Aberdeen(1º titolo) Statistiche Miglior marcatore Willie Bauld (21) Incontri disputati 240 Gol segnati 862 (3,59 per incontro) Cronologia della competizione 1953-54 1955-56 Manuale La Scottish Division A 1954-1955 è stata la 58ª edizione d...

This article needs to be updated. Please help update this article to reflect recent events or newly available information. (May 2024) Current logo for the Philippine Registry of Cultural Property The National Cultural Treasures (NCTs) declarations are authorized under the National Heritage Act of 2009 and recognized within the Cultural Properties of the Philippines by the Philippine government. The list includes all declared National Cultural Treasures of the Philippines, including tangible ...

 

 

Jules-Géraud Saliège Portrait de Jules-Géraud Saliège.Source : SGA/DMPA. Biographie Nom de naissance Jules Gérard Saliège Naissance 24 février 1870à Mauriac (France) Ordination sacerdotale 21 septembre 1895 Décès 4 novembre 1956 (à 86 ans)à Toulouse (France) Cardinal de l'Église catholique Créécardinal 18 février 1946 par le pape Pie XII Titre cardinalice Cardinal-prêtre de S. Pudenziana Évêque de l'Église catholique Ordination épiscopale 6 janvier 1926 par Pau...

 

 

Torneo di Wimbledon 1982Doppio femminile Sport Tennis Vincitrici Martina Navrátilová Pam Shriver Finaliste Kathy Jordan Anne Smith Punteggio 6–4, 6–1 Tornei Singolare uomini donne   ragazzi Doppio uomini donne misto 1981 1983 Voce principale: Torneo di Wimbledon 1982. Martina Navrátilová e Pam Shriver erano le detentrici del titolo e sono riuscite a difenderlo superando in finale Kathy Jordan e Anne Smith col punteggio di 6–4, 6–1. Indice 1 Teste di serie 2 Tabellone 2.1 Leg...

Pour les articles homonymes, voir Franc, FCFA, CFA et Franc CFA. Ne doit pas être confondu avec Franc CFA (CEMAC). Franc CFA (UEMOA)Unité monétaire actuelle L'avers des pièces en francs CFA (UEMOA). Pays officiellementutilisateurs Bénin Burkina Faso Côte d'Ivoire Guinée-Bissau Mali Niger Sénégal Togo Banque centrale Banque centrale des États de l'Afrique de l'Ouest (BCEAO) Symbole local FCFA Sous-unité 100 centimes Taux de change 1 XOF = 0,001 68 USD[1](7 septe...

 

 

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)&#...

 

 

Fikayo TomoriTomori con il Milan nel 2022Nazionalità Inghilterra Canada (nel 2016) Altezza185 cm Peso79 kg Calcio RuoloDifensore Squadra Milan CarrieraGiovanili 2005-2016 Chelsea Squadre di club1 2016-2017 Chelsea1 (0)2017→  Brighton9 (0)2017-2018→  Hull City25 (0)2018-2019→  Derby County44 (1)[1]2019-2021 Chelsea16 (1)2021- Milan107 (6) Nazionale 2016 Inghilterra U-195 (0)2016 Canada U-203 (0)2016-2017 Inghilterra U-2015 (0)201...

District of Northern Ireland (1973–2015) Human settlement in Northern IrelandBallymoney BoroughBuirg Bhaile MonaidhBoundaries 1973 to 2015Area418 km2 (161 sq mi) Ranked 17th of 26District HQBallymoneyCatholic31.8%Protestant63.1%CountryNorthern IrelandSovereign stateUnited KingdomCouncillorsMLAsNorth Antrim DUP: 3 Sinn Féin: 1 TUV: 1 UUP: 1MPsIan Paisley Jr. (DUP)Websitewww.ballymoney.gov.uk List of places UK Northern Ireland Ballymoney was a local government distri...

 

 

热塞阿巴Jeceaba市镇热塞阿巴在巴西的位置坐标:20°32′06″S 43°58′58″W / 20.535°S 43.9828°W / -20.535; -43.9828国家巴西州米纳斯吉拉斯州面积 • 总计235.603 平方公里(90.967 平方英里)海拔850 公尺(2,790 英尺)人口 • 總計5,892人 • 密度25人/平方公里(64.8人/平方英里) 热塞阿巴(葡萄牙语:Jeceaba)是巴西米纳斯吉拉斯州�...

 

 

Maestà, Siena, chiesa di San Domenico Guido da Siena (1230 circa – 1290 circa) è stato un pittore italiano, attivo a Siena nella seconda metà del Duecento, fra il 1260 e il 1280. Indice 1 Notizie biografiche e difficoltà di datazione 2 Stile 3 Le opere 3.1 La Maestà di San Domenico 3.2 La tavola di Badia Ardenga 3.3 Altre opere attribuite 4 Note 5 Bibliografia 6 Altri progetti 7 Collegamenti esterni Notizie biografiche e difficoltà di datazione Non ci sono notizie sulla vita dell'arti...

Герб Мальтийского ордена Детали Утверждён 1969 Девиз Tuitio Fidei et Obsequium Pauperum»  (лат.) «Защита Справедливости и Помощь Бедным и Страждущим» Герб Суверенного Военного Мальтийского Ордена — наряду с флагом и гимном — является официальным символом Мальтийского ордена....

 

 

Voce principale: Associazione Calcio Milan. Milan ACStagione 1987-1988 Sport calcio Squadra Milan Allenatore Arrigo Sacchi All. in seconda Italo Galbiati Presidente Silvio Berlusconi Serie A1º (in Coppa dei Campioni) Coppa ItaliaOttavi di finale Coppa UEFASedicesimi di finale Maggiori presenzeCampionato: F. Galli, G. Galli (30)Totale: F. Galli (40) Miglior marcatoreCampionato: Virdis (11)Totale: Virdis (15) StadioGiuseppe Meazza Abbonati65 099[1] Media spettatori73 28...

 

 

Impala Aepyceros melampus mâle.jpg Status konservasi Risiko Rendah  (IUCN 3.1) Klasifikasi ilmiah Kerajaan: Animalia Filum: Chordata Kelas: Mamalia Ordo: Artiodactyla Famili: Bovidae Subfamili: AepycerotinaeGray, 1872 Genus: AepycerosSundevall, 1847 Spesies: A. melampus Nama binomial Aepyceros melampus(Lichtenstein, 1812) Subspesies A. m. melampus Lichtenstein, 1812 A. m. petersi Bocage, 1879 Persebaran impala Sinonim Daftar A. holubi Lorenz, 1894 A. johnstoni Thomas, 1893 A. kata...

Prehistoric period during which stone was widely used by humans to make tools and weapons For other uses, see Stone Age (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Stone Age – news · newspapers · books · scholar · JSTOR (October 2022) (Learn how and when to remove this message) Ġgantij...

 

 

Defunct political party in France Union of Democrats for the Republic Union des démocrates pour la RépubliqueLeaderCharles de GaulleGeorges PompidouJacques Chaban-DelmasJacques ChiracFounded26 November 1967; 56 years ago (1967-11-26)Dissolved5 December 1976; 47 years ago (1976-12-05)Preceded byUnion for the New RepublicSucceeded byRally for the RepublicHeadquarters123 rue de Lille, Paris 7thNewspaperLa Lettre de la nationIdeologyGaullismPaternal...

 

 

Renato RaccisNazionalità Italia Calcio RuoloAttaccante Termine carriera1948 CarrieraSquadre di club1 1937-1938 San Giorgio B1938-1939 San Giorgio Fois1+ (1+)[1]1939-1942 Prato84 (71)1942-1943 Livorno28 (10)1944 Asti11 (4)1945-1946 Pro Livorno33 (11)1946-1947 Livorno37 (17)1947-1948 Milan26 (8) Carriera da allenatore 1956 Juventus Domo[2] 1 I due numeri indicano le presenze e le reti segnate, per le sole partite di campionato.I...

Babylonian earth goddessKi (Sumerian: 𒀭𒆠) was the earth goddess in Sumerian religion, chief consort of the sky god An.[1] In some legends[2] Ki and An were brother and sister, being the offspring of Anshar (Sky Pivot) and Kishar (Earth Pivot), earlier personifications of the heavens and earth. By her consort Anu (also known as Anunna), Ki gave birth to Anunnaki, the most prominent of these deities being Enlil, god of the air. According to legends, the heavens and earth w...

 

 

Private university, in Forest Grove, Oregon, U.S. Not to be confused with University of the Pacific (disambiguation). Pacific UniversityOther namePacific University OregonFormer namesTualatin Academy (1849–1854)North Pacific College of Optometry (1921–1945)MottoPro Christo et Regno EjusMotto in EnglishFor Christ and His KingdomTypePrivate universityEstablished1849; 175 years ago (1849)FounderTabitha Moffatt Brown & Harvey Clark[1]Religious affiliationUni...