Redian新闻
>
牛人们来看看这个Dao语言怎么样
avatar
牛人们来看看这个Dao语言怎么样# Programming - 葵花宝典
d*d
1
我好不容易有空专心灌了
人就散光了?
avatar
G*e
2
我降落了928架飞机
我降落928的那次,发现自己已经修炼成仙了,我玩这个游戏已经玩不死了,可以永远
玩下去。。。我是在坐飞机的时候玩的,从上飞机到降落,就一只没死,后来都玩无聊
了,就自杀了。。。。 = =|||
另外我玩那个bejeweled的endless,也玩不死,玩到了100关的时候,我就不玩了。。。
注:我是女的,我老公都没我厉害,hiahia,忍不住炫耀~
avatar
N*t
3
Dao语言主页: http://daovm.net
在线演示和试用:http://daovm.net/demo.html
Dao的基本特性包括:
1. 可选类型(optional typing),支持显式和隐士类型声明,支持类型推导和静态类
型检查;
2. 有比较好的并行编程支持;
3. 有即时编译器(基于LLVM);
4. 有比较简单的C编程接口;
5. 提供了一个基于Clang的自动封装工具。
其他特性包括:语法宏,OOP,抽象接口,代码块方法,Decorator,Coroutine,
Generator, 匿名函数,匿名类,数值数组,字符串模式匹配等等。
详细的特性列表:http://daovm.net/help/en/dao.feature.html
这个语言基本上以较小的实现提供了较丰富的特性。
avatar
a*r
4
我给你捧个场

【在 d********d 的大作中提到】
: 我好不容易有空专心灌了
: 人就散光了?

avatar
r*y
5
确实很高

。。

【在 G**********e 的大作中提到】
: 我降落了928架飞机
: 我降落928的那次,发现自己已经修炼成仙了,我玩这个游戏已经玩不死了,可以永远
: 玩下去。。。我是在坐飞机的时候玩的,从上飞机到降落,就一只没死,后来都玩无聊
: 了,就自杀了。。。。 = =|||
: 另外我玩那个bejeweled的endless,也玩不死,玩到了100关的时候,我就不玩了。。。
: 注:我是女的,我老公都没我厉害,hiahia,忍不住炫耀~

avatar
N*t
6
好像没人对新语言感兴趣啊

【在 N*******t 的大作中提到】
: Dao语言主页: http://daovm.net
: 在线演示和试用:http://daovm.net/demo.html
: Dao的基本特性包括:
: 1. 可选类型(optional typing),支持显式和隐士类型声明,支持类型推导和静态类
: 型检查;
: 2. 有比较好的并行编程支持;
: 3. 有即时编译器(基于LLVM);
: 4. 有比较简单的C编程接口;
: 5. 提供了一个基于Clang的自动封装工具。
: 其他特性包括:语法宏,OOP,抽象接口,代码块方法,Decorator,Coroutine,

avatar
d*g
7
有奔么

【在 d********d 的大作中提到】
: 我好不容易有空专心灌了
: 人就散光了?

avatar
r*e
8
确实很高,我以前总玩flightcontrol,自从我lp打了一次800多之后 俺就没信心玩了
avatar
b*i
9
有多小?有多少行代码?

【在 N*******t 的大作中提到】
: Dao语言主页: http://daovm.net
: 在线演示和试用:http://daovm.net/demo.html
: Dao的基本特性包括:
: 1. 可选类型(optional typing),支持显式和隐士类型声明,支持类型推导和静态类
: 型检查;
: 2. 有比较好的并行编程支持;
: 3. 有即时编译器(基于LLVM);
: 4. 有比较简单的C编程接口;
: 5. 提供了一个基于Clang的自动封装工具。
: 其他特性包括:语法宏,OOP,抽象接口,代码块方法,Decorator,Coroutine,

avatar
d*d
10
还是你最好

【在 a***r 的大作中提到】
: 我给你捧个场
avatar
E*m
11
928! 太佩服了
有個 Traffic Rush 免費的,你試試看,也很好玩。
avatar
N*t
12
解释器的实现差不多60K行C代码,比Perl, Python和Ruby等的解释器小很多,但语言特
性的丰富程度差不多接近他们了。
当然和Lua比,算比较大了。

【在 b***i 的大作中提到】
: 有多小?有多少行代码?
avatar
d*d
13
谁奔个?

【在 d*****g 的大作中提到】
: 有奔么
avatar
r*y
14
确认不是你lp又进步了?

【在 r****e 的大作中提到】
: 确实很高,我以前总玩flightcontrol,自从我lp打了一次800多之后 俺就没信心玩了
avatar
b*i
15
编译后的代码多大?
现在用这个编译器写过多少行代码?主要用在console还是desktop GUI还是web?还是
可以用在嵌入式系统?能写OS吗?

【在 N*******t 的大作中提到】
: 解释器的实现差不多60K行C代码,比Perl, Python和Ruby等的解释器小很多,但语言特
: 性的丰富程度差不多接近他们了。
: 当然和Lua比,算比较大了。

avatar
a*r
16
嗯,鸭蛋是次好的

【在 d********d 的大作中提到】
: 还是你最好
avatar
r*e
17
haha,good one!
我查一下我iiphong上的记录确认一下
avatar
N*t
18
64位的Mac上大约900K (Python, 2.6M)
64位的Linux上大约1M (Python, 2.5M)
用这个语言写的代码应该超过10K行了(其中跟当前版本同步更新的有大约6K行)。这
些代码主要是基于console了,不过也少量是基于桌面的,还有少量游戏和图形方面的
代码。后面这些都是在封装相关的C/C++库是从C/C++代码移植到Dao的。另外我还用以
前的一个版本开发过一个简单的网站(就是Dao的官方网站)。
估计Dao还不适合开发OS。对于嵌入式系统,只要内存不是太少,应该差不多可以。Dao
有编译选项可以裁减到600-700,如果在编译时再优化大小,应该可以更小。

【在 b***i 的大作中提到】
: 编译后的代码多大?
: 现在用这个编译器写过多少行代码?主要用在console还是desktop GUI还是web?还是
: 可以用在嵌入式系统?能写OS吗?

avatar
a*r
19
你准备好了?

【在 d*****g 的大作中提到】
: 有奔么
avatar
a*y
20
好牛
我连100都突不破。

。。

【在 G**********e 的大作中提到】
: 我降落了928架飞机
: 我降落928的那次,发现自己已经修炼成仙了,我玩这个游戏已经玩不死了,可以永远
: 玩下去。。。我是在坐飞机的时候玩的,从上飞机到降落,就一只没死,后来都玩无聊
: 了,就自杀了。。。。 = =|||
: 另外我玩那个bejeweled的endless,也玩不死,玩到了100关的时候,我就不玩了。。。
: 注:我是女的,我老公都没我厉害,hiahia,忍不住炫耀~

avatar
b*i
21
从这些看,还是不错的。应该有自己的用户范围。做嵌入式,可以多线程吗?
发明这么个语言不容易啊。你是作者吗?

Dao

