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.