Sistema Computacional de Programación Flexible diseñado sobre una Máquina Abstracta Reflectiva No Restrictiva
- Ortín Soler, Francisco
- Juan Manuel Cueva Lovelle Director
Defence university: Universidad de Oviedo
Fecha de defensa: 01 February 2002
- José Antonio López Brugos Chair
- Darío Álvarez Gutiérrez Secretary
- José Nelson Pérez Castillo Committee member
- Juan Valiño Valiño García Committee member
- Luis Joyanes Aguilar Committee member
Type: Thesis
Abstract
Esta tesis describe el modo en el que distintas técnicas de reflectividad pueden ser empleadas para el desarrollo de un sistema computacional de programación extensible y adaptable dinámicamente, sin sufrir dependencia alguna de un lenguaje de programación específico, y empleando para ello una plataforma virtual heterogénea. Se diseña una máquina abstracta, de tamaño y complejidad semántica reducida, como la raíz computacional del sistema, que otorga primitivas básicas de reflectividad. Tanto su tamaño restringido como su capacidad introspectiva, la hacen susceptible de ser implantada en entornos computacionales heterogéneos, constituyendo adicionalmente un entorno computacional independiente de la plataforma. Haciendo uso de las facultades reflectivas ofrecidas por la máquina abstracta su nivel de abstracción computacional podrá ser extendido dinámicamente, utilizando para ello su propio lenguaje de programación sin necesidad de modificar la implementación reducida de la máquina virtual, y, por tanto, sin perder portabilidad de su código. El empleo de su capacidad extensible se utilizará, a modo de ejemplo, en el diseño de abstracciones propias de persistencia, distribución, planificación controlada de hilos y recolección de basura. Todas las abstracciones ofrecidas mediante la extensión de la plataforma, utilizando su propio lenguaje, son adaptables para cualquier aplicación, en tiempo de ejecución. Se diseña un sistema de procesamiento genérico de lenguajes disponiendo de las características reflectivas de la plataforma, dando lugar a una independencia global del lenguaje de programación seleccionado por el programador. Cualquier aplicación podrá interactuar con otra bajo el modelo computacional de objetos ofrecido por la máquina abstracta, independientemente del lenguaje en el que hayan sido creadas. La flexibilidad dinámica del sistema creado es superior, tanto en expresividad como en el espectro de facetas computacionales adaptables, a los actualmente existentes. La estructura de las aplicaciones en ejecución, y la especificación léxica, sintáctica y semántica del lenguaje de programación, son parámetros configurables dinámicamente, tanto por la propia aplicación ¿en cualquiera que sea su lenguaje de programación¿, como por cualquier otro programa. El sistema reflectivo ofrecido no posee restricción alguna respecto a las características computacionales a configurar, ni respecto al modo de expresar su adaptación. Toda la flexibilidad ofrecida es dinámica, no siendo necesario finalizar la ejecución de una aplicación para su configuración, pudiéndose adaptar ésta a requisitos surgidos dinámicamente, imprevisibles en tiempo de desarrollo.