【在 N*******t 的大作中提到】
: 64位的Mac上大约900K (Python, 2.6M)
: 64位的Linux上大约1M (Python, 2.5M)
: 用这个语言写的代码应该超过10K行了(其中跟当前版本同步更新的有大约6K行)。这
: 些代码主要是基于console了,不过也少量是基于桌面的,还有少量游戏和图形方面的
: 代码。后面这些都是在封装相关的C/C++库是从C/C++代码移植到Dao的。另外我还用以
: 前的一个版本开发过一个简单的网站(就是Dao的官方网站)。
: 估计Dao还不适合开发OS。对于嵌入式系统,只要内存不是太少,应该差不多可以。Dao
: 有编译选项可以裁减到600-700,如果在编译时再优化大小,应该可以更小。

avatar
d*d
22
嗯,你,亲一个
鸭蛋,摸摸

【在 a***r 的大作中提到】
: 嗯,鸭蛋是次好的
avatar
p*3
23
就是停飞机那个吧, 我连40都过不了,,强啊!
avatar
N*t
24
我没做过嵌入式,不知道相关的运行环境支持什么样的线程。Dao目前支持pthreads和
Windows线程,如果嵌入式环境支持pthreads的话,应该就没问题。
对,我是作者

【在 b***i 的大作中提到】
: 从这些看,还是不错的。应该有自己的用户范围。做嵌入式,可以多线程吗?
: 发明这么个语言不容易啊。你是作者吗?
:
: Dao

avatar
M*g
25
我呢

【在 d********d 的大作中提到】
: 嗯,你,亲一个
: 鸭蛋,摸摸

avatar
s*t
26
avatar
b*i
27
我明白了,如果有linux,大概可以。
那你是很强了。写出这么个语言花了多少时间?

【在 N*******t 的大作中提到】
: 我没做过嵌入式,不知道相关的运行环境支持什么样的线程。Dao目前支持pthreads和
: Windows线程,如果嵌入式环境支持pthreads的话,应该就没问题。
: 对,我是作者

avatar
d*g
28
从你开始吧

谁奔个?

【在 d********d 的大作中提到】
: 谁奔个?
avatar
m*O
29
lz bejeweled action可以一口气打到第几关?
avatar
N*t
30
很长时间了,差不多是从2006就开始(这个语言的
前身还要早一年多)。不过主要都是业余时间做的,
并且中间分心做一些别的东西,所以拖的时间比较长。

【在 b***i 的大作中提到】
: 我明白了,如果有linux,大概可以。
: 那你是很强了。写出这么个语言花了多少时间?

avatar
a*r
31
手感如何?

【在 d********d 的大作中提到】
: 嗯,你,亲一个
: 鸭蛋,摸摸

avatar
b*o
32
555
me 113

。。

【在 G**********e 的大作中提到】
: 我降落了928架飞机
: 我降落928的那次,发现自己已经修炼成仙了,我玩这个游戏已经玩不死了,可以永远
: 玩下去。。。我是在坐飞机的时候玩的,从上飞机到降落,就一只没死,后来都玩无聊
: 了,就自杀了。。。。 = =|||
: 另外我玩那个bejeweled的endless,也玩不死,玩到了100关的时候,我就不玩了。。。
: 注:我是女的,我老公都没我厉害,hiahia,忍不住炫耀~

avatar
a*w
33
偶像啊

【在 N*******t 的大作中提到】
: 很长时间了,差不多是从2006就开始(这个语言的
: 前身还要早一年多)。不过主要都是业余时间做的,
: 并且中间分心做一些别的东西,所以拖的时间比较长。

avatar
d*g
34
烦烦不奔,我是说啥也不奔的,嗯

你准备好了?

【在 a***r 的大作中提到】
: 你准备好了?
avatar
b*u
35
Bejeweled endless 本来就死不了啊。你试试action?
avatar
m*l
36
NIU

【在 N*******t 的大作中提到】
: Dao语言主页: http://daovm.net
: 在线演示和试用:http://daovm.net/demo.html
: Dao的基本特性包括:
: 1. 可选类型(optional typing),支持显式和隐士类型声明,支持类型推导和静态类
: 型检查;
: 2. 有比较好的并行编程支持;
: 3. 有即时编译器(基于LLVM);
: 4. 有比较简单的C编程接口;
: 5. 提供了一个基于Clang的自动封装工具。
: 其他特性包括:语法宏,OOP,抽象接口,代码块方法,Decorator,Coroutine,

avatar
Y*2
37
我来了。
avatar
m*O
38
我玩了一下午。action只能打到六级
avatar
m*2
39
niu

【在 N*******t 的大作中提到】
: 我没做过嵌入式,不知道相关的运行环境支持什么样的线程。Dao目前支持pthreads和
: Windows线程,如果嵌入式环境支持pthreads的话,应该就没问题。
: 对,我是作者

avatar
d*g
40
表乱摸,人家敏感的

嗯,你,亲一个
鸭蛋,摸摸

【在 d********d 的大作中提到】
: 嗯,你,亲一个
: 鸭蛋,摸摸

avatar
G*e
41
我不喜欢action,以前好像只能玩到第7第8吧,越到后面越难通关我就不玩了~另外我
说错了,不是endless,晕,是classic啦,玩classic我玩到了100,死不了,就没save
退出不玩了
avatar
z*a
42
嚴重佩服敬仰中....

【在 N*******t 的大作中提到】
: 很长时间了,差不多是从2006就开始(这个语言的
: 前身还要早一年多)。不过主要都是业余时间做的,
: 并且中间分心做一些别的东西,所以拖的时间比较长。

avatar
a*r
43
你要被封了

【在 M****g 的大作中提到】
: 我呢
avatar
G*e
44
呵呵,你查不到的,它一般都是只显示离你近的一些最高分
另外其实超过1000的人大有人在。我发现我玩不死以后,就到youtube上搜了一下这个
游戏是否有人能将它玩出花样来,有个人发了一个自己玩到10000的视频,我看了看他
的玩法,和我的习惯很像,然后我就确定了这游戏我要是想,也能玩到10000。。。
其实我觉得挺容易的,因为这个游戏大概到第50个飞机以后,难度就不会再变了,而且
什么飞机会从什么地方出来也很predictable,等你玩习惯了,对每种飞机的飞行速度
掌握以后,就是耐心程度和注意力的问题了。。。我本来想玩到1000再自杀,但928时
飞机上好多人都下去了,我还憋了一泡尿,就想928已经足以说明问题了,和1000没有
差别,就自杀了~

【在 r****e 的大作中提到】
: haha,good one!
: 我查一下我iiphong上的记录确认一下

avatar
E*m
45
挺不錯的, 贊一把!
Syntax macro 部分似乎不太好看, 有辦法弄美觀點嗎?
syntax dao_v1_syntax {
3 routine $ID1 \{ :: $ID2 \} ( \[ $BL1 \] ) \( ; \) \!
4 \( { $BL2 } \) \!
5 \[ $BL3 \]
6 end
7 }as{
8 routine $ID1 \{ :: $ID2 \} ( \[ $BL1 \] ){
9 \[ $BL3 \]
10 }
11 }
avatar
M*g
46
为什么

【在 a***r 的大作中提到】
: 你要被封了
avatar
G*e
47
bejeweled classic的秘笈是,avoid造炸弹,见炸弹就炸,随时保持版图上有泡泡,而
且要一只搭泡泡,泡泡越多越好,有了泡泡以后就想办法把泡泡弄到下面去,走投无路
的时候就用一个泡泡
我经常都是同时有7,8个泡泡在版图上,我到100关的时候版图上还有11个泡泡呢。。
。。
avatar
N*t
48
主要是反斜杠比较难看,可能换成%会好看些。
要弄得更好看的话,需要把反斜杠或%都拿掉,
然后在其他token首尾加上单引号。不过这样
实现起来就比较繁琐了。

