|
|
Other versions: 1.0
道Dao语言1.1更新概要 (发布于2009-09-19)
新特性:
- 内置的函数式编程方法(如map(), reduce()等);
- 内置的类函数式编程方法语法的数据构造方法(如string(), list()等);
- 一些内置的数学函数;
- 增强的switch-case控制结构;
- 尾递归优化;
- 新的do{}while()循环结构;
- 类型比较运算符:?= 和 ?<,以及相关的DVM_CHECK虚拟机指令;
- 断定(assert)运算符:??,用来检查上一操作是否成功,
或者更进一步提供操作失败时可使用的替代值;
- 单父类继承时的自动继承父类构造函数;
- 支持将脚本文件打包编译到道虚拟机可执行文件里;
- 按引用传递参数,常量参数。
重要变动与功能增强:
- 申明局部、全局、静态、成员,常量变量的关键字;
- 类的定义方式,禁止了在类体里放可执行语句;
- 更直观的运算符重载的语法;
- 适当的词法解析以正确地处理出现在类型名中的 >> 和类型名后的 >= 等运算符,
现在可以正确解析这样的代码:
list<list<int>>, a : list<int>= {} ;
- 以引用的形式保存局部变量;
- 降低了启动垃圾回收的频次,减少了单线程下的垃圾回收额外开销;
- 通过更多地直接释放内存,达到更好的垃圾回收效率;
- 在可行的情况下减少了元组创建的次数,减少了生成的垃圾对象;
- 修改了类型对象和方法的预处理;
- 将一些C/C++接口函数从 DaoVmSpace 移到了 DaoNameSpace;
- 给math.rand(), math.rand_gaussian()增加了可选参数,此数将被乘到生成的随机数上;
- 改用使用 D 后缀表示双精度浮点数,而不再用双零表示;
- stdio 被改为了 io,当 stdio 还是作为 io 的别名被保留;
- stdlib 被改为了 std,当 stdlib 还是作为 stdio 的别名被保留;
- stdio.print/printf/println 被改为了 io.write/writef/writeln",
print系列函数还是被作为别名被保留;
- 列表和数组的方法max()和min()的返回值还包括里最大最小值对应的下标;
- 增加更多的类型的缺省比较方式;
- 增强了从列表映射到元组;
- 在类型系统里避免了拷贝C函数,在传递参数个C函数时也避免了拷贝数据。
另外还修复了不少错误。autobind.dao工具也有了更多完善。
view count 1321 times
created at 2009-03-06, 13:44 GMT modified at 2009-09-20, 02:16 GMT
|
| | | | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |
fu: Many thanks
(Jul.04,04:29)
klabim: fixed
Hi,
great, now my test works now :- ). (Jun.30,17:51)
|