Janino 2.7.8

Licencia: Gratis ‎Tamaño del archivo: 1.05 MB
‎Calificación de usuarios: 2.7/5 - ‎6 ‎Votos

Janino es un super-pequeño, super-rápidocompilador que lee una expresión Java, bloque o archivo de origen, y genera código de bytes Java que se carga y ejecuta directamente. No está pensado para ser una herramienta de desarrollo, sino un compilador incrustado para fines de compilación en tiempo de ejecución, como evaluadores de expresiones o motores "server pages" como JSP. Propiedades El objetivo principal del diseño era mantener el compilador pequeño y sencillo, mientras sacrificaba parcialmente la integridad. No me gusta la idea de llevar bibliotecas enormes para aplicaciones simples. Consulte Analizador para obtener la lista de características de idioma implementadas y que faltan. ¿Cuándo necesita un evaluador de expresiones eficiente? Supongamos que crea un sistema de comercio electrónico, que calcula el costo de envío de los artículos que el usuario puso en su carrito de compras. Dado que no conoce el modelo de costos de envío del comerciante en el momento de la implementación, podría implementar un conjunto de modelos de costos de envío que vienen a la mente (cargo fijo, por peso, por número de artículos, ...) y seleccionar uno de ellos en tiempo de ejecución. En la práctica, seguramente encontrará que los modelos de costos de envío que implementó rara vez coincidirán con lo que el comerciante quiere, por lo que debe agregar modelos personalizados, que son específicos del comerciante. Si el modelo del comerciante cambia más tarde, debe cambiar el código, volver a compilar y volver a distribuir el software. Dado que esto es tan irreflexible, la expresión de costo de envío debe especificarse en tiempo de ejecución, no en tiempo de compilación. Esto implica que la expresión debe examinarse, analizarse y evaluarse en tiempo de ejecución, por lo que necesita un evaluador de expresiones. Un evaluador de expresiones simple analizaría una expresión y crearía un "syntax tree". La expresión "a + b * c", por ejemplo, compilaría en un objeto "Sum" quién es el primer operando es el parámetro "a" y quién es un objeto "Product" que sus operandos son parámetros "b" y "c". Este árbol de sintaxis se puede evaluar con relativa rapidez. Sin embargo, el rendimiento en tiempo de ejecución es aproximadamente un factor de 100 peor que el del código Java nativo.

historial de versiones

  • Versión 2.5.7 publicado en 2002-11-09
    Se ha actualizado la página de información general.

Detalles del programa

Cluf

EULA - Contrato de licencia de usuario final

Janino - Un compilador Java[TM] incrustado Copyright (c) 2001-2010, Arno Unkrig Todos los derechos reservados. Redistribución y uso en formas de origen y binarias, con o sin modificación, están permitidos siempre que las siguientes condiciones se cumplen: 1. Las redistribuciones del código fuente deben conservar los derechos de autor anteriores aviso, esta lista de condiciones y el siguiente descargo de responsabilidad. 2. Las redistribuciones en forma binaria deben reproducir lo anterior aviso de derechos de autor, esta lista de condiciones y los siguientes descargo de responsabilidad en la documentación y/u otros materiales la distribución. 3. El nombre del autor no podrá utilizarse para productos derivados de este software sin permiso por escrito. ESTE SOFTWARE ES PROPORCIONADO POR EL AUTOR ''TAL CUAL'' Y CUALQUIER GARANTÍAS IMPLÍCITAS, INCLUIDAS, ENTRE OTRAS, LAS GARANTIAS DE COMERCIABILIDAD E IDONEIDAD PARA UN FIN PARTICULAR SE RENUNCIAN. EN NINGUNA CASO EL AUTOR SERÁ RESPONSABLE DE NINGUNA DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, EJEMPLAR O CONSECUENTE DAÑOS (INCLUYENDO, PERO NO LIMITADO A, LA ADQUISICIÓN DE BIENES O SERVICIOS; Pérdida de uso, datos o beneficios; O NEGOCIO INTERRUPCIONES) SIN EMBARGO CAUSADO Y EN CUALQUIER TEORÍA DE RESPONSABILIDAD, YA SEA EN CONTRATO, RESPONSABILIDAD ESTRICTA O TORT (INCLUYENDO NEGLIGENCIA O DE LO CONTRARIO) QUE SURJAN DE CUALQUIER MANERA FUERA DEL USO DE ESTE SOFTWARE, INCLUSO SI SE ADVERTENCIA DE LA POSIBILIDAD DE DICHOS DAños.