莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          Aviator(表達式執行引擎)發布1.0.1

          Posted on 2010-09-07 14:22 dennis 閱讀(4919) 評論(1)  編輯  收藏 所屬分類: javamy open-source

              Aviator是一個表達式執行引擎,最近由于工作上的原因,又將這個東西擴充了一下,加入了靜態的編譯優化和seq庫。

              對于類似"1+2"這樣由常量組成的表達式,會在編譯的時候直接計算出結果而非生成字節碼運行時計算。非常量組成的表達式如"3.14*R*R+4/2"也會在編譯的時候優化成"3.14*R*R+2",也就是說能在編譯的時候計算的都計算出來,不能在編譯的時候確定的就生成字節碼,運行時動態計算。默認不啟用編譯優化,除非設置:
          AviatorEvaluator.setOptimize(AviatorEvaluator.EVAL);

              另外,加入了seq庫用于操作集合和數組,在aviator中,你可以用[ ]操作符直接訪問數組和java.util.List,除此之外seq庫添加了一些對數組和集合的常用操作,示例如下:
          map(seq,println)            //打印集合
          map(seq,-)                  //取集合中元素的相反數組成的集合
          include(seq,element)       //判斷element是否在集合中
          sort(seq)                  //排序,返回新的集合
          reduce(seq,+,0)            //求和
          reduce(seq,-,1)           //求積
          filter(seq,seq.gt(3)      //大于3的元素組成的新集合
          filter(seq,seq.exists())  //不為nil元素組成的新集合
          count(seq)            //集合大小

          可以看到seq庫的風格偏向FP,但是能做的事情其實有限,畢竟aviator不是一門語言,seq庫只提供了最常見的一些函數,其他的只有用戶自己擴展了。

              Aviator的一個介紹PPT


              Aviator 1.0.1也已經放到maven的中心倉庫,你可以直接引用:
                  <dependency>
                      
          <groupId>com.googlecode.aviator</groupId>
                      
          <artifactId>aviator</artifactId>
                     
          <version>1.0.1</version>
                  
          </dependency>
            
              


          評論

          # re: Aviator(表達式執行引擎)發布1.0.1[未登錄]  回復  更多評論   

          2010-09-29 15:32 by qinfen
          很感興趣你的的數據是怎么導出,用什么工具。。。
          主站蜘蛛池模板: 株洲县| 怀集县| 青铜峡市| 泾阳县| 巩义市| 德化县| 遂川县| 东丽区| 高唐县| 边坝县| 阳高县| 陕西省| 江油市| 西丰县| 四会市| 神农架林区| 寿光市| 辰溪县| 永胜县| 丽江市| 和林格尔县| 泰州市| 灌云县| 天长市| 文水县| 土默特左旗| 定南县| 广灵县| 南华县| 咸丰县| 灯塔市| 台中县| 宜君县| 石楼县| 连州市| 博乐市| 东台市| 竹溪县| 华亭县| 日照市| 富源县|