Dao Script- 道程序语言

网友投稿 698 2022-10-13

Dao Script- 道程序语言

Dao Script- 道程序语言

道(Dao)语言是一个轻量级、支持可选类型申明的程序语言。它支持很多高级特性,对基于多核的并行编程有很好的支持。它的C编程接口简单易用,方便嵌入或扩展。

主要特性:

支持可选类型标注,类型推导和静态检查; 支持基于类和接口的面向对象编程; 支持代码块方法(替代函数式方法); 对并行编程有内置的原生支持; 有并行的基于垃圾回收的内存管理; 支持带类型检查的协程; 支持闭包,匿名函数和类; 有类BNF语法宏系统; 设计和实现为基于寄存器的虚拟机; 使用跨平台的标准C实现; 有简单易用的C编程接口,方便嵌入或扩展; 有基于LLVM的及时编译器; 有基于Clang的自动封装工具; 使用简化的BSD许可发布。

示例代码:

# 类型别名:type Address = tuple# 带有显示参数类型的函数:routine Rout( name : string, index = 123 ) => int {    io.writeln( name, index )    return 123 }Rout( 'abc' )class InheritanceBase{    var  address : Address = ( 123, 'Main St' )}class MixinBase { var name = 'Joe' }# 定义一个包含MixinBase,并继承InheritanceBase的类:class Klass ( MixinBase ) : InheritanceBase{    static state : enum = $off}someone = Klass()# 闭包:closure = routine( x ){ io.writeln( x ) } for( i = 1 : 5 ) defer { closure( i ) }routine Producer( chan : mt::channel ){    for( index = 1 : 10 ) chan.send( index )    chan.cap(0)}routine Consumer( chan : mt::channel ){    while(1){        data = chan.receive()        if( data.status == $finished ) break    }}chan = mt::channel(2)Producer( chan ) !!  # 开始生产者tasklet;Consumer( chan ) !!  # 开始消费者tasklet;# 并行的代码块方法:mt::apply( [1.0:100], 4 ){[x] log(x) }

在线体验:http://daoscript.org/demo.html

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【Git】——Git的安装以及配置码云
下一篇:【zookeeper】——消息广播,崩溃恢复
相关文章

 发表评论

暂时没有评论,来抢沙发吧~