【在 E*****m 的大作中提到】
: 挺不錯的, 贊一把!
: Syntax macro 部分似乎不太好看, 有辦法弄美觀點嗎?
: syntax dao_v1_syntax {
: 3 routine $ID1 \{ :: $ID2 \} ( \[ $BL1 \] ) \( ; \) \!
: 4 \( { $BL2 } \) \!
: 5 \[ $BL3 \]
: 6 end
: 7 }as{
: 8 routine $ID1 \{ :: $ID2 \} ( \[ $BL1 \] ){
: 9 \[ $BL3 \]

avatar
w*t
49
灌水还用专心?

【在 d********d 的大作中提到】
: 我好不容易有空专心灌了
: 人就散光了?

avatar
m*O
50
可就是action才刺激阿。其他的都死不了多没劲
avatar
d*r
51
佩服!记得很久前在csdn上看见过lz讨论这个语言。
本菜鸟的意见是,lz用Dao做个牛B的框架或者library之类的工具,然后有人用这些工
具做出个影响力大的killer app, 那Dao就有可能火了。
avatar
a*r
52
好,我们要坚持住

【在 d*****g 的大作中提到】
: 烦烦不奔,我是说啥也不奔的,嗯
:
: 你准备好了?

avatar
G*e
53
我觉得action光求速度,只能见到就消,我喜欢玩稍微能让你能够做点planning的东西
avatar
N*t
54
要做牛的框架或库,选对领域很重要。
不知道做web框架是不是有点过时了。
有什么好的建议么?
我目前的想法是先做些能让用户产生
粘性的东西,如数据可视化绘图等。
当然,要是有个潜在应用前景好很多
的框架或库去做的话会更好。
好久没上csdn了,什么时候再去逛逛

【在 d*******r 的大作中提到】
: 佩服!记得很久前在csdn上看见过lz讨论这个语言。
: 本菜鸟的意见是,lz用Dao做个牛B的框架或者library之类的工具,然后有人用这些工
: 具做出个影响力大的killer app, 那Dao就有可能火了。

avatar
a*r
55
真的?那摸摸

【在 d*****g 的大作中提到】
: 表乱摸,人家敏感的
:
: 嗯,你,亲一个
: 鸭蛋,摸摸

avatar
M*e
56
action也可以有plan的...只不过要在短时间内就反应出来plan好...你的fligth
control太牛逼了....

【在 G**********e 的大作中提到】
: 我觉得action光求速度,只能见到就消,我喜欢玩稍微能让你能够做点planning的东西
avatar
l*s
57
real bull appeared!
avatar
a*r
58
你还想讲道理啊

【在 M****g 的大作中提到】
: 为什么
avatar
b*u
59
Bejewelled 我最多玩到第十级。发现不会像pc版unlock 超级action模式,比较失望。

save

【在 G**********e 的大作中提到】
: 我不喜欢action,以前好像只能玩到第7第8吧,越到后面越难通关我就不玩了~另外我
: 说错了,不是endless,晕,是classic啦,玩classic我玩到了100,死不了,就没save
: 退出不玩了

avatar
d*r
60
我也没什么想法,如果建议的话,我觉得可以先试着做自己擅长自己懂的吧。
我记得LZ是做BioInfo的。可以写一些科学计算,或者建模的东西?

【在 N*******t 的大作中提到】
: 要做牛的框架或库,选对领域很重要。
: 不知道做web框架是不是有点过时了。
: 有什么好的建议么?
: 我目前的想法是先做些能让用户产生
: 粘性的东西,如数据可视化绘图等。
: 当然,要是有个潜在应用前景好很多
: 的框架或库去做的话会更好。
: 好久没上csdn了,什么时候再去逛逛

avatar
d*d
61
pat pat

【在 M****g 的大作中提到】
: 我呢
avatar
m*O
62
action 10的话很赞,有什么tips ma

【在 b***u 的大作中提到】
: Bejewelled 我最多玩到第十级。发现不会像pc版unlock 超级action模式,比较失望。
:
: save

avatar
d*o
63
膜拜,如同其它人所说的,得找到一个专门的领域,让人找到一个强烈的理由用它。
否则我虽然我很想支持,但我还没有想到需要用它的理由。
我算法用C++,数据处理用python,GUI用qt,数据可视化用matplotlib,processing,网
页数据库用django。得给我一个好的理由让Dao让用可以替代现有的某项工作。

【在 N*******t 的大作中提到】
: 要做牛的框架或库,选对领域很重要。
: 不知道做web框架是不是有点过时了。
: 有什么好的建议么?
: 我目前的想法是先做些能让用户产生
: 粘性的东西,如数据可视化绘图等。
: 当然,要是有个潜在应用前景好很多
: 的框架或库去做的话会更好。
: 好久没上csdn了,什么时候再去逛逛

avatar
d*g
64
不奔的不给摸摸

真的?那摸摸

【在 a***r 的大作中提到】
: 真的?那摸摸
avatar
k*o
65
The game Runway? 手持25xx分默默飘过……
BTW,this is my first post on this board, haha
avatar
r*r
66
牛人啊。设计语言实在是太累了。
avatar
d*d
67
光溜溜的
凉凉的

【在 a***r 的大作中提到】
: 手感如何?
avatar
l*e
68
是flight control

【在 k**o 的大作中提到】
: The game Runway? 手持25xx分默默飘过……
: BTW,this is my first post on this board, haha

avatar
N*t
69
动手做过一点Bioinfo的模块,但没坚持下来,
主要是当时语言本身还没不少东西要做。
最近语言本身的所有特性都已经做好了,
现在的主要目标是测试和文档。这之后
大概才能比较专心地做大的模块和库了。

【在 d*******r 的大作中提到】
: 我也没什么想法,如果建议的话,我觉得可以先试着做自己擅长自己懂的吧。
: 我记得LZ是做BioInfo的。可以写一些科学计算,或者建模的东西?

avatar
d*d
70
悲剧了

【在 d*****g 的大作中提到】
: 表乱摸,人家敏感的
:
: 嗯,你,亲一个
: 鸭蛋,摸摸

avatar
N*t
71
你说的这些,只有Qt曾经支持过,当时我是用
Dao开发的一个工具做的封装。不过后来没怎么
维护了,现在维护的动力也不是很大,主要是
Qt5的发展方向实在有点让人不敢恭维。
如果你经常用C++, Dao有一个模块可能能让你
感兴趣:DaoCXX, 一个基于Clang的模块,允许
你在Dao代码中嵌入C++代码!

【在 d**o 的大作中提到】
: 膜拜,如同其它人所说的,得找到一个专门的领域,让人找到一个强烈的理由用它。
: 否则我虽然我很想支持,但我还没有想到需要用它的理由。
: 我算法用C++,数据处理用python,GUI用qt,数据可视化用matplotlib,processing,网
: 页数据库用django。得给我一个好的理由让Dao让用可以替代现有的某项工作。

avatar
d*d
72
嗯,很伤神的
一不留神就跟不上了

【在 w****t 的大作中提到】
: 灌水还用专心?
avatar
c*e
73
这个很牛,膜拜一下。语言要有个长处,否则很难胜出。不知道你target那个语言或者
什么场景用DAO? 这个你选择语言特性的时候应该想过吧。
avatar
M*g
74
我一直都是摆事实讲道理的
但如果有女ID暴力专政,那没得说,服服帖帖

【在 a***r 的大作中提到】
: 你还想讲道理啊
avatar
q*c
75
"你能做的我也能某种方法实现" - 这样不行。
你得有独特得强有力得特征, 才能让人越过新语言得势垒, 使用你得东西。否则根本
不可能推广。

【在 N*******t 的大作中提到】
: 你说的这些,只有Qt曾经支持过,当时我是用
: Dao开发的一个工具做的封装。不过后来没怎么
: 维护了,现在维护的动力也不是很大,主要是
: Qt5的发展方向实在有点让人不敢恭维。
: 如果你经常用C++, Dao有一个模块可能能让你
: 感兴趣:DaoCXX, 一个基于Clang的模块,允许
: 你在Dao代码中嵌入C++代码!

avatar
a*r
76
算你有觉悟

【在 M****g 的大作中提到】
: 我一直都是摆事实讲道理的
: 但如果有女ID暴力专政,那没得说,服服帖帖

avatar
d*r
77
恩,同意这个,相当于找到自己的“蓝海”

【在 q*c 的大作中提到】
: "你能做的我也能某种方法实现" - 这样不行。
: 你得有独特得强有力得特征, 才能让人越过新语言得势垒, 使用你得东西。否则根本
: 不可能推广。

avatar
d*g
78
哈哈哈,赞美服服帖帖

我一直都是摆事实讲道理的
但如果有女ID暴力专政,那没得说,服服帖帖

【在 M****g 的大作中提到】
: 我一直都是摆事实讲道理的
: 但如果有女ID暴力专政,那没得说,服服帖帖

avatar
N*t
79
Optional typing和对并行编程的支持显然是长处(至少相对于主流脚本语言)。没有
具体针对哪一门语言,但大体上是Python和Ruby这样的语言,并没想替代它们,但可以
提供一个比他们更轻量级的选择。从某方面讲,就是语言特性的丰富程度向Python和
Ruby等看齐,但运行时保持轻量级,向Lua这样的语言看齐。

【在 c****e 的大作中提到】
: 这个很牛,膜拜一下。语言要有个长处,否则很难胜出。不知道你target那个语言或者
: 什么场景用DAO? 这个你选择语言特性的时候应该想过吧。

avatar
d*d
80
开始骂你的是女的?

【在 M****g 的大作中提到】
: 我一直都是摆事实讲道理的
: 但如果有女ID暴力专政,那没得说,服服帖帖

avatar
b*i
81
你这个 语言肯定是很牛的了。到底是编译还是虚拟机解释?怎么看到你网站上有一个
在线运行?那个什么原理?和你原来的系统是兼容的吗?
还有你可以“编译”或者运行多个文件的程序吗?多个目录呢?运行后再运行一个,可
以通讯吗?

【在 N*******t 的大作中提到】
: Optional typing和对并行编程的支持显然是长处(至少相对于主流脚本语言)。没有
: 具体针对哪一门语言,但大体上是Python和Ruby这样的语言,并没想替代它们,但可以
: 提供一个比他们更轻量级的选择。从某方面讲,就是语言特性的丰富程度向Python和
: Ruby等看齐,但运行时保持轻量级,向Lua这样的语言看齐。

avatar
a*r
82
你也表个态

【在 d*****g 的大作中提到】
: 哈哈哈,赞美服服帖帖
:
: 我一直都是摆事实讲道理的
: 但如果有女ID暴力专政,那没得说,服服帖帖

avatar
N*t
83
应该可以算虚拟机解释,但考虑到Dao
有支持即时编译的模块,可以将部分虚
拟机指令编译到机器码,所以这个解释
与编译的界限不那么明显了。当然从源
代码到虚拟机字节码这个过程也可以算
编译。
在线运行的是一个JavaScript实现的Dao
语言虚拟机,是是用Emscripten从Dao
虚拟机的C实现翻译出来的。这个JS实现
除了不支持多线程,其他特性基本上都是
完整的支持了。
当然可以支持多个文件/目录组成的程序。
同一个虚拟机环境可以多次运行不同的程序,
实际上网站上那个就是一个虚拟机环境多次
运行不同demo,直到用户刷新页面为止。
需要通讯的话,有网络模块。

【在 b***i 的大作中提到】
: 你这个 语言肯定是很牛的了。到底是编译还是虚拟机解释?怎么看到你网站上有一个
: 在线运行?那个什么原理?和你原来的系统是兼容的吗?
: 还有你可以“编译”或者运行多个文件的程序吗?多个目录呢?运行后再运行一个,可
: 以通讯吗?

avatar
M*g
84
估计不是
但今天我脾气好
而且还要玩游戏看电影分不出功夫理他

【在 d********d 的大作中提到】
: 开始骂你的是女的?
avatar
b*i
85
这不就是java这个级别了吗?那你是网站后台编译成虚拟机指令,然后前台有一个
javascript的虚拟机来执行虚拟机指令?而不是前台网页中中的javascript直接解释执
行Dao?

【在 N*******t 的大作中提到】
: 应该可以算虚拟机解释,但考虑到Dao
: 有支持即时编译的模块,可以将部分虚
: 拟机指令编译到机器码,所以这个解释
: 与编译的界限不那么明显了。当然从源
: 代码到虚拟机字节码这个过程也可以算
: 编译。
: 在线运行的是一个JavaScript实现的Dao
: 语言虚拟机,是是用Emscripten从Dao
: 虚拟机的C实现翻译出来的。这个JS实现
: 除了不支持多线程,其他特性基本上都是

avatar
a*r
86
偏摸! 摸摸摸

【在 d*****g 的大作中提到】
: 不奔的不给摸摸
:
: 真的?那摸摸

avatar
a*e
87
顶楼主!这样一个项目能支持下来不容易,流血流汗啊!
顺带问一下,Dao的类型推导是基于什么做的?类型系统支持 parametric
polymorphism 吗?
实现方面,GC 是自己写的吗?能给简单介绍一下性能如何?
avatar
d*g
88
我就想看烦烦,嗯

你也表个态

【在 a***r 的大作中提到】
: 你也表个态
avatar
N*K
89
你能搞一个C++的内存垃圾回收 就nb了
另外把C++头文件解决了 就功德无量了

【在 N*******t 的大作中提到】
: 你说的这些,只有Qt曾经支持过,当时我是用
: Dao开发的一个工具做的封装。不过后来没怎么
: 维护了,现在维护的动力也不是很大,主要是
: Qt5的发展方向实在有点让人不敢恭维。
: 如果你经常用C++, Dao有一个模块可能能让你
: 感兴趣:DaoCXX, 一个基于Clang的模块,允许
: 你在Dao代码中嵌入C++代码!

avatar
d*d
90
+1

【在 d*****g 的大作中提到】
: 我就想看烦烦,嗯
:
: 你也表个态

avatar
N*t
91
除了语法和虚拟机模型不一样外,Dao的编译
和执行方式已经有些象Java了。
Dao的网站实际上就是Dao写的CGI网站,跟前台
的JavaScript虚拟机没关系。不过网站上的demo
完全是在javascript虚拟机里执行,跟服务端没任
何关系。也就是,javascript虚拟机里跑dao虚拟机,
然后这个虚拟机中的虚拟机里再跑dao程序。

【在 b***i 的大作中提到】
: 这不就是java这个级别了吗?那你是网站后台编译成虚拟机指令,然后前台有一个
: javascript的虚拟机来执行虚拟机指令?而不是前台网页中中的javascript直接解释执
: 行Dao?

avatar
d*g
92
哇,好爽

偏摸! 摸摸摸

【在 a***r 的大作中提到】
: 偏摸! 摸摸摸
avatar
N*t
93
目前Dao的类型推导是以最简单的方式做的,
都是基于单个指令做的推导。考虑到Dao的
指令都比较高级,我发觉这种基于单指令的
推导其实已经足够了。
这个类型系统已经支持 parametric polymorphism
了。可能不是很全面,但应该满足大部分实际
需求了。
GC是自己写,受启发于IBM的David Bacon 2003
左右写的一片关于基于引用计数的同步垃圾回收
的文章。性能嘛,没仔细测过,不好说,但在使
用多线程时,引用计数的加锁开销有点大,这其
实可以用无锁的原子操作替换,但考虑到移植性,
我还不是很愿意替换。我倒是更愿意在如何减少
垃圾对象的产生上下功夫做优化。

【在 a*****e 的大作中提到】
: 顶楼主!这样一个项目能支持下来不容易,流血流汗啊!
: 顺带问一下,Dao的类型推导是基于什么做的?类型系统支持 parametric
: polymorphism 吗?
: 实现方面,GC 是自己写的吗?能给简单介绍一下性能如何?

avatar
d*g
94
转烦烦阅

+1

【在 d********d 的大作中提到】
: +1
avatar
b*i
95
性能怎么样?和ruby之类比较?
比如,一个循环,计算乘法,每秒可以多少次?在i5芯片上?2GHz?

【在 N*******t 的大作中提到】
: 除了语法和虚拟机模型不一样外,Dao的编译
: 和执行方式已经有些象Java了。
: Dao的网站实际上就是Dao写的CGI网站,跟前台
: 的JavaScript虚拟机没关系。不过网站上的demo
: 完全是在javascript虚拟机里执行,跟服务端没任
: 何关系。也就是,javascript虚拟机里跑dao虚拟机,
: 然后这个虚拟机中的虚拟机里再跑dao程序。

avatar
a*r
96
等我照照镜子,替你看了
看我多体贴

【在 d*****g 的大作中提到】
: 我就想看烦烦,嗯
:
: 你也表个态

avatar
n*e
97
这个牛啊。。。
连qt什么的都支持了!

【在 N*******t 的大作中提到】
: 应该可以算虚拟机解释,但考虑到Dao
: 有支持即时编译的模块,可以将部分虚
: 拟机指令编译到机器码,所以这个解释
: 与编译的界限不那么明显了。当然从源
: 代码到虚拟机字节码这个过程也可以算
: 编译。
: 在线运行的是一个JavaScript实现的Dao
: 语言虚拟机,是是用Emscripten从Dao
: 虚拟机的C实现翻译出来的。这个JS实现
: 除了不支持多线程,其他特性基本上都是

avatar
a*r
98
我摸好了,轮到巨头了

【在 d*****g 的大作中提到】
: 哇,好爽
:
: 偏摸! 摸摸摸

avatar
N*t
99
太难,又不好玩,没动力啊

【在 N******K 的大作中提到】
: 你能搞一个C++的内存垃圾回收 就nb了
: 另外把C++头文件解决了 就功德无量了

avatar
a*r
100
嗯,我也替你看一眼

【在 d********d 的大作中提到】
: +1
avatar
N*t
101
是的,倒不是设计和开发语言本身很累,
累的是如何和其他方面保持平衡,毕竟
每个人精力都是有限的。
开发语言本身其实挺好玩的,我觉得
不亚于玩游戏什么。

【在 r*********r 的大作中提到】
: 牛人啊。设计语言实在是太累了。
avatar
d*d
102
再帮我亲一个

【在 a***r 的大作中提到】
: 嗯,我也替你看一眼
avatar
N*t
103
在不调用外部模块的情况下,纯数值计算
Dao应该比Python和Ruby快很多!

【在 b***i 的大作中提到】
: 性能怎么样?和ruby之类比较?
: 比如,一个循环,计算乘法,每秒可以多少次?在i5芯片上?2GHz?

avatar
f*r
104
亲了。。。稍显自恋

【在 d********d 的大作中提到】
: 再帮我亲一个
avatar
n*e
105
你的编译器是C写的吗?随便browse了一下source,不确定是不是。
代码写的真美啊。

【在 N*******t 的大作中提到】
: 在不调用外部模块的情况下,纯数值计算
: Dao应该比Python和Ruby快很多!

avatar
d*d
106
嗯,那我就满足了

【在 f******r 的大作中提到】
: 亲了。。。稍显自恋
avatar
n*t
107
说实话,为什么内存管理这么这么这么这么困难啊??
有这么难吗?大家好像觉得有了GC就完事太平了,
计算机开发里面那么多坑爹的事情,网络通信,异步i/o,并发,
disk i/o,哪个比这个东西简单的?为啥要和这东西过不去?
90%的事情,自己开个数组,就解决了.

【在 N******K 的大作中提到】
: 你能搞一个C++的内存垃圾回收 就nb了
: 另外把C++头文件解决了 就功德无量了

avatar
Y*2
108
娘子,我也要摸摸!!!
avatar
n*e
109
你说的这些其实理论上是操作系统,驱动程序应该处理的内容。

【在 n******t 的大作中提到】
: 说实话,为什么内存管理这么这么这么这么困难啊??
: 有这么难吗?大家好像觉得有了GC就完事太平了,
: 计算机开发里面那么多坑爹的事情,网络通信,异步i/o,并发,
: disk i/o,哪个比这个东西简单的?为啥要和这东西过不去?
: 90%的事情,自己开个数组,就解决了.

avatar
d*d
110
......你要摸哪一个?

【在 Y*****2 的大作中提到】
: 娘子,我也要摸摸!!!
avatar
N*t
111
是C写的。
其实也有很难看的部分,只是你还没看到罢了 :)

【在 n***e 的大作中提到】
: 你的编译器是C写的吗?随便browse了一下source,不确定是不是。
: 代码写的真美啊。

avatar
Y*2
112
都摸摸~~~

【在 d********d 的大作中提到】
: ......你要摸哪一个?
avatar
b*i
113
你的虚拟机的设计能公开吗?虽然代码公开了,如果有文档让我们看看就好了。我在改
进的一个BASIC语言就可以借鉴一下。

【在 N*******t 的大作中提到】
: 是C写的。
: 其实也有很难看的部分,只是你还没看到罢了 :)

