Revista: | Ingeniería y competitividad |
Base de datos: | PERIÓDICA |
Número de sistema: | 000420673 |
ISSN: | 0123-3033 |
Autores: | Moreno, Francisco1 Jiménez, Jovani1 Castañeda, Sebastián1 |
Instituciones: | 1Universidad Nacional de Colombia, Facultad de Minas, Medellín, Antioquia. Colombia |
Año: | 2014 |
Volumen: | 16 |
Número: | 2 |
Paginación: | 91-104 |
País: | Colombia |
Idioma: | Español |
Tipo de documento: | Artículo |
Enfoque: | Aplicado, descriptivo |
Resumen en español | El fin de este trabajo es realizar una clasificación de la reflexión en niveles, con un enfoque orientado a alcanzar la programación autónoma. La reflexión es la capacidad de un programa de conocerse, examinarse y razonar para tomar acciones y modificarse a sí mismo en tiempo de compilación o ejecución. En este artículo, se proponen cuatro niveles de reflexión de acuerdo al grado de conocimiento, capacidad de modificación, tipo de modificaciones, tiempo en que se pueden realizar las modificaciones y la capacidad de razonamiento. Luego se analizan diferentes lenguajes de programación y se clasifican sobre dichos niveles, según la capacidad de reflexión que estos soportan. De cada nivel se presenta un ejemplo y finalmente se realizan una serie de experimentos donde se comparan con versiones equivalentes de programas no reflexivos. Los experimentos mostraron que aunque los programas reflexivos fueron más costosos, en cuanto a tiempo de ejecución y codificación, permiten una gran flexibilidad y más posibilidades para el diseño y desarrollo de aplicaciones. Siendo así la reflexividad el primer paso para llegar a desarrollar sistemas autónomos que puedan simular o igualar los sistemas biológicos |
Resumen en inglés | In this paper, we propose a classification of reflection in levels, with an approach aimed to reach autonomous programming. Reflection is the ability of a program to reason, know and examine itself to act and modify its state at compilation or runtime. In this article, it is proposed four reflection levels according to the level of knowledge, modification ability, types of modifications, time to perform modifications and the reasoning level. Then, it is analyzed different programming languages and they are classified on those levels, based on the reflection capacity that they support. Each classification level is exemplified and finally we present a series of experiments where we compare them with equivalent versions of non-reflective programs. Out experiments showed that although reflective programs were more expensive, in terms of execution time and coding, they offer great flexibility and great potential for the design and development of programs. Therefore, it is the reflexivity the first step to achieve the development of autonomous systems which can simulate or pair biological systems |
Disciplinas: | Ciencias de la computación |
Palabras clave: | Programación, Lenguajes reflexivos, Programación autónoma, Metaprogramación |
Keyword: | Programming, Reflective languages, Autonomous programming, Metaprogramming |
Texto completo: | Texto completo (Ver PDF) |