最近在忙一些其他的事情。因为工作的关系我稍微花了点时间研究了一下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) 阅读(3152)
评论(12) 编辑 收藏 引用 所属分类:
VL++3.0开发纪事