avatar
M*g
114
不要乱摸!
摸到我了!

【在 Y*****2 的大作中提到】
: 都摸摸~~~
avatar
d*r
115
lz是说和已经存在的东西(e.g. C++,或者其他语言的library)保持平衡吗?
能详细说说主要的工作量和难点吗。对了,有没有比较好的论坛,专门讨论语言设计的
?很感兴趣呀. :)

【在 N*******t 的大作中提到】
: 是的,倒不是设计和开发语言本身很累,
: 累的是如何和其他方面保持平衡,毕竟
: 每个人精力都是有限的。
: 开发语言本身其实挺好玩的,我觉得
: 不亚于玩游戏什么。

avatar
d*d
116
那...你先摸她丫!我还没有做好心理准备嘛

【在 Y*****2 的大作中提到】
: 都摸摸~~~
avatar
N*t
117
我还没写虚拟机的设计文档。不过Dao虚拟机的设计
参考过Lua5的虚拟机,你可以看看Lua5的虚拟机的设计,
搜下面两个:
The Implementation of Lua 5.0
A No-Frills Introduction to Lua 5.1 VM Instructions

【在 b***i 的大作中提到】
: 你的虚拟机的设计能公开吗?虽然代码公开了,如果有文档让我们看看就好了。我在改
: 进的一个BASIC语言就可以借鉴一下。

