Other versions: 1.0

Change picture:

Choose file:

道Dao语言1.1更新概要 (发布于2009-09-19)

新特性:
  1. 内置的函数式编程方法(如map(), reduce()等);
  2. 内置的类函数式编程方法语法的数据构造方法(如string(), list()等);
  3. 一些内置的数学函数;
  4. 增强的switch-case控制结构;
  5. 尾递归优化;
  6. 新的do{}while()循环结构;
  7. 类型比较运算符:?= 和 ?<,以及相关的DVM_CHECK虚拟机指令;
  8. 断定(assert)运算符:??,用来检查上一操作是否成功, 或者更进一步提供操作失败时可使用的替代值;
  9. 单父类继承时的自动继承父类构造函数;
  10. 支持将脚本文件打包编译到道虚拟机可执行文件里;
  11. 按引用传递参数,常量参数。


重要变动与功能增强:
  1. 申明局部、全局、静态、成员,常量变量的关键字;
  2. 类的定义方式,禁止了在类体里放可执行语句;
  3. 更直观的运算符重载的语法;
  4. 适当的词法解析以正确地处理出现在类型名中的 >> 和类型名后的 >= 等运算符, 现在可以正确解析这样的代码: list<list<int>>, a : list<int>= {} ;
  5. 以引用的形式保存局部变量;
  6. 降低了启动垃圾回收的频次,减少了单线程下的垃圾回收额外开销;
  7. 通过更多地直接释放内存,达到更好的垃圾回收效率;
  8. 在可行的情况下减少了元组创建的次数,减少了生成的垃圾对象;
  9. 修改了类型对象和方法的预处理;
  10. 将一些C/C++接口函数从 DaoVmSpace 移到了 DaoNameSpace;
  11. 给math.rand(), math.rand_gaussian()增加了可选参数,此数将被乘到生成的随机数上;
  12. 改用使用 D 后缀表示双精度浮点数,而不再用双零表示;
  13. stdio 被改为了 io,当 stdio 还是作为 io 的别名被保留;
  14. stdlib 被改为了 std,当 stdlib 还是作为 stdio 的别名被保留;
  15. stdio.print/printf/println 被改为了 io.write/writef/writeln", print系列函数还是被作为别名被保留;
  16. 列表和数组的方法max()和min()的返回值还包括里最大最小值对应的下标;
  17. 增加更多的类型的缺省比较方式;
  18. 增强了从列表映射到元组;
  19. 在类型系统里避免了拷贝C函数,在传递参数个C函数时也避免了拷贝数据。

另外还修复了不少错误。autobind.dao工具也有了更多完善。
view count 1321 times
created at 2009-03-06, 13:44 GMT
modified at 2009-09-20, 02:16 GMT

12 3
456789 10
111213141516 17
181920212223 24
2526272829 30 31

fu: Many thanks (Jul.04,04:29)

klabim: fixed Hi, great, now my test works now :- ). (Jun.30,17:51)

Nightwalker: Few suggestions (Jul.03,14:37)

This site is powered by Dao
Copyright (C) 2009,2010, daovm.net.
Webmaster: admin@daovm.net