词条 | 道程序设计 |
释义 | 道语言是一种面向对象的脚本语言,支持动态变量声明与复杂的数据类型, 拥有自动的内存管理功能,支持基于正则表达式的字符串模式匹配, 拥有内置的数值类型 (复数与不同精度的数值数组)以及相应于其基本运算的语法支持。 道语言对多线程编程也有内在的支持,并且很方便使用。 道语言可以很方便的用C/C++扩展,也可很方便的嵌入其他C++程序,相关接口简单透明。 现在道语言的扩展模块也逐渐丰富了起来,包括了支持CGI网站编程,MYSQL数据库操作, LAPACK和GSL数值计算库,GraphicsMagick图像处理库,MathGL数学绘图,OpenGL三维图形, SDL多媒体,VTK三维模型数据可视化,XML文档处理和ZLIB数据压缩等模块。 值得提及的是,大部分这些封装其他C/C++函数库的模块现在都是由一个自动化工具 从这些函数库的头文件自动生成的封装,此工具是使用道语言开发出来的。 另外,道语言还包括了一个基于FFI库的模块, 通过此模块可以调用其他一些未专门为道语言封装的C函数库,功能类似于Python的ctypes模块。 特性列表:支持方式或层次 特性概括 语言 面向对象编程 语言 可选(软)类型系统 语言 BNF形式宏或元编程 语言 函数式编程 语言 任意精度整数(大整数) 语言 元组 语言 数值数组 内置方法 字符串的正则表达式匹配 内置库 多线程编程 内置库 网络编程 虚拟机 自动内存管理和垃圾回收 函数接口 嵌入与扩展 函数接口 打包脚本文件到可执行文件里 扩展模块 图形用户界面(GUI)编程 扩展模块 三维图形与数据可视化 扩展模块 图像处理 扩展模块 CGI网站编程 扩展模块 数据库操作 扩展模块 数据压缩 扩展模块 XML文档处理 扩展模块 数值计算 扩展模块 运行时C库封装 脚本工具 C/C++库自动封装 程序示例:# 显示类型申明,即使用类型名申明变量: var1 : double = 0.0; var2 : map<string,float>; # 隐式类型申明,根据表达式的结果确定变量类型: list1 = { 1, 2, 3 } map1 = { "CD"=>123, "AB"=>456 } tuple1 = ( 123, "ABC" ) # 带元素名的元组类型: tuple2 = ( index => 123, name => "ABC" ) vector = [ 1, 2, 3 ] matrix = [ 1, 2; 3, 4 ] tuple2. name = "another name"; stdio.println( matrix[1,:] ); # 第二行 # 带参数类型标注的函数 routine Bar( a, b : int, c = "DEFAULT" ) { stdio.println( "parameters:", a, b, c ) } class Point { var X, Y, Z = 0.0; routine Point( x=0.0, y=0.0, z=0.0 ){ X = x; Y = y; Z = z; } } # 生成类实例的不同方法: p1 = Point( 1, 2, 3 ); # 调用构造函数 p2 = Point{ 1, 2, 3 }; # 枚举成员变量 p3 = Point{ Z=>1, X=>2, Y=>3 }; # 使用成员变量名枚举 # 带类型检查的generators和coroutines # int => tuple<int,int> routine gen1( a = 0 ) { k = 0; while( k ++ < 3 ) a = yield( k, a ); return 0,0; } routine gen2( a = 0 ) { return gen1( a ); } g = @gen2( 1 ); stdio.println( 'main1: ', g( 1 ) ); stdio.println( 'main2: ', g( 100 ) ); stdio.println( 'main3: ', g( 200 ) ); # 函数式方法: # 方法( 参数 )->|变量|{ 内联函数 } a = { 1, 2, 3 } b = map( a ) -> { 10*x } # 产生 { 10, 20, 30 } b = map( a ) -> |x| { 10*x } # 与上面等价 # map()能使用多个参数: b = { 11, 22, 33 } c = map( a, b ) -> |x,y| { x + y } # 函数复合: c = map( a, b )->|x,y|{ x + y, x - y }->|u,v| { u * v } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。