avatar
d*d
118
那你不是开心死了

【在 M****g 的大作中提到】
: 不要乱摸!
: 摸到我了!

avatar
N*t
119
不是,我是说跟工作和生活等保持平衡。
开发语言本身的工作量就很大,如果再
走点弯路,或者分心做些工具,库等,
工作量可能要加倍。在业余时间做这些,
难免跟工作和生活产生些冲突,要保持
平衡会有些难有些辛苦。
工作量很难说得具体,如果语法已经定
义好,语言特性,虚拟机构架等都已经
规划好,工作量应该小很多。如果边摸
索边开发,工作量会多很多。
难点的话,要看支持什么特性。主要难点
可能是(同步)垃圾回收,类型系统,
优化等。第一次开发的话,还会有很多
其他难点。其实还有很多“难点”本身并不
难,但难的地方是选择最优的实现。
讨论语言设计的论坛,可以看看这个:
http://lambda-the-ultimate.org/forum/1
不过那里很多讨论过于理论化,对于设计
注重实用的语言可能帮助不是很大。

【在 d*******r 的大作中提到】
: lz是说和已经存在的东西(e.g. C++,或者其他语言的library)保持平衡吗?
: 能详细说说主要的工作量和难点吗。对了,有没有比较好的论坛,专门讨论语言设计的
: ?很感兴趣呀. :)

