Aviator是一個高性能、輕量級的java語言實現的表達式求值引擎,主要用于各種表達式的動態求值。
Aviator的設計目標是輕量級和高性能 ,相比于Groovy、JRuby的笨重,Aviator非常小,加上依賴包也才450K,不算依賴包的話只有70K;當然,Aviator的語法是受限的,它不是一門完整的語言,而只是語言的一小部分集合。
其次,Aviator的實現思路與其他輕量級的求值器很不相同,其他求值器一般都是通過解釋的方式運行,而Aviator則是直接將表達式編譯成Java字節碼,交給JVM去執行。簡單來說,Aviator的定位是介于Groovy這樣的重量級腳本語言和IKExpression這樣的輕量級表達式引擎之間。
特性
Aviator的特性
- 支持大部分運算操作符,包括算術操作符、關系運算符、邏輯操作符、正則匹配操作符(=~)、三元表達式?: ,并且支持操作符的優先級和括號強制優先級,具體請看后面的操作符列表。 </UL>
- 支持函數調用和自定義函數 </UL>
- 支持正則表達式匹配,類似Ruby、Perl的匹配語法,并且支持類Ruby的$digit指向匹配分組。 </UL>
- 自動類型轉換,當執行操作的時候,會自動判斷操作數類型并做相應轉換,無法轉換即拋異常。 </UL>
- 支持傳入變量,支持類似a.b.c的嵌套變量訪問。 </UL>
- 性能優秀 </UL>
- 沒有if else、do while等語句,沒有賦值語句,僅支持邏輯表達式、算術表達式、三元表達式和正則匹配。 </UL>
- 沒有位運算符 </UL>文檔地址:http://www.slideshare.net/killme2008/aviator
Aviator的限制:
<DIV class=date>收錄時間:2011-05-04 14:42:14</DIV>
本文由用戶 碼頭工人自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!