[Loro-dev] BeanShell
Status: Beta
Brought to you by:
carueda
From: Carlos R. <ca...@uc...> - 2002-10-11 18:43:17
|
Versión 0.8pre4 sobre núcleo 0.7.3 (Nota: este versión sólo es anunciada en la lista loro-dev) Implementación de algoritmos en BeanShell - http://beanshell.org Un ejemplo dice más que 1K palabras: algoritmo esc para escribir(cad:cadena) implementacion "bsh" {% $amb.obtManejadorEntradaSalida().escribir("cad = " +cad); %} fin algoritmo El identificador es "bsh". En la gramática se ha agregado el componente léxico {% ... %} (pero se sigue aceptando el literal cadena) para facilitar la escritura del código en el lenguaje foráneo (no tener que escapar sus posibles literales cadena). Esta es una primera implementación que ya es funcional pero que debe complementarse principalmente a nivel de documentación :-) Como sabrán, el código BeanShell es esencialmente código Java, además de ofrecer algunas facilidades (abreviaciones) típicamente asociadas a los lenguajes "script" (ver por ejemplo http://beanshell.org/manual/intro.html#Introduction). Un esquema general incluiría la posibilidad de especificar diversos lenguajes de implementación, siempre que se utilice Java como mecanismo de comunicación. Sin embargo, aún no se tiene algún plan para esto. Más bien, se utilizará esta alternativa BeanShell (y quizá también Jython) para clarificar los aspectos de diseño que ahora no estén muy claros, antes de empreder alguna generalización. API Por ahora se puede acceder al entorno de ejecución desde el código BeanShell a través del objeto $amb. Este objeto responde a la interface loro.ijava.LAmbiente, y viene a ser exactamente el mismo objeto que se ha venido utilizando para implementación propiamente en Java (identificador "java"). Esta API, paquete loro.ijava, amerita una revisión general. Objetivo El objetivo es doble. Por una parte, hacer más flexible el aprovechamiento de Java libraries para implementar extensiones Loro. Por otra parte, también se persigue que este mecanismo ayude al propósito didáctico de facilitarle al estudiante la transición a otros lenguajes de programación (por lo menos, en cuanto a un primer contacto en el contexto del diseño por contracto fomentado por Loro). Como siempre: Todo comentario es bienvenido! |