avatar
Y*2
120
不好意思,已经摸了。
乖。

【在 d********d 的大作中提到】
: 那...你先摸她丫!我还没有做好心理准备嘛
avatar
h*e
121
提个建议,把名字改一下。dao-》diao。
avatar
M*g
122
但我得装出很恼火的样子
不然被大家知道我是色狼就没法混了

【在 d********d 的大作中提到】
: 那你不是开心死了
avatar
t*n
123
lz真牛人。是干活的。比斗嘴的强多了。我要是CEO,一定招lz做软工。
avatar
Y*2
124
可是我们其实都喜欢色狼!

【在 M****g 的大作中提到】
: 但我得装出很恼火的样子
: 不然被大家知道我是色狼就没法混了

avatar
a*e
125
就我的开发经验而言,一个成熟高效 GC 的难度相当之大,多接触一下这方面前沿的论
文就知道了,无比复杂

【在 n******t 的大作中提到】
: 说实话,为什么内存管理这么这么这么这么困难啊??
: 有这么难吗?大家好像觉得有了GC就完事太平了,
: 计算机开发里面那么多坑爹的事情,网络通信,异步i/o,并发,
: disk i/o,哪个比这个东西简单的?为啥要和这东西过不去?
: 90%的事情,自己开个数组,就解决了.

avatar
d*d
126
妈呀,娘子,这几天你就骗了这么多包子,还是你养我好了

【在 f******r 的大作中提到】
: 亲了。。。稍显自恋
avatar
g*g
127
开发语言最难的地方是找个合适领域切入。至于开发一个通用语言还想获得成功,比做
startup做出100M 还难。
avatar
d*g
128
。。。
我喜欢女色狼

可是我们其实都喜欢色狼!

【在 Y*****2 的大作中提到】
: 可是我们其实都喜欢色狼!
avatar
J*a
129
来膜拜一下
avatar
Y*2
130
恩,女色狼也喜欢你~~~~

【在 d*****g 的大作中提到】
: 。。。
: 我喜欢女色狼
:
: 可是我们其实都喜欢色狼!

avatar
z*3
131
果然是牛人,从来没想过自己写语言

【在 N*******t 的大作中提到】
: Dao语言主页: http://daovm.net
: 在线演示和试用:http://daovm.net/demo.html
: Dao的基本特性包括:
: 1. 可选类型(optional typing),支持显式和隐士类型声明,支持类型推导和静态类
: 型检查;
: 2. 有比较好的并行编程支持;
: 3. 有即时编译器(基于LLVM);
: 4. 有比较简单的C编程接口;
: 5. 提供了一个基于Clang的自动封装工具。
: 其他特性包括:语法宏,OOP,抽象接口,代码块方法,Decorator,Coroutine,

avatar
M*g
132
这样好了
Mright是色狼,Mwrong坐怀不乱
随便选

【在 Y*****2 的大作中提到】
: 可是我们其实都喜欢色狼!
avatar
n*t
133
复杂的东西,99%都是没用的东西。

【在 a*****e 的大作中提到】
: 就我的开发经验而言,一个成熟高效 GC 的难度相当之大,多接触一下这方面前沿的论
: 文就知道了,无比复杂

avatar
Y*2
134
要看到什么程度,都饿太过了也不好。

【在 M****g 的大作中提到】
: 这样好了
: Mright是色狼,Mwrong坐怀不乱
: 随便选

avatar
N*N
135
牛。。

【在 N*******t 的大作中提到】
: Dao语言主页: http://daovm.net
: 在线演示和试用:http://daovm.net/demo.html
: Dao的基本特性包括:
: 1. 可选类型(optional typing),支持显式和隐士类型声明,支持类型推导和静态类
: 型检查;
: 2. 有比较好的并行编程支持;
: 3. 有即时编译器(基于LLVM);
: 4. 有比较简单的C编程接口;
: 5. 提供了一个基于Clang的自动封装工具。
: 其他特性包括:语法宏,OOP,抽象接口,代码块方法,Decorator,Coroutine,

avatar
f*r
136
这个属于内部调剂。。。我不喜欢太穷嘛

【在 d********d 的大作中提到】
: 妈呀,娘子,这几天你就骗了这么多包子,还是你养我好了
avatar
a*e
137
你可以学习一下各种 JVM 的 GC,看看是复杂的没有用,还是简单的没有用。

【在 n******t 的大作中提到】
: 复杂的东西,99%都是没用的东西。
avatar
d*d
138
娘子真会持家,太开心了

【在 f******r 的大作中提到】
: 这个属于内部调剂。。。我不喜欢太穷嘛
avatar
e*y
139
路过,纯膜拜一下!
avatar
f*r
140
嗯,找了我,没错的

【在 d********d 的大作中提到】
: 娘子真会持家,太开心了
avatar
d*r
141
我看了下你说的论坛,看来scheme还是很受推崇啊
http://lambda-the-ultimate.org/node/492
太谢谢啦
不过这个论坛确实挺偏理论的,有没有偏工程一点的论坛呢? :)
还有,从学习Lua的源码入手的人确实挺多的,可能就是因为Lua的源码少吧。
网易那个有名的云风,也系统研究过Lua:
http://www.codingnow.com/temp/readinglua.pdf

