Vczh Library++ 3.0這破東西也做了一年半了,因此打算給它制作第一個(gè)Release。這個(gè)Release將計(jì)劃包含下面的東西:
1、vle.exe。這是一個(gè)編譯器和虛擬機(jī)的命令行程序。通過這個(gè)程序可以把NativeX程序編譯成assembly、可以執(zhí)行基于控制臺(tái)的assembly程序、以及運(yùn)行我為這個(gè)平臺(tái)開發(fā)的一個(gè)單元測(cè)試工具。這些是已經(jīng)開發(fā)完成的了。接下來還要給vle.exe添加鏈接功能。所謂的鏈接功能是指將多個(gè)assembly合并成一個(gè),并且預(yù)先展開所有模板函數(shù)、模板變量和concept mapping等等。雖然NativeX程序跟C語言很像(多了泛型和concept mapping),也需要頭文件,不過其機(jī)制并不像#include那樣把文件復(fù)制進(jìn)去,而是類似pascal。為了調(diào)用另一個(gè)assembly而必須的頭文件可以讓編譯器在編譯的過程中產(chǎn)生,不需要人去維護(hù)。
2、vlscript.dll。這是一個(gè)編譯器和虛擬機(jī)的函數(shù)庫。這個(gè)函數(shù)庫將會(huì)制作成C而不是C++的格式。我在盡可能讓vlscript.dll包含vle.exe所具有的全部功能以外,還要添加一些其他的譬如可以遍歷一個(gè)assembly里面各種聲明什么的的一些功能,以便二次開發(fā)的時(shí)候可以利用vlscript.dll完成很多有趣的事情。
3、TurtleDotNet.exe。這暫時(shí)還是一個(gè)設(shè)想。還記得舊社會(huì)的LOGO語言吧?最近新出的Microsoft Small Basic也跟LOGO一樣可以使用烏龜畫圖。這是一個(gè)很好的教程式的函數(shù)庫,因此我也打算做一個(gè)。因?yàn)闀r(shí)間的關(guān)系,我并不會(huì)在第一個(gè)Release里面包含一個(gè)NativeX的IDE,而只是包含一個(gè)C#寫的窗口程序,可以讀取assembly并提供烏龜畫圖的功能。這也同時(shí)展示了C#如何跟C的dll進(jìn)行互操作。
4、各種NativeX的demo。現(xiàn)在已經(jīng)開發(fā)好的demo包含一個(gè)四則運(yùn)算分析器的程序。這個(gè)程序從字符串生成語法樹(NativeX也可以利用虛函數(shù)表來模擬多態(tài),雖然這需要人肉完成而不是語法完成),然后做各種事情。我還附帶一個(gè)四則運(yùn)算分析庫的單元測(cè)試程序。另一個(gè)開發(fā)好的demo是一個(gè)猜數(shù)字游戲。程序隨機(jī)產(chǎn)生4個(gè)0-9范圍內(nèi)的數(shù)字,然后讓你也輸入4個(gè),告訴你命中了多少,半命中(數(shù)字對(duì)位置不對(duì))了多少,然后一直到你放棄或者猜中為止,程序結(jié)束。
上面已經(jīng)開發(fā)好的東西已經(jīng)check in在codeplex里面了,感興趣的話可以
自行下載。不過那個(gè)vle.exe是以源代碼的形式存放的(不像Release,都是編譯好的東西),因此如果想要看到效果的話,需要裝有Visual Studio 2010。編譯完之后,在Tools\Release\Vlpp\和Tools\Release\Vlpp\ScriptSample\CrossAssemblyInvoking\Binary\下面有Readme.txt,會(huì)告訴你在編譯完vle.exe之后如何部署他們,使得上述的兩個(gè)NativeX demo可以編譯和運(yùn)行。
拭目以待吧,哇哈哈。
posted on 2011-02-19 23:29
陳梓瀚(vczh) 閱讀(3498)
評(píng)論(1) 編輯 收藏 引用 所屬分類:
VL++3.0開發(fā)紀(jì)事