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++无论是运行速度还是成熟度,都无法和这些主流语言竞争。
下载地址: