Janino 2.7.8

Licença: Livre ‎Tamanho do arquivo: 1.05 MB
‎Classificação dos usuários: 2.7/5 - ‎6 ‎Votos

Janino é um super-pequeno, super-fastcompilador que lê uma expressão Java, bloco ou arquivo de origem, e gera código de armazenamento Java que é carregado e executado diretamente. Não se destina a ser uma ferramenta de desenvolvimento, mas um compilador incorporado para fins de compilação em tempo de execução, como avaliadores de expressão ou "páginas de servidor" motores como JSP. Propriedades O principal objetivo do projeto era manter o compilador pequeno e simples, enquanto sacrificava parcialmente a completude. Eu não gosto da ideia de carregar bibliotecas enormes para aplicações simples. Consulte Parser para obter a lista de recursos de linguagem implementados e ausentes. Quando você precisa de um avaliador de expressão eficiente? Digamos que você construa um sistema de e-commerce, que calcula o custo de envio dos itens que o usuário colocou em seu carrinho de compras. Como você não conhece o modelo de custo de envio do comerciante na hora da implementação, você pode implementar um conjunto de modelos de custo de envio que vêm à mente (carga plana, em peso, em número de itens, ...) e selecionar um daqueles em tempo de execução. Na prática, você certamente descobrirá que os modelos de custo de envio que você implementou raramente corresponderão ao que o comerciante quer, então você deve adicionar modelos personalizados, que são específicos para o mercador. Se o modelo do comerciante mudar mais tarde, você deve alterar seu código, re compilar e re-distribuir seu software. Por isso ser tão inflexível, a expressão do custo de envio deve ser especificada no tempo de execução, não na hora do compilado. Isso implica que a expressão deve ser digitalizada, analisada e avaliada em tempo de execução, razão pela qual você precisa de um avaliador de expressão. Um simples avaliador de expressão analisaria uma expressão e criaria uma árvore "sintaxe". A expressão "a + b * c", por exemplo, compilaria em a "Sum" objeto quem é o primeiro operando é parâmetro "a" e quem é o segundo operando é um "Product" objeto quem operands são parâmetros "b" e "c". Tal árvore de sintaxe pode ser avaliada relativamente rapidamente. No entanto, o desempenho do tempo de execução é cerca de um fator 100 pior do que o do código Java nativo.

história da versão

  • Versão 2.5.7 postado em 2002-11-09
    Atualize a página de visão geral.

Detalhes do programa

Eula

EULA - Contrato de Licença do Usuário Final

Janino - Um compilador Java[TM] incorporado Copyright (c) 2001-2010, Arno Unkrig Todos os direitos reservados. Redistribuição e uso em formas de origem e binária, com ou sem modificação, são permitidos desde que as seguintes condições são atendidas: 1. As redistribuições do código fonte devem reter os direitos autorais acima aviso, esta lista de condições e o seguinte aviso de isenção de responsabilidade. 2. Redistribuições na forma binária devem reproduzir o acima aviso de direitos autorais, esta lista de condições e o seguinte isenção de responsabilidade na documentação e/ou outros materiais fornecido com a distribuição. 3. O nome do autor não pode ser usado para endossar ou promover produtos derivados deste software sem especificação prévia permissão por escrito. ESTE SOFTWARE É FORNECIDO PELO AUTOR ''COMO É'' E QUALQUER EXPRESSO OU GARANTIAS IMPLÍCITA, INCLUINDO, MAS NÃO LIMITADO A, O IMPLÍCITO GARANTIAS DE COMERCIALIZAÇÃO E APTIDÃO PARA UM PROPÓSITO ESPECÍFICO SÃO REPUDIADOS. EM NENHUM CASO O AUTOR SERÁ RESPONSÁVEL POR qualquer DIRETA, INDIRETA, INCIDENTAL, ESPECIAL, EXEMPLAR OU CONSEQUENTE DANOS (INCLUINDO, MAS NÃO LIMITADO A, AQUISIÇÃO DE SUBSTITUTO BENS OU SERVIÇOS; PERDA DE USO, DADOS OU LUCROS; OU NEGÓCIOS INTERRUPÇÃO) NO ENTANTO, CAUSADA E EM QUALQUER TEORIA DA RESPONSABILIDADE, SE EM CONTRATO, RESPONSABILIDADE ESTRITA OU DELITO (INCLUINDO NEGLIGÊNCIA OU CASO CONTRÁRIO) DECORRENTE DE QUALQUER FORMA FORA DO USO DESTE SOFTWARE, MESMO SE INFORMADO DA POSSIBILIDADE DE TAL DANO.