【在 N*******t 的大作中提到】
: 不是,我是说跟工作和生活等保持平衡。
: 开发语言本身的工作量就很大,如果再
: 走点弯路,或者分心做些工具,库等,
: 工作量可能要加倍。在业余时间做这些,
: 难免跟工作和生活产生些冲突,要保持
: 平衡会有些难有些辛苦。
: 工作量很难说得具体,如果语法已经定
: 义好,语言特性,虚拟机构架等都已经
: 规划好,工作量应该小很多。如果边摸
: 索边开发,工作量会多很多。

avatar
M*g
142
你不怕她看中的是你的钱?

【在 f******r 的大作中提到】
: 嗯,找了我,没错的
avatar
N*t
143
说得有道理。不过目前的首要目标还是把语言
本身做强,把工具和库做多一点。可以在做库
时找合适的领域。

【在 g*****g 的大作中提到】
: 开发语言最难的地方是找个合适领域切入。至于开发一个通用语言还想获得成功,比做
: startup做出100M 还难。

avatar
d*d
144
我是这种人吗?

【在 M****g 的大作中提到】
: 你不怕她看中的是你的钱?
avatar
N*t
145
偏工程的论坛好像没什么有印象的。估计是因为实际的问题
可讨论的空间小些,可参与的人也少些。因为Lua的原因,
我也曾留意过云凤的博客。

【在 d*******r 的大作中提到】
: 我看了下你说的论坛,看来scheme还是很受推崇啊
: http://lambda-the-ultimate.org/node/492
: 太谢谢啦
: 不过这个论坛确实挺偏理论的,有没有偏工程一点的论坛呢? :)
: 还有,从学习Lua的源码入手的人确实挺多的,可能就是因为Lua的源码少吧。
: 网易那个有名的云风,也系统研究过Lua:
: http://www.codingnow.com/temp/readinglua.pdf

avatar
M*g
146
那你跟丫头打情骂俏是什么意思
还给她写情诗

【在 d********d 的大作中提到】
: 我是这种人吗?
avatar
b*i
147
我倒是觉得楼主可以申请硅谷巨头的老年工程师了。站在巨人的肩膀上可以走更远。

【在 d*******r 的大作中提到】
: 我也没什么想法,如果建议的话,我觉得可以先试着做自己擅长自己懂的吧。
: 我记得LZ是做BioInfo的。可以写一些科学计算,或者建模的东西?

avatar
d*d
148
我给她的不是情诗阿

【在 M****g 的大作中提到】
: 那你跟丫头打情骂俏是什么意思
: 还给她写情诗

avatar
d*q
149
how to solve cycle reference problem? or you may use other solutions for
cycle reference? just like python?

【在 N*******t 的大作中提到】
: 目前Dao的类型推导是以最简单的方式做的,
: 都是基于单个指令做的推导。考虑到Dao的
: 指令都比较高级,我发觉这种基于单指令的
: 推导其实已经足够了。
: 这个类型系统已经支持 parametric polymorphism
: 了。可能不是很全面,但应该满足大部分实际
: 需求了。
: GC是自己写,受启发于IBM的David Bacon 2003
: 左右写的一片关于基于引用计数的同步垃圾回收
: 的文章。性能嘛,没仔细测过,不好说,但在使

avatar
f*r
150
怕。。。谁让她长的好看呢
被骗也认了

【在 M****g 的大作中提到】
: 你不怕她看中的是你的钱?
avatar
N*t
151
1. Given a set of candidate garbage objects,
scan the referencing graph accessible from them,
and for each object, reduce (by one) the refcounts
of the objects that are referenced by this object.
2. Then scan the graph again, and for each object
that has NON-ZERO refcount, increase (by one)
the refcounts of the objects that are referenced
by this object.
3. Now any object on the graph with zero refcount
is a real garbage object.
Objects on a dead cycle will have their refcounts reduced
to zero by the first scan, but will not be recovered by the
second scan.

【在 d***q 的大作中提到】
: how to solve cycle reference problem? or you may use other solutions for
: cycle reference? just like python?

avatar
f*r
152
嗯,总算有人说句公道话了

【在 M****g 的大作中提到】
: 那你跟丫头打情骂俏是什么意思
: 还给她写情诗

avatar
b*i
153
我对Lua也不太熟悉,要不你比较一下,你的Dao比Lua大多少?它没有面向对象吧?你
的多了哪些功能?性能相比如何?

【在 N*******t 的大作中提到】
: 偏工程的论坛好像没什么有印象的。估计是因为实际的问题
: 可讨论的空间小些,可参与的人也少些。因为Lua的原因,
: 我也曾留意过云凤的博客。

avatar
d*d
154
明明是
你好丫头
我给你的才是
我爱泛泛啊
娘子,我太冤枉了!

【在 f******r 的大作中提到】
: 嗯,总算有人说句公道话了
avatar
h*k
155
niu ren

【在 N*******t 的大作中提到】
: 偏工程的论坛好像没什么有印象的。估计是因为实际的问题
: 可讨论的空间小些,可参与的人也少些。因为Lua的原因,
: 我也曾留意过云凤的博客。

avatar
M*g
156
谁与共,断肠颂都出来了还不是情诗
好好端正下态度,赶快认个错,fanfaner看你好看也就原谅你了

【在 d********d 的大作中提到】
: 明明是
: 你好丫头
: 我给你的才是
: 我爱泛泛啊
: 娘子,我太冤枉了!

avatar
N*t
157
Dao比Lua大约大3到4倍。Lua没有基于类的面向对象,不过好像可以用基于原型(
prototype)的面向对象。Lua只支持很少的特性,Dao里的几乎每一个主要特性,Lua都
没有。至于性能,这取决于什么类型的程序,如果是偏数值计算的,Dao要快一些,其
他的Dao要慢一些。

【在 b***i 的大作中提到】
: 我对Lua也不太熟悉,要不你比较一下,你的Dao比Lua大多少?它没有面向对象吧?你
: 的多了哪些功能?性能相比如何?

avatar
M*g
158
这态度好
看来关键还是得有钱

【在 f******r 的大作中提到】
: 怕。。。谁让她长的好看呢
: 被骗也认了

avatar
d*q
159
这里有个常见的例子(python)
def fun():
a,b=[],[]
a.append(b)
b.append(a)
寻常的reference count 是没法处理这种情况的,当函数结束时,两个list的ref
count都为1,无法释放,就有memory leak了。py对于conatainer, object这种特殊的
对象使用了另外的gc技术来确保回收(记得没错好像是mark sweep)。也就是说它有两
套gc, 所以这是有人说他内存管理效率不高的缘故。
不知道dao对这种是怎么处理的?
如果只能使用ref count的smart pointer,例如c++,通常都要引入weak_ptr 来解除这
种互相引用的关系。甚至在设计上避开这种关系。
avatar
f*r
160
嗯,我都不好意思说

【在 M****g 的大作中提到】
: 谁与共,断肠颂都出来了还不是情诗
: 好好端正下态度,赶快认个错,fanfaner看你好看也就原谅你了

avatar
N*t
161
我前面回帖(64楼)里给的就是一个可以检测这种循环引用的的算法。你可以搜一下
David Bacon (IBM) 2003年一篇讲同步垃圾回收的文章,里面讲了这个算法。

