java aviator2.0版本發(fā)布,輕量級(jí)高性能Java表達(dá)式求值器?
aviator2.0版本發(fā)布,輕量級(jí)高性能Java表達(dá)式求值器?飛行員的設(shè)計(jì)思想與使用groovyobject進(jìn)行評(píng)估的設(shè)計(jì)思想相同。通過編譯和動(dòng)態(tài)生成字節(jié)碼,將表達(dá)式編譯成一個(gè)類,然后通過反射執(zhí)行該
aviator2.0版本發(fā)布,輕量級(jí)高性能Java表達(dá)式求值器?
飛行員的設(shè)計(jì)思想與使用groovyobject進(jìn)行評(píng)估的設(shè)計(jì)思想相同。通過編譯和動(dòng)態(tài)生成字節(jié)碼,將表達(dá)式編譯成一個(gè)類,然后通過反射執(zhí)行該類。因此,aviator的效率要高于純解釋的ikeeexpression。自從上一次發(fā)布1.0以來,已經(jīng)發(fā)布了1.01,但是幾乎沒有什么宣傳。此次發(fā)布的里程碑版2.0,主要改進(jìn)如下:1、完全支持位運(yùn)算符,與Java完全一致。2優(yōu)化性能,平均性能提高100%,函數(shù)調(diào)用性能提高200%。三。添加新函數(shù),包括long、double、STR等用于類型轉(zhuǎn)換的函數(shù)字符串.indexOf功能。4改進(jìn)用戶手冊(cè)并更新性能測(cè)試。
編譯原理,語義分析,算術(shù)表達(dá)式求值代碼?
Java字符串算術(shù)表達(dá)式求值:導(dǎo)入java.util.ArrayListPortJava. 實(shí)用堆棧/****@Authoryhh**/publicclasscalculate{/**將字符串轉(zhuǎn)換為list*@paramstr*@return*/publicarraylistgetstringlist(stringstr){ArrayListSult=newarraylist()stringnum=“”for(inti=0igetpostorder(ArrayListOrderList){ArrayListSult=newarraylist()stackstack=news)(inti=0ipostOrder)的tack(){Stackstack=newStack()(inti=0i)