Janino 2.7.8

许可: 免费 ‎文件大小: 1.05 MB
‎用户评分: 2.7/5 - ‎6 ‎评分

Janino 是一个超小型、超快速的编译程序,可读取 Java 表达式、块或源文件,并生成直接加载和执行的 Java 字节码。它并不是一个开发工具,而是一个用于运行时编译的嵌入式编译器,例如表达式评估器或"服务器页面"和"JSP"等引擎。 性能 主要设计目标是保持编译器小而简单,同时部分牺牲完整性。我不喜欢为简单应用程序携带庞大的库的想法。有关已实现和缺少的语言功能的列表,请参阅 Parser。 何时需要高效的表达式评估器? 例如,您建立了一个电子商务系统,用于计算用户放入购物车中的项目的运费。因为您不知道商家的运输成本模型在实现时,你可以实现一组航运成本模型想到(平坦收费,按重量,按项目的数量,...),并选择其中之一在运行时。 在实践中,您肯定会发现您实现的运输成本模型很少与商家需要的价格相匹配,因此您必须添加特定于商家的自定义模型。如果商家的模型稍后发生更改,则必须更改代码、重新编译和重新分发软件。 由于这非常不灵活,因此应在运行时而不是编译时指定运输成本表达式。这意味着必须在运行时扫描、解析和计算表达式,这就是为什么您需要表达式评估器的原因。 简单的表达式评估器将分析表达式并创建"语法树"& quot;例如,表达式 "a = b = c"将编译为 "第一个操作数"的对象,而第二个操作数为参数 "Product"操作数为参数 "b"这样的语法树可以相对快速地评估。但是,运行时性能比本机 Java 代码差 100 倍。

版本历史记录

  • 版本 2.5.7 发布于 2002-11-09
    更新了概览页面。

软件信息

终端用户许可协议

Janino - An embedded Java[TM] compiler Copyright (c) 2001-2010, Arno Unkrig All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.