Saltar a contenido

Diseño e implementación

Macro-diseño

Introducción

Este documento da una visión general de los aspectos de diseño más importantes del sistema desde un punto de vista "macro". Puede utilizarse como una guía para nuevos miembros que desean participar en desarrollo y necesitan decidir en dónde podrían concentrar su trabajo. Es de anotar que la implementación actual es el resultado de diversas etapas de actividad con distintos niveles de dedicación, expectativas e ideas de diseño. Si bien ya se ha avanzado muy significativamente en un plan de "refactoring" que mejore el diseño general del sistema, aún faltan algunos elementos importantes que se comentarán en su oportunidad. Todo comentario será muy bienvenido y puede canalizarse a través de la lista de correo loro-dev.
Nota: En construcción!

Subsistemas principales

  • Núcleo de servicios del lenguaje
  • Clientes de interface

Núcleo

Este subsistema está diseñado de tal forma que pueda utilizarse flexiblemente por diversos tipos de usuarios o clientes, así como por programadores que deseen cambiar algunos de sus componentes. En cuanto a los clientes, se ofrece una API bien definida y relativamente simple para acceder a los servicios más importantes:

  • Inicializar el núcleo
  • Obtener algunos objetos (a través de las interfaces correspondientes) encargados de ciertas tareas como compilación, ejecución, generación de documentación, etc.
  • Terminar la sesión de trabajo con el núcleo.

(Diagrama de clases formato PDF generado con JVision).
En cuanto a facilidades para reprogramación, se han concentrado esfuerzos principalmente en lo correspondiente a la generación del árbol sintáctico. Actualmente se cuenta con una implementación basada en la herramienta JavaCC para esta tarea, pero el sistema está preparado para acoplarse con otras implementaciones a través de las interfaces adecuadas. Entre las alternativas interesantes están ANTLR y SableCC. 

Clientes de interface

Se refieren a componentes de software que se comunican con el núcleo para ofrecer facilidades hacia los usuarios finales.

LoroEDI

Actualmente se ofrece un entorno de desarrollo integrado encargado de ofrecerle un interfaz gráfica al usuario final para canalizar los servicios ofrecidos de una manera cómoda y tratando de incorporar algunas pautas didácticas en su diseño. Aquí aún hay mucho por hacer.

Plug-ins

En esta categoría, un poco menos didáctica, se busca contar con posibilidades de utilización del lenguaje en otros ambientes de interfaz. Por ejemplo, se cuenta con una primera versión de un plug-in para el editor jEdit. Pero también sería interesante explorar otras posibilidades como Eclipse y Netbeans. Aunque no es muy prioritario, lo que se busca es facilitar el desarrollo de paquetes de extensión por parte de programadores no principiantes que desearían utilizar herramientas más sofisticadas de edición y desarrollo.

Last updated: May 3, 2007.