R++ v1.5内核改动较大,下面是一些主要变化:
1.使用PJIT(Pseudocode Just-In-Time),编译速度大幅提高,但运行效率远远不如C++,不过R++将在下一版本支持RJIT(Real Just-In-Time),理论上RJIT的运行速度和C++完全相同,而编译速度却比C++快得多。2.强大的元编程支持,元函数可以直接访问实函数的变量
3.完整的反射和自省机制,解释器和R++代码几乎融为一体
4.字符串常量统一使用utf8(如果需要在控制台输出中文请参考rpp.pdf修改控制台的编码)
5.完整的模板函数支持,模板函数不仅可以作为类的成员,还可以动态生成
6.可变参数支持
7.内部列表多改为红黑树,动态调用效率大幅提高
8.方便的调用外部DLL接口(R++所有数据类型和C/C++二进制兼容)
9.暂不支持跨平台和生成机器码,如果需要这些功能请暂时使用v1.1
特性 | R++ | C++ | Java | Lisp |
模板 | √ | √ | × | × |
宏 | √ | 不太安全 | × | √√ |
运算符自定义 | √ | 仅重载 | × | 仅前缀 |
语法简洁 | 简洁 | 不太简洁 | 较简洁 | 极简洁 |
内联汇编 | √ | √ | × | × |
指针 | √ | √ | × | × |
元编程(非模板) | √ | × | × | √ |
动态编译 | √ | × | √ | √ |
模块(包) | v1.1支持 | × | √ | √ |
内置并行通讯 | × | × | × | × |
依赖解释器 | 双运行模式 | 不依赖 | 依赖 | 依赖 |
国产 | √ | × | × | × |
以上列举了几种语言的关键特性,可以看到R++的确像C++和Lisp的综合体,不过目前R++无论是运行速度还是成熟度,都无法和这些主流语言竞争。
由于作者水平有限,错误和疏漏之处在所难免,欢迎广大专家和用户指正。
QQ交流群:34269848
下载地址:
http://pan.baidu.com/share/link?shareid=2588214458&uk=3120889058