Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
articulo-revised [2008/04/25 20:20] – minostro | articulo-revised [2008/04/28 21:46] (current) – etanter | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | < | ||
+ | |||
+ | |||
+ | |||
+ | Propuesta: | ||
+ | |||
+ | |||
+ | PLEIAD (Programming Languages and Environments for Intelligent, | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | |||
+ | Los lenguajes de programación a medida que son utilizados van adquiriendo cierta popularidad. Hoy Java y C# son muy populares. Su antecesor en popularidad fue C++ y los antecesores a este fueron C y FORTRAN sucesivamente. Los lenguajes de programación son diseñados para satisfacer determinados ambientes tecnológicos de ejecución, con el propósito de facilitar el desarrollo de ciertos tipos de soluciones. A medida que la tecnología va cambiando, los lenguajes de programación van quedando obsoletos. Es por esto que un lenguaje de programación puede verse afectado por cambios y evoluciones a lo largo de su vida. La comunidad de Ingeniería en Software y Lenguajes está constantemente en búsqueda de lenguajes de programación que satisfagan las nuevas tecnologías. Por ejemplo, ahora que Java ya tiene más de 10 años, se esta explorando lo que a veces se denomina el “mundo post-Java”. Un ejemplo claro de esta búsqueda es la utilización de forma más masiva de los lenguajes de programación dinámicos como Python y Ruby. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | |||
+ | Es importante señalar que los lenguajes de programación tienen un rol fundamental en la forma en la cual los desarrolladores manejan la complejidad de los sistemas computacionales. Por ejemplo, la programación por objetos y por componentes es la base sobre la cual muchos sistemas de gran envergadura están construidos. | ||
+ | |||
+ | |||
+ | La ubicuidad incesante de la computación a todos los niveles de la sociedad implica más complejidad para el software. Esto llama a desarrollar mejores formas lingüisticas que manejen esa complejidad. Un ejemplo de este fenómeno es la emergencia del paradigma de Programación Orientada a Aspectos (AOP), el cual permite la definición modular de preocupaciones que son transversales a los objetos de un sistema, como la seguridad o la coordinación de actividades. Con AOP, se logra mejor desacoplamiento y reusabilidad de los componentes y objetos. Esto también permite mejor adaptabilidad del sistema en forma dinámica. | ||
+ | |||
+ | |||
+ | |||
+ | Nota: desarrollador no es lo mismo que programador, | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | Es en este contexto que se desempeña el laboratorio PLEIAD, cuya investigación al día de hoy abarca tres áreas principales: | ||
+ | |||
+ | |||
+ | |||
+ | Áreas Principales | ||
+ | |||
+ | En el laboratorio PLEIAD se investigan al día de hoy tres áreas principales: | ||
+ | |||
+ | *Programación por aspectos (AOP) | ||
+ | *Depuración y comprensión de programas | ||
+ | *Programación de sistemas de computación pervasiva. | ||
+ | |||
+ | |||
+ | |||
+ | A continuación detallamos brevemente estas áreas. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | |||
+ | Programación por Aspectos (AOP) : Introduce nuevos mecanismos para definir software en forma más modular y más adaptable. AOP tiene una fuerte herencia de los trabajos sobre reflexión computacional, | ||
+ | |||
+ | |||
+ | *Construcción y definición de lenguajes AOP: incluyendo lenguajes específicos a cierto dominio (por ejemplo un lenguaje dedicado a la definición del manejo de transacciones), | ||
+ | |||
+ | |||
+ | *Mejoramiento de los mecanismos provistos: para el control del impacto de un aspecto sobre un sistema dado. Esta investigación se hace con una mirada particular a las problemáticas asociadas a la introducción de aspectos en sistemas complejos, es decir, concurrentes y distribuidos. | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | |||
+ | Depuración y comprensión de programas. La depuración consiste en ayudar al desarrollador a encontrar errores en un programa. De forma más general, esto pertenece al área de “entendimiento de programas” (program understanding). Es decir, cómo ayudar a un ser humano en entender con suficientes detalles lo que pasa en un programa como para ser capaz de modificarlo o corregirlo, manteniendo un nivel de abstracción que le permita aprender el programa sin ser sobrepasado por su complejidad. En particular, en PLEIAD se está trabajando sobre un sistema de Depuración Omnisciente llamado TOD (Trace-Oriented Debugger). | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | |||
+ | Computación Pervasiva. La computación pervasiva o inteligencia ambiental, se refiere al desarrollo de sistemas computacionales para usuarios móviles con aparatos móviles, en los cuales la integración de los sistemas en la vida diaria es lo más transparente posible. Esto requiere de sistemas que sepan captar su ambiente de ejecución y adaptarse a ello en forma dinámica. Programar dichos sistemas con lenguajes tradicionales implica un nivel de complejidad enorme para manejar todos los detalles relacionados con la naturaleza volátil del ambiente y de las conexiones. PLEIAD trabaja en lenguajes dedicados, que proveen abstracciones adecuadas para que el programador pueda especificar tanto la percepción del ambiente cómo la adaptación del sistema. En estos momentos se experimenta con el lenguaje AmbientTalk, | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | El laboratorio PLEIAD fue inaugurado recién en Noviembre 2007, con la presencia de Ron Goldman, ingeniero de investigación de Sun Labs en EE.UU., a cargo del proyecto de Sun SPOTs, unos aparatos para inteligencia ambiental dotados de sensores y que corren una máquina virtual Java. PLEIAD está inicialmente formado por dos profesores full-time, Johan Fabry y Éric Tanter, cuatro estudiantes de doctorado y un estudiante de magister. Se están integrandos nuevos miembros, en particular en post-doctorado, | ||
+ | |||
+ | A pesar de ser un laboratorio joven, PLEIAD ya está logrando exponerse a nivel internacional en las distintas áreas en que se desempeña. En la conferencia ACM sobre desarrollo de software orientado a aspectos (AOSD 2008), se presentará un artículo técnico sobre scoping de aspectos dinámicos, se organizará un workshop sobre lenguajes de aspectos específicos a dominios, y se dará una demonstración del debugger TOD desarrollado en PLEIAD. Un artículo técnico sobre el debugger omnisciente ha sido publicado en OOPSLA 2007, la conferencia de referencia del ACM en el área, y otro sobre uso de TOD para programas orientados a aspectos se presentará en el simposio de computación aplicada del ACM (SAC 2008). Tambíen se organizó un workshop sobre computación inspirada en la biología en Diciembre en Valparaíso (BIC 2007), que contó con la presencia de varios expertos internacionales, | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Historia, Logros y desafíos | ||
+ | |||
+ | El laboratorio PLEIAD fue inaugurado recién en Noviembre 2007, con la presencia de Ron Goldman, Ingeniero de Investigación de Sun Labs en EE.UU., a cargo del proyecto de Sun SPOTs, unos aparatos para inteligencia ambiental dotados de sensores y que corren una máquina virtual Java. | ||
+ | |||
+ | |||
+ | |||
+ | PLEIAD está inicialmente formado por dos profesores full-time, Johan Fabry y Éric Tanter, cuatro estudiantes de doctorado y un estudiante de magister. Se están integrando nuevos miembros, en particular en post-doctorado, | ||
+ | |||
+ | A pesar de ser un laboratorio joven, PLEIAD ya está logrando exponerse a nivel internacional en las distintas áreas en que se desempeña. En la conferencia ACM sobre desarrollo de software orientado a aspectos (AOSD 2008) se presentará un artículo técnico sobre scoping de aspectos dinámicos, se organizará un workshop sobre lenguajes de aspectos específicos a dominios, y se dará una demonstración del Depurador TOD. Un artículo técnico sobre el depurador omnisciente ha sido publicado en OOPSLA 2007, la conferencia de referencia del ACM en el área, y otro sobre uso de TOD para programas orientados a aspectos se presentará en el simposio de computación aplicada del ACM (SAC 2008). También se organizó un workshop sobre computación inspirada en la biología en Diciembre en Valparaíso (BIC 2007), que contó con la presencia de varios expertos internacionales, | ||
+ | |||
+ | |||