最近在忙一些其他的事情。因為工作的關系我稍微花了點時間研究了一下C#,因此就沒往博客上寫文章了。
Vczh Library++ 3.0的工作也暫停了半個月,下個星期就要開始恢復了。最近Codeplex服務器的URL修改了導致項目連接不上,后來還是修掉了,主要是得手動更改sln文件的內容,花了好久才知道怎么做。
目前的進度是實現了generic constraint的數據結構但是沒有加入語法分析和語義分析的內容。generic constraint比較簡單,就如同C#的那個where,我可以寫:
1 concept T : IEq
2 {
3 
4 }
5
6 concept T : ISort
7 where T : IEq
8 {
9 
10 }
11
12 generic<T>
13 where T : ISort
14 function void Sort(T* values, int count)
15 {
16 
17 }
這是很重要的,因為沒有了where,在Sort下面就沒辦法使用ISort和IEq里面定義的函數了。在NativeX可以成為一門真正可以使用的中間語言之前,還必須實現下面的功能:
1、 generic constraint
2、concept instance函數調用
3、異常處理
4、外部函數接口
5、調試器接口
6、裝載的時候檢查元數據引入表是否匹配了所有已經加載的assembly
剩下的事情也不多了,就慢慢做吧。做完之后就可以開始寫一些parser來驗證這個NativeX究竟行不行了,我可以將Python和Basic都修改成一個類似C的語言(可以處理指針,沒有垃圾收集,等),然后把它編譯成NativeX的語法樹,這樣就可以開發一個支持多語言的編程接口并測試它了。
posted on 2010-08-06 18:31
陳梓瀚(vczh) 閱讀(3167)
評論(12) 編輯 收藏 引用 所屬分類:
VL++3.0開發紀事