N*******t 发帖数: 66 | |
d*******r 发帖数: 3299 | |
N*******t 发帖数: 66 | 3 谢谢!
请各位朋友也上slashdot这里顶一顶(vote up):
http://slashdot.org/submission/2690123/dao-a-new-programming-la
先谢了!!!
【在 d*******r 的大作中提到】 : 这个要顶~~!
|
b***i 发帖数: 3043 | |
N*******t 发帖数: 66 | 5 简单地讲,Dao虚拟机上的运行单元是虚拟进程,不同的虚拟进程可以在不同的系统线
程上跑。并行的程序里的并行计算单元是微线程(tasklet),每个微线程对应一个Dao
虚拟进程。
Dao虚拟机提供一个系统线程池和三个个微线程调度事件队列(一个有限定时,一个无
限定时,和一个非定时)。线程池里的每个线程都会主动去队列里取事件,如果事件所
对应的微线程可以被激活,那么这个系统线程就会运行这个微线程。如果一个系统线程
没有获得可运行的微线程,那么它将阻塞,直到被新的事件唤醒。
微线程的阻塞一般不阻塞系统线程,阻塞的微线程都被放在事件队列里,定时阻塞放在
定时队列里,非定时阻塞放在非定时队列里。定时队列有一个单独的线程处理,把超时
事件已到非定时队列里。
感觉面向对象没什么特别可说的。对于类,就是一个数据类型,加上语法和编译支持,
编译时处理好继承关系,成员访问限制,方法重载关系,运行时处理好成员访问限制,
方法重载和调用就基本上可以了。对于虚接口,这个就是一个类型,在类型匹配,检查
类型的方法是否满足接口的定义就可以了。
对于这两个特性的使用,可以看看这些链接:
http://daovm.net/help/en/dao.tutorial.class.html
http://daovm.net/help/en/dao.tutorial.interface.html
http://daovm.net/help/en/dao.tutorial.concurrent.html
http://daovm.net/help/en/dao.class.html
http://daovm.net/help/en/dao.concurrent.html
【在 b***i 的大作中提到】 : 希望你能增加介绍两个特性:多线程(如何在虚拟机实现)和面向对象,因为这两个是 : Lua没有的。
|
t*****n 发帖数: 4908 | |
d***q 发帖数: 1119 | 7 和erlang类似?
Dao
【在 N*******t 的大作中提到】 : 简单地讲,Dao虚拟机上的运行单元是虚拟进程,不同的虚拟进程可以在不同的系统线 : 程上跑。并行的程序里的并行计算单元是微线程(tasklet),每个微线程对应一个Dao : 虚拟进程。 : Dao虚拟机提供一个系统线程池和三个个微线程调度事件队列(一个有限定时,一个无 : 限定时,和一个非定时)。线程池里的每个线程都会主动去队列里取事件,如果事件所 : 对应的微线程可以被激活,那么这个系统线程就会运行这个微线程。如果一个系统线程 : 没有获得可运行的微线程,那么它将阻塞,直到被新的事件唤醒。 : 微线程的阻塞一般不阻塞系统线程,阻塞的微线程都被放在事件队列里,定时阻塞放在 : 定时队列里,非定时阻塞放在非定时队列里。定时队列有一个单独的线程处理,把超时 : 事件已到非定时队列里。
|
d**o 发帖数: 864 | |
l*********s 发帖数: 5409 | |
N*******t 发帖数: 66 | 10 相对其他脚本语言,应该算比较好。
你可以看下附件里的测试。
【在 t*****n 的大作中提到】 : 数值计算性能如何?
|
|
|
N*******t 发帖数: 66 | 11 没研究erlang的实现,不过我觉得应该差不多,
好像支持高并发的微线程大概都是这个思路。
【在 d***q 的大作中提到】 : 和erlang类似? : : Dao
|
d***q 发帖数: 1119 | 12 常见的
actor (scala), erlang的light weight process。
coroutine (stackless python)
erlang的process 有人证实过可以开几百万个
我看你的描述似乎和erlang有些像。如果能充分利用多核,倒是一件好事。
【在 N*******t 的大作中提到】 : 没研究erlang的实现,不过我觉得应该差不多, : 好像支持高并发的微线程大概都是这个思路。
|
t*****n 发帖数: 4908 | 13 比python强多了,牛!比C还是差点。你准备怎么定位这个语言?
【在 N*******t 的大作中提到】 : 相对其他脚本语言,应该算比较好。 : 你可以看下附件里的测试。
|
b***i 发帖数: 3043 | 14 讲讲多个线程共享数据的情况吧?比如,全局变量应该共享吧。还有两个同一个类的线
程(同一个成员函数?)能否共享类的成员变量?还是这个函数是static的?
Dao
【在 N*******t 的大作中提到】 : 简单地讲,Dao虚拟机上的运行单元是虚拟进程,不同的虚拟进程可以在不同的系统线 : 程上跑。并行的程序里的并行计算单元是微线程(tasklet),每个微线程对应一个Dao : 虚拟进程。 : Dao虚拟机提供一个系统线程池和三个个微线程调度事件队列(一个有限定时,一个无 : 限定时,和一个非定时)。线程池里的每个线程都会主动去队列里取事件,如果事件所 : 对应的微线程可以被激活,那么这个系统线程就会运行这个微线程。如果一个系统线程 : 没有获得可运行的微线程,那么它将阻塞,直到被新的事件唤醒。 : 微线程的阻塞一般不阻塞系统线程,阻塞的微线程都被放在事件队列里,定时阻塞放在 : 定时队列里,非定时阻塞放在非定时队列里。定时队列有一个单独的线程处理,把超时 : 事件已到非定时队列里。
|
d*******r 发帖数: 3299 | 15 同问,如何推广这个语言,比如找到专门适合它的蓝海战略,真心希望有一门国人设计
的语言流行起来 :)
【在 t*****n 的大作中提到】 : 比python强多了,牛!比C还是差点。你准备怎么定位这个语言?
|
d********g 发帖数: 10550 | |
l*********s 发帖数: 5409 | 17 问题就是一门编程语言要么有大公司使用/支持,要么有明显的独特优势。否则要流行
开很难了。
【在 d*******r 的大作中提到】 : 同问,如何推广这个语言,比如找到专门适合它的蓝海战略,真心希望有一门国人设计 : 的语言流行起来 :)
|
d*******r 发帖数: 3299 | 18 所以得找这门语言得独特优势, 就是要有它自己的蓝海。
还有,貌似寄生到其他主流语言平台也是个不错的推广方法。
最近在看Clojure, 发觉这个lisp可以寄生到几乎所有流行的语言中: http://langlangmatrix.com/
【在 l*********s 的大作中提到】 : 问题就是一门编程语言要么有大公司使用/支持,要么有明显的独特优势。否则要流行 : 开很难了。
|
N*******t 发帖数: 66 | 19 从语言大小方面讲,dao定位在lua和python之间,
语言特性丰富程度向python,ruby这类语言看齐,
runtime尽量保持小巧(想向lua看齐,但已不可能)。
dao也定位为适合嵌入的语言,适合做计算的语言。
【在 t*****n 的大作中提到】 : 比python强多了,牛!比C还是差点。你准备怎么定位这个语言?
|
t*****n 发帖数: 4908 | 20 能当lua的替代吗?lua包装C++类还是挺繁琐的。luabind已经好久没更新了。 |
|
|
t*****n 发帖数: 4908 | 21 我觉得可以这样:用C++写程序,用dao把C++的类暴露给用户。用户写dao的脚本,类似
plugin等等。这样程序的功能可以大大增强。
lua已经可以这样做了。还有就是对嵌入脚本语言的调试问题。调试和ide解决了,我觉
得dao要比lua强。
【在 N*******t 的大作中提到】 : 从语言大小方面讲,dao定位在lua和python之间, : 语言特性丰富程度向python,ruby这类语言看齐, : runtime尽量保持小巧(想向lua看齐,但已不可能)。 : dao也定位为适合嵌入的语言,适合做计算的语言。
|
N*******t 发帖数: 66 | 22 不能直接替代,它们两的C接口很不一样。我觉得dao的c接口
更好用,对c++的支持远好于lua。
【在 t*****n 的大作中提到】 : 能当lua的替代吗?lua包装C++类还是挺繁琐的。luabind已经好久没更新了。
|
N*******t 发帖数: 66 | 23 这个都基本自动化了,ClangDao就是用来干这事的:)
【在 t*****n 的大作中提到】 : 我觉得可以这样:用C++写程序,用dao把C++的类暴露给用户。用户写dao的脚本,类似 : plugin等等。这样程序的功能可以大大增强。 : lua已经可以这样做了。还有就是对嵌入脚本语言的调试问题。调试和ide解决了,我觉 : 得dao要比lua强。
|
N*******t 发帖数: 66 | 24 我对这种寄生方式不太放心,这种方式从长远看也不太好。
现在基于jvm的语言应该也很多吧,成功的也就那么几个。
感觉这种推广方式难度也不低。
【在 d*******r 的大作中提到】 : 所以得找这门语言得独特优势, 就是要有它自己的蓝海。 : 还有,貌似寄生到其他主流语言平台也是个不错的推广方法。 : 最近在看Clojure, 发觉这个lisp可以寄生到几乎所有流行的语言中: http://langlangmatrix.com/
|
N******K 发帖数: 10202 | 25 说个题外话
python很多搞研究的也用 就是为了替代matlab 能调用底层函数 能画画图 达到快速原
型设计
Dao的定位是啥?
【在 t*****n 的大作中提到】 : 我觉得可以这样:用C++写程序,用dao把C++的类暴露给用户。用户写dao的脚本,类似 : plugin等等。这样程序的功能可以大大增强。 : lua已经可以这样做了。还有就是对嵌入脚本语言的调试问题。调试和ide解决了,我觉 : 得dao要比lua强。
|
N*******t 发帖数: 66 | 26 请看19楼。
【在 N******K 的大作中提到】 : 说个题外话 : python很多搞研究的也用 就是为了替代matlab 能调用底层函数 能画画图 达到快速原 : 型设计 : Dao的定位是啥?
|
N******K 发帖数: 10202 | 27 你这个和 octave 、matlab 比 如何? 不考虑那些工具包 就看语言本身
我一直想找一个能替代以上两者的脚本语言 python 太恶心
【在 N*******t 的大作中提到】 : 请看19楼。
|
d********g 发帖数: 10550 | 28 这个安装做得有点奇怪。看到CMakeLists.txt习惯性地cmake .但是不行,看README是
要裸make Makefile.daomake,又没有提供configure,要改prefix还得人工确认一下
Makefile里的参数。希望能直接搞成cmake的
【在 N*******t 的大作中提到】 : 这是Dao达到特性完全之后的第一个测试版本,欢迎试用! : 发布宣告:http://daovm.net/space/dao/thread/940 : 直接下载链接:http://sourceforge.net/projects/daoscript/files/dao-2.0-beta/dao-2.0-beta1-2013-05-28.tgz/download
|
N*******t 发帖数: 66 | 29 从语言本身讲,dao应该比octave、matlab强很多吧。
matlab语言出来时,有些编程范式(如OOP)还没出来
或还不成熟,matlab对这些方面支持比较弱。另外matlab
里的数据类型好像也不太灵活,如果想做纯数值计算之外的
事情,就会比较不方便。octave为了跟matlab兼容,应该
从matlab继承了不少类似问题。
【在 N******K 的大作中提到】 : 你这个和 octave 、matlab 比 如何? 不考虑那些工具包 就看语言本身 : 我一直想找一个能替代以上两者的脚本语言 python 太恶心
|
N*******t 发帖数: 66 | 30 我刚试了,cmake可以的,你用cmake时,它打印的是
什么信息?
如果你目录下已有Makefile,它会要你做out-of-source
编译。我做的就是:
rm -f CMakeCache.txt
mkdir build
cd build
cmake ..
【在 d********g 的大作中提到】 : 这个安装做得有点奇怪。看到CMakeLists.txt习惯性地cmake .但是不行,看README是 : 要裸make Makefile.daomake,又没有提供configure,要改prefix还得人工确认一下 : Makefile里的参数。希望能直接搞成cmake的
|
|
|
d********g 发帖数: 10550 | 31 好了,指定了个~/opt来装。先用用看
【在 N*******t 的大作中提到】 : 我刚试了,cmake可以的,你用cmake时,它打印的是 : 什么信息? : 如果你目录下已有Makefile,它会要你做out-of-source : 编译。我做的就是: : rm -f CMakeCache.txt : mkdir build : cd build : cmake ..
|
M********t 发帖数: 5032 | |
c***n 发帖数: 809 | |
N******K 发帖数: 10202 | 34 matlab oop 也很不错
只不过 多线程啥的 没有
如果你这个语言搞的 从计算层面看 语法=matlab 从程序结构和流程看 语法类似java
最好矩阵运算 能支持matlab那种语法 支持调用lapack等线性代数库 对c/c++接口用
起来简单
这样的话 至少研究机构都会采用这个语言 替代python
【在 N*******t 的大作中提到】 : 从语言本身讲,dao应该比octave、matlab强很多吧。 : matlab语言出来时,有些编程范式(如OOP)还没出来 : 或还不成熟,matlab对这些方面支持比较弱。另外matlab : 里的数据类型好像也不太灵活,如果想做纯数值计算之外的 : 事情,就会比较不方便。octave为了跟matlab兼容,应该 : 从matlab继承了不少类似问题。
|
r*g 发帖数: 3159 | 35 Dap 的潜在市场是不是跟Julia 一样?Julia 也用llvm jit. 你能不能做做Julia 主页
的benchmark,跟它比一比?
【在 N*******t 的大作中提到】 : 这是Dao达到特性完全之后的第一个测试版本,欢迎试用! : 发布宣告:http://daovm.net/space/dao/thread/940 : 直接下载链接:http://sourceforge.net/projects/daoscript/files/dao-2.0-beta/dao-2.0-beta1-2013-05-28.tgz/download
|
N******K 发帖数: 10202 | 36 Julia 的function 居然没有声明输出变量 非要 return X 这些人脑子有问题
【在 r*g 的大作中提到】 : Dap 的潜在市场是不是跟Julia 一样?Julia 也用llvm jit. 你能不能做做Julia 主页 : 的benchmark,跟它比一比?
|
N*******t 发帖数: 66 | 37
对,功能完全更准确些。
我准备写点文档逐个比较跟其他语言相关的特性。
【在 c***n 的大作中提到】 : 特性完全? 功能完全吧。 文档谈谈与众不同特点, 否则很难吸引人的。 鼓励一下。
|
N*******t 发帖数: 66 | 38
ok) 的大作中提到: 】
好久没碰matlab了,难道它的oop改进了
觉得现在通用语言必须支持并行计算,
没这个很难讲是门好的语言。
java
感觉java语法有点繁琐。
曾经支持过blas,lapack等,准备再重新做一下,
并增加对矩阵运算的支持。
另外还打算用opencl实现些并行的矩阵运算:)
希望能这样吧
【在 N******K 的大作中提到】 : Julia 的function 居然没有声明输出变量 非要 return X 这些人脑子有问题
|
N*******t 发帖数: 66 | 39
不太一样,Dao的目标是通用语言,但有比较好科学计算支持。
Julia的目标好像就是科学计算语言。
有时间试试看。
【在 r*g 的大作中提到】 : Dap 的潜在市场是不是跟Julia 一样?Julia 也用llvm jit. 你能不能做做Julia 主页 : 的benchmark,跟它比一比?
|
s****y 发帖数: 38 | 40 支持一下,很想要个高性能,可带类型的动态语言,本来go勉强可以,但强加了gc,就
没什么兴趣了。
不知dao可不可自己管理内存?
dao和lisp相比有没有什么优势? |
|
|
N*******t 发帖数: 66 | 41 Dao不让用户管理内存。不过Dao是用基于引用计数的
垃圾回收,所以大部分垃圾对象不会在内存滞留很久
(大部分应该在一两个GC周期里就会释放)。另外,
如果占内存的主要是数组,列表等,用户可以在不需要
时,通过把它们resize为0来释放内存。
我只是初略地看过lisp,没认真用过,不好做恰当的评价。
不过我可以肯定大部分人更喜欢C风格语法。这也算一个
优势吧:)
【在 s****y 的大作中提到】 : 支持一下,很想要个高性能,可带类型的动态语言,本来go勉强可以,但强加了gc,就 : 没什么兴趣了。 : 不知dao可不可自己管理内存? : dao和lisp相比有没有什么优势?
|