【在 d***q 的大作中提到】
: 这里有个常见的例子(python)
: def fun():
: a,b=[],[]
: a.append(b)
: b.append(a)
: 寻常的reference count 是没法处理这种情况的,当函数结束时,两个list的ref
: count都为1,无法释放,就有memory leak了。py对于conatainer, object这种特殊的
: 对象使用了另外的gc技术来确保回收(记得没错好像是mark sweep)。也就是说它有两
: 套gc, 所以这是有人说他内存管理效率不高的缘故。
: 不知道dao对这种是怎么处理的?

avatar
d*d
162
那....我心里想的是泛泛嘛!

【在 M****g 的大作中提到】
: 谁与共,断肠颂都出来了还不是情诗
: 好好端正下态度,赶快认个错,fanfaner看你好看也就原谅你了

avatar
d*q
163
A Pure Reference Counting Garbage Collector
that one?

【在 N*******t 的大作中提到】
: 我前面回帖(64楼)里给的就是一个可以检测这种循环引用的的算法。你可以搜一下
: David Bacon (IBM) 2003年一篇讲同步垃圾回收的文章,里面讲了这个算法。

avatar
f*r
164
看你长的好看。。。我假装信了吧

【在 d********d 的大作中提到】
: 那....我心里想的是泛泛嘛!
avatar
N*t
165
More or less. This one seems to be the version for submission.

【在 d***q 的大作中提到】
: A Pure Reference Counting Garbage Collector
: that one?

avatar
s*y
166
不错,DAO引人注意的也就是Optional typing和对并行编程的支持。不过go和lisp也可
以,lisp的宏更是Turing complete.
在支持Optional typing的语言中,目前我倾向选择Lisp。
目前我理想的语言是在使用Lisp的时候,可较容易的让用户独立管理内存。

【在 N*******t 的大作中提到】
: Optional typing和对并行编程的支持显然是长处(至少相对于主流脚本语言)。没有
: 具体针对哪一门语言,但大体上是Python和Ruby这样的语言,并没想替代它们,但可以
: 提供一个比他们更轻量级的选择。从某方面讲,就是语言特性的丰富程度向Python和
: Ruby等看齐,但运行时保持轻量级,向Lua这样的语言看齐。

avatar
s*y
167
这个是远远不够的,至少要达到C的80%

【在 N*******t 的大作中提到】
: 在不调用外部模块的情况下,纯数值计算
: Dao应该比Python和Ruby快很多!

avatar
s*y
168
我个人觉得feature多不多没关系,主要的是强项要特别强。象面向对象的东西最好不
要放在内核,最好象lisp一样用外围的库去支持。
我个人是特讨厌面向对象的,假如能提供给用户选择一个没受污染的环境,我相信很多
象我一样有洁癖的会很感兴趣的。

【在 N*******t 的大作中提到】
: Dao比Lua大约大3到4倍。Lua没有基于类的面向对象,不过好像可以用基于原型(
: prototype)的面向对象。Lua只支持很少的特性,Dao里的几乎每一个主要特性,Lua都
: 没有。至于性能,这取决于什么类型的程序,如果是偏数值计算的,Dao要快一些,其
: 他的Dao要慢一些。

avatar
N*t
169
在DaoJIT的话,对于纯数值计算,应该可以达到。
你可以看看这个附件里的测试:http://www.mitbbs.com/article/Programming/31255435_0.html
有一个速度跟C持平,另一个差不多达到80%。
不过这两主要做的都是算术运算,可能没什么代表性。
但如果对DaoJIT做更多改进的话,这种加速应该可以
涵盖更多类型的计算。

【在 s****y 的大作中提到】
: 这个是远远不够的,至少要达到C的80%
avatar
N*t
170
你可以去试试Lua,它应该可以给你一个没受各种feature污染的环境:)

【在 s****y 的大作中提到】
: 我个人觉得feature多不多没关系,主要的是强项要特别强。象面向对象的东西最好不
: 要放在内核,最好象lisp一样用外围的库去支持。
: 我个人是特讨厌面向对象的,假如能提供给用户选择一个没受污染的环境,我相信很多
: 象我一样有洁癖的会很感兴趣的。

avatar
d*r
171

你是指类似 "Kernel Lisp"这种idea么?
http://shenlanguage.org/motivation.html
真正做东西的话,你推荐用哪种Lisp?Racket or Clojure?

【在 s****y 的大作中提到】
: 我个人觉得feature多不多没关系,主要的是强项要特别强。象面向对象的东西最好不
: 要放在内核,最好象lisp一样用外围的库去支持。
: 我个人是特讨厌面向对象的,假如能提供给用户选择一个没受污染的环境,我相信很多
: 象我一样有洁癖的会很感兴趣的。

avatar
N*K
172
没有类 怎么编大型程序?

【在 s****y 的大作中提到】
: 我个人觉得feature多不多没关系,主要的是强项要特别强。象面向对象的东西最好不
: 要放在内核,最好象lisp一样用外围的库去支持。
: 我个人是特讨厌面向对象的,假如能提供给用户选择一个没受污染的环境,我相信很多
: 象我一样有洁癖的会很感兴趣的。

avatar
s*y
173
譬如:The Common Lisp Object System (CLOS)是用库实现的。
真正做东西的话,我推荐用common lisp,我一般用sbcl,可编译成native binary,同样
的代码也可用ECL和C混编,十分灵活。性能也可几乎达到C。

【在 d*******r 的大作中提到】
:
: 你是指类似 "Kernel Lisp"这种idea么?
: http://shenlanguage.org/motivation.html
: 真正做东西的话,你推荐用哪种Lisp?Racket or Clojure?

avatar
t*n
174
好奇你做什么的?那个公司用这个?貌似非常小众。

【在 s****y 的大作中提到】
: 譬如:The Common Lisp Object System (CLOS)是用库实现的。
: 真正做东西的话,我推荐用common lisp,我一般用sbcl,可编译成native binary,同样
: 的代码也可用ECL和C混编,十分灵活。性能也可几乎达到C。

avatar
t*n
175
dao能和c/python混合编译吗?

【在 N*******t 的大作中提到】
: 在DaoJIT的话,对于纯数值计算,应该可以达到。
: 你可以看看这个附件里的测试:http://www.mitbbs.com/article/Programming/31255435_0.html
: 有一个速度跟C持平,另一个差不多达到80%。
: 不过这两主要做的都是算术运算,可能没什么代表性。
: 但如果对DaoJIT做更多改进的话,这种加速应该可以
: 涵盖更多类型的计算。

avatar
N*t
176
你是说混合编程吧。
dao可以和c/c++混合编程,使用一个基于clang的模块,
c/c++代码可以嵌入到dao代码里。
这种混合编程还不支持python,但可以做到,我很久以前
尝试过,不过后来dao改动比较大,以前做的没法用了。
我一直想重做,就是还没时间。

【在 t*****n 的大作中提到】
: dao能和c/python混合编译吗?
avatar
t*n
177
这个不错。看来真是python杀手。c/c++编译后速度没损失吧?

【在 N*******t 的大作中提到】
: 你是说混合编程吧。
: dao可以和c/c++混合编程,使用一个基于clang的模块,
: c/c++代码可以嵌入到dao代码里。
: 这种混合编程还不支持python,但可以做到,我很久以前
: 尝试过,不过后来dao改动比较大,以前做的没法用了。
: 我一直想重做,就是还没时间。

avatar
N*t
178
C/C++代码性能没损失,不过会有些额外调用开销。

【在 t*****n 的大作中提到】
: 这个不错。看来真是python杀手。c/c++编译后速度没损失吧?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。