G*e
2 楼
我降落了928架飞机
我降落928的那次,发现自己已经修炼成仙了,我玩这个游戏已经玩不死了,可以永远
玩下去。。。我是在坐飞机的时候玩的,从上飞机到降落,就一只没死,后来都玩无聊
了,就自杀了。。。。 = =|||
另外我玩那个bejeweled的endless,也玩不死,玩到了100关的时候,我就不玩了。。。
注:我是女的,我老公都没我厉害,hiahia,忍不住炫耀~
我降落928的那次,发现自己已经修炼成仙了,我玩这个游戏已经玩不死了,可以永远
玩下去。。。我是在坐飞机的时候玩的,从上飞机到降落,就一只没死,后来都玩无聊
了,就自杀了。。。。 = =|||
另外我玩那个bejeweled的endless,也玩不死,玩到了100关的时候,我就不玩了。。。
注:我是女的,我老公都没我厉害,hiahia,忍不住炫耀~
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
这个语言基本上以较小的实现提供了较丰富的特性。
在线演示和试用: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
这个语言基本上以较小的实现提供了较丰富的特性。
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,
【在 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,
r*e
8 楼
确实很高,我以前总玩flightcontrol,自从我lp打了一次800多之后 俺就没信心玩了
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,
【在 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,
E*m
11 楼
928! 太佩服了
有個 Traffic Rush 免費的,你試試看,也很好玩。
有個 Traffic Rush 免費的,你試試看,也很好玩。
r*e
17 楼
haha,good one!
我查一下我iiphong上的记录确认一下
我查一下我iiphong上的记录确认一下
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吗?
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吗?
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,如果在编译时再优化大小,应该可以更小。
发明这么个语言不容易啊。你是作者吗?
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,如果在编译时再优化大小,应该可以更小。
p*3
23 楼
就是停飞机那个吧, 我连40都过不了,,强啊!
s*t
26 楼
牛
m*O
29 楼
lz bejeweled action可以一口气打到第几关?
b*u
35 楼
Bejeweled endless 本来就死不了啊。你试试action?
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,
【在 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,
Y*2
37 楼
我来了。
m*O
38 楼
我玩了一下午。action只能打到六级
G*e
41 楼
我不喜欢action,以前好像只能玩到第7第8吧,越到后面越难通关我就不玩了~另外我
说错了,不是endless,晕,是classic啦,玩classic我玩到了100,死不了,就没save
退出不玩了
说错了,不是endless,晕,是classic啦,玩classic我玩到了100,死不了,就没save
退出不玩了
G*e
44 楼
呵呵,你查不到的,它一般都是只显示离你近的一些最高分
另外其实超过1000的人大有人在。我发现我玩不死以后,就到youtube上搜了一下这个
游戏是否有人能将它玩出花样来,有个人发了一个自己玩到10000的视频,我看了看他
的玩法,和我的习惯很像,然后我就确定了这游戏我要是想,也能玩到10000。。。
其实我觉得挺容易的,因为这个游戏大概到第50个飞机以后,难度就不会再变了,而且
什么飞机会从什么地方出来也很predictable,等你玩习惯了,对每种飞机的飞行速度
掌握以后,就是耐心程度和注意力的问题了。。。我本来想玩到1000再自杀,但928时
飞机上好多人都下去了,我还憋了一泡尿,就想928已经足以说明问题了,和1000没有
差别,就自杀了~
【在 r****e 的大作中提到】
: haha,good one!
: 我查一下我iiphong上的记录确认一下
另外其实超过1000的人大有人在。我发现我玩不死以后,就到youtube上搜了一下这个
游戏是否有人能将它玩出花样来,有个人发了一个自己玩到10000的视频,我看了看他
的玩法,和我的习惯很像,然后我就确定了这游戏我要是想,也能玩到10000。。。
其实我觉得挺容易的,因为这个游戏大概到第50个飞机以后,难度就不会再变了,而且
什么飞机会从什么地方出来也很predictable,等你玩习惯了,对每种飞机的飞行速度
掌握以后,就是耐心程度和注意力的问题了。。。我本来想玩到1000再自杀,但928时
飞机上好多人都下去了,我还憋了一泡尿,就想928已经足以说明问题了,和1000没有
差别,就自杀了~
【在 r****e 的大作中提到】
: haha,good one!
: 我查一下我iiphong上的记录确认一下
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 }
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 }
G*e
47 楼
bejeweled classic的秘笈是,avoid造炸弹,见炸弹就炸,随时保持版图上有泡泡,而
且要一只搭泡泡,泡泡越多越好,有了泡泡以后就想办法把泡泡弄到下面去,走投无路
的时候就用一个泡泡
我经常都是同时有7,8个泡泡在版图上,我到100关的时候版图上还有11个泡泡呢。。
。。
且要一只搭泡泡,泡泡越多越好,有了泡泡以后就想办法把泡泡弄到下面去,走投无路
的时候就用一个泡泡
我经常都是同时有7,8个泡泡在版图上,我到100关的时候版图上还有11个泡泡呢。。
。。
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 \]
要弄得更好看的话,需要把反斜杠或%都拿掉,
然后在其他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 \]
m*O
50 楼
可就是action才刺激阿。其他的都死不了多没劲
d*r
51 楼
佩服!记得很久前在csdn上看见过lz讨论这个语言。
本菜鸟的意见是,lz用Dao做个牛B的框架或者library之类的工具,然后有人用这些工
具做出个影响力大的killer app, 那Dao就有可能火了。
本菜鸟的意见是,lz用Dao做个牛B的框架或者library之类的工具,然后有人用这些工
具做出个影响力大的killer app, 那Dao就有可能火了。
G*e
53 楼
我觉得action光求速度,只能见到就消,我喜欢玩稍微能让你能够做点planning的东西
l*s
57 楼
real bull appeared!
d*o
63 楼
膜拜,如同其它人所说的,得找到一个专门的领域,让人找到一个强烈的理由用它。
否则我虽然我很想支持,但我还没有想到需要用它的理由。
我算法用C++,数据处理用python,GUI用qt,数据可视化用matplotlib,processing,网
页数据库用django。得给我一个好的理由让Dao让用可以替代现有的某项工作。
【在 N*******t 的大作中提到】
: 要做牛的框架或库,选对领域很重要。
: 不知道做web框架是不是有点过时了。
: 有什么好的建议么?
: 我目前的想法是先做些能让用户产生
: 粘性的东西,如数据可视化绘图等。
: 当然,要是有个潜在应用前景好很多
: 的框架或库去做的话会更好。
: 好久没上csdn了,什么时候再去逛逛
否则我虽然我很想支持,但我还没有想到需要用它的理由。
我算法用C++,数据处理用python,GUI用qt,数据可视化用matplotlib,processing,网
页数据库用django。得给我一个好的理由让Dao让用可以替代现有的某项工作。
【在 N*******t 的大作中提到】
: 要做牛的框架或库,选对领域很重要。
: 不知道做web框架是不是有点过时了。
: 有什么好的建议么?
: 我目前的想法是先做些能让用户产生
: 粘性的东西,如数据可视化绘图等。
: 当然,要是有个潜在应用前景好很多
: 的框架或库去做的话会更好。
: 好久没上csdn了,什么时候再去逛逛
k*o
65 楼
The game Runway? 手持25xx分默默飘过……
BTW,this is my first post on this board, haha
BTW,this is my first post on this board, haha
r*r
66 楼
牛人啊。设计语言实在是太累了。
N*t
71 楼
你说的这些,只有Qt曾经支持过,当时我是用
Dao开发的一个工具做的封装。不过后来没怎么
维护了,现在维护的动力也不是很大,主要是
Qt5的发展方向实在有点让人不敢恭维。
如果你经常用C++, Dao有一个模块可能能让你
感兴趣:DaoCXX, 一个基于Clang的模块,允许
你在Dao代码中嵌入C++代码!
【在 d**o 的大作中提到】
: 膜拜,如同其它人所说的,得找到一个专门的领域,让人找到一个强烈的理由用它。
: 否则我虽然我很想支持,但我还没有想到需要用它的理由。
: 我算法用C++,数据处理用python,GUI用qt,数据可视化用matplotlib,processing,网
: 页数据库用django。得给我一个好的理由让Dao让用可以替代现有的某项工作。
Dao开发的一个工具做的封装。不过后来没怎么
维护了,现在维护的动力也不是很大,主要是
Qt5的发展方向实在有点让人不敢恭维。
如果你经常用C++, Dao有一个模块可能能让你
感兴趣:DaoCXX, 一个基于Clang的模块,允许
你在Dao代码中嵌入C++代码!
【在 d**o 的大作中提到】
: 膜拜,如同其它人所说的,得找到一个专门的领域,让人找到一个强烈的理由用它。
: 否则我虽然我很想支持,但我还没有想到需要用它的理由。
: 我算法用C++,数据处理用python,GUI用qt,数据可视化用matplotlib,processing,网
: 页数据库用django。得给我一个好的理由让Dao让用可以替代现有的某项工作。
c*e
73 楼
这个很牛,膜拜一下。语言要有个长处,否则很难胜出。不知道你target那个语言或者
什么场景用DAO? 这个你选择语言特性的时候应该想过吧。
什么场景用DAO? 这个你选择语言特性的时候应该想过吧。
N*t
83 楼
应该可以算虚拟机解释,但考虑到Dao
有支持即时编译的模块,可以将部分虚
拟机指令编译到机器码,所以这个解释
与编译的界限不那么明显了。当然从源
代码到虚拟机字节码这个过程也可以算
编译。
在线运行的是一个JavaScript实现的Dao
语言虚拟机,是是用Emscripten从Dao
虚拟机的C实现翻译出来的。这个JS实现
除了不支持多线程,其他特性基本上都是
完整的支持了。
当然可以支持多个文件/目录组成的程序。
同一个虚拟机环境可以多次运行不同的程序,
实际上网站上那个就是一个虚拟机环境多次
运行不同demo,直到用户刷新页面为止。
需要通讯的话,有网络模块。
【在 b***i 的大作中提到】
: 你这个 语言肯定是很牛的了。到底是编译还是虚拟机解释?怎么看到你网站上有一个
: 在线运行?那个什么原理?和你原来的系统是兼容的吗?
: 还有你可以“编译”或者运行多个文件的程序吗?多个目录呢?运行后再运行一个,可
: 以通讯吗?
有支持即时编译的模块,可以将部分虚
拟机指令编译到机器码,所以这个解释
与编译的界限不那么明显了。当然从源
代码到虚拟机字节码这个过程也可以算
编译。
在线运行的是一个JavaScript实现的Dao
语言虚拟机,是是用Emscripten从Dao
虚拟机的C实现翻译出来的。这个JS实现
除了不支持多线程,其他特性基本上都是
完整的支持了。
当然可以支持多个文件/目录组成的程序。
同一个虚拟机环境可以多次运行不同的程序,
实际上网站上那个就是一个虚拟机环境多次
运行不同demo,直到用户刷新页面为止。
需要通讯的话,有网络模块。
【在 b***i 的大作中提到】
: 你这个 语言肯定是很牛的了。到底是编译还是虚拟机解释?怎么看到你网站上有一个
: 在线运行?那个什么原理?和你原来的系统是兼容的吗?
: 还有你可以“编译”或者运行多个文件的程序吗?多个目录呢?运行后再运行一个,可
: 以通讯吗?
b*i
85 楼
这不就是java这个级别了吗?那你是网站后台编译成虚拟机指令,然后前台有一个
javascript的虚拟机来执行虚拟机指令?而不是前台网页中中的javascript直接解释执
行Dao?
【在 N*******t 的大作中提到】
: 应该可以算虚拟机解释,但考虑到Dao
: 有支持即时编译的模块,可以将部分虚
: 拟机指令编译到机器码,所以这个解释
: 与编译的界限不那么明显了。当然从源
: 代码到虚拟机字节码这个过程也可以算
: 编译。
: 在线运行的是一个JavaScript实现的Dao
: 语言虚拟机,是是用Emscripten从Dao
: 虚拟机的C实现翻译出来的。这个JS实现
: 除了不支持多线程,其他特性基本上都是
javascript的虚拟机来执行虚拟机指令?而不是前台网页中中的javascript直接解释执
行Dao?
【在 N*******t 的大作中提到】
: 应该可以算虚拟机解释,但考虑到Dao
: 有支持即时编译的模块,可以将部分虚
: 拟机指令编译到机器码,所以这个解释
: 与编译的界限不那么明显了。当然从源
: 代码到虚拟机字节码这个过程也可以算
: 编译。
: 在线运行的是一个JavaScript实现的Dao
: 语言虚拟机,是是用Emscripten从Dao
: 虚拟机的C实现翻译出来的。这个JS实现
: 除了不支持多线程,其他特性基本上都是
a*e
87 楼
顶楼主!这样一个项目能支持下来不容易,流血流汗啊!
顺带问一下,Dao的类型推导是基于什么做的?类型系统支持 parametric
polymorphism 吗?
实现方面,GC 是自己写的吗?能给简单介绍一下性能如何?
顺带问一下,Dao的类型推导是基于什么做的?类型系统支持 parametric
polymorphism 吗?
实现方面,GC 是自己写的吗?能给简单介绍一下性能如何?
N*t
93 楼
目前Dao的类型推导是以最简单的方式做的,
都是基于单个指令做的推导。考虑到Dao的
指令都比较高级,我发觉这种基于单指令的
推导其实已经足够了。
这个类型系统已经支持 parametric polymorphism
了。可能不是很全面,但应该满足大部分实际
需求了。
GC是自己写,受启发于IBM的David Bacon 2003
左右写的一片关于基于引用计数的同步垃圾回收
的文章。性能嘛,没仔细测过,不好说,但在使
用多线程时,引用计数的加锁开销有点大,这其
实可以用无锁的原子操作替换,但考虑到移植性,
我还不是很愿意替换。我倒是更愿意在如何减少
垃圾对象的产生上下功夫做优化。
【在 a*****e 的大作中提到】
: 顶楼主!这样一个项目能支持下来不容易,流血流汗啊!
: 顺带问一下,Dao的类型推导是基于什么做的?类型系统支持 parametric
: polymorphism 吗?
: 实现方面,GC 是自己写的吗?能给简单介绍一下性能如何?
都是基于单个指令做的推导。考虑到Dao的
指令都比较高级,我发觉这种基于单指令的
推导其实已经足够了。
这个类型系统已经支持 parametric polymorphism
了。可能不是很全面,但应该满足大部分实际
需求了。
GC是自己写,受启发于IBM的David Bacon 2003
左右写的一片关于基于引用计数的同步垃圾回收
的文章。性能嘛,没仔细测过,不好说,但在使
用多线程时,引用计数的加锁开销有点大,这其
实可以用无锁的原子操作替换,但考虑到移植性,
我还不是很愿意替换。我倒是更愿意在如何减少
垃圾对象的产生上下功夫做优化。
【在 a*****e 的大作中提到】
: 顶楼主!这样一个项目能支持下来不容易,流血流汗啊!
: 顺带问一下,Dao的类型推导是基于什么做的?类型系统支持 parametric
: polymorphism 吗?
: 实现方面,GC 是自己写的吗?能给简单介绍一下性能如何?
Y*2
108 楼
娘子,我也要摸摸!!!
N*t
119 楼
不是,我是说跟工作和生活等保持平衡。
开发语言本身的工作量就很大,如果再
走点弯路,或者分心做些工具,库等,
工作量可能要加倍。在业余时间做这些,
难免跟工作和生活产生些冲突,要保持
平衡会有些难有些辛苦。
工作量很难说得具体,如果语法已经定
义好,语言特性,虚拟机构架等都已经
规划好,工作量应该小很多。如果边摸
索边开发,工作量会多很多。
难点的话,要看支持什么特性。主要难点
可能是(同步)垃圾回收,类型系统,
优化等。第一次开发的话,还会有很多
其他难点。其实还有很多“难点”本身并不
难,但难的地方是选择最优的实现。
讨论语言设计的论坛,可以看看这个:
http://lambda-the-ultimate.org/forum/1
不过那里很多讨论过于理论化,对于设计
注重实用的语言可能帮助不是很大。
【在 d*******r 的大作中提到】
: lz是说和已经存在的东西(e.g. C++,或者其他语言的library)保持平衡吗?
: 能详细说说主要的工作量和难点吗。对了,有没有比较好的论坛,专门讨论语言设计的
: ?很感兴趣呀. :)
开发语言本身的工作量就很大,如果再
走点弯路,或者分心做些工具,库等,
工作量可能要加倍。在业余时间做这些,
难免跟工作和生活产生些冲突,要保持
平衡会有些难有些辛苦。
工作量很难说得具体,如果语法已经定
义好,语言特性,虚拟机构架等都已经
规划好,工作量应该小很多。如果边摸
索边开发,工作量会多很多。
难点的话,要看支持什么特性。主要难点
可能是(同步)垃圾回收,类型系统,
优化等。第一次开发的话,还会有很多
其他难点。其实还有很多“难点”本身并不
难,但难的地方是选择最优的实现。
讨论语言设计的论坛,可以看看这个:
http://lambda-the-ultimate.org/forum/1
不过那里很多讨论过于理论化,对于设计
注重实用的语言可能帮助不是很大。
【在 d*******r 的大作中提到】
: lz是说和已经存在的东西(e.g. C++,或者其他语言的library)保持平衡吗?
: 能详细说说主要的工作量和难点吗。对了,有没有比较好的论坛,专门讨论语言设计的
: ?很感兴趣呀. :)
h*e
121 楼
提个建议,把名字改一下。dao-》diao。
t*n
123 楼
lz真牛人。是干活的。比斗嘴的强多了。我要是CEO,一定招lz做软工。
g*g
127 楼
开发语言最难的地方是找个合适领域切入。至于开发一个通用语言还想获得成功,比做
startup做出100M 还难。
startup做出100M 还难。
J*a
129 楼
来膜拜一下
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,
【在 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,
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,
【在 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,
e*y
139 楼
路过,纯膜拜一下!
d*r
141 楼
我看了下你说的论坛,看来scheme还是很受推崇啊
http://lambda-the-ultimate.org/node/492
太谢谢啦
不过这个论坛确实挺偏理论的,有没有偏工程一点的论坛呢? :)
还有,从学习Lua的源码入手的人确实挺多的,可能就是因为Lua的源码少吧。
网易那个有名的云风,也系统研究过Lua:
http://www.codingnow.com/temp/readinglua.pdf
【在 N*******t 的大作中提到】
: 不是,我是说跟工作和生活等保持平衡。
: 开发语言本身的工作量就很大,如果再
: 走点弯路,或者分心做些工具,库等,
: 工作量可能要加倍。在业余时间做这些,
: 难免跟工作和生活产生些冲突,要保持
: 平衡会有些难有些辛苦。
: 工作量很难说得具体,如果语法已经定
: 义好,语言特性,虚拟机构架等都已经
: 规划好,工作量应该小很多。如果边摸
: 索边开发,工作量会多很多。
http://lambda-the-ultimate.org/node/492
太谢谢啦
不过这个论坛确实挺偏理论的,有没有偏工程一点的论坛呢? :)
还有,从学习Lua的源码入手的人确实挺多的,可能就是因为Lua的源码少吧。
网易那个有名的云风,也系统研究过Lua:
http://www.codingnow.com/temp/readinglua.pdf
【在 N*******t 的大作中提到】
: 不是,我是说跟工作和生活等保持平衡。
: 开发语言本身的工作量就很大,如果再
: 走点弯路,或者分心做些工具,库等,
: 工作量可能要加倍。在业余时间做这些,
: 难免跟工作和生活产生些冲突,要保持
: 平衡会有些难有些辛苦。
: 工作量很难说得具体,如果语法已经定
: 义好,语言特性,虚拟机构架等都已经
: 规划好,工作量应该小很多。如果边摸
: 索边开发,工作量会多很多。
N*t
145 楼
偏工程的论坛好像没什么有印象的。估计是因为实际的问题
可讨论的空间小些,可参与的人也少些。因为Lua的原因,
我也曾留意过云凤的博客。
【在 d*******r 的大作中提到】
: 我看了下你说的论坛,看来scheme还是很受推崇啊
: http://lambda-the-ultimate.org/node/492
: 太谢谢啦
: 不过这个论坛确实挺偏理论的,有没有偏工程一点的论坛呢? :)
: 还有,从学习Lua的源码入手的人确实挺多的,可能就是因为Lua的源码少吧。
: 网易那个有名的云风,也系统研究过Lua:
: http://www.codingnow.com/temp/readinglua.pdf
可讨论的空间小些,可参与的人也少些。因为Lua的原因,
我也曾留意过云凤的博客。
【在 d*******r 的大作中提到】
: 我看了下你说的论坛,看来scheme还是很受推崇啊
: http://lambda-the-ultimate.org/node/492
: 太谢谢啦
: 不过这个论坛确实挺偏理论的,有没有偏工程一点的论坛呢? :)
: 还有,从学习Lua的源码入手的人确实挺多的,可能就是因为Lua的源码少吧。
: 网易那个有名的云风,也系统研究过Lua:
: http://www.codingnow.com/temp/readinglua.pdf
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
: 左右写的一片关于基于引用计数的同步垃圾回收
: 的文章。性能嘛,没仔细测过,不好说,但在使
cycle reference? just like python?
【在 N*******t 的大作中提到】
: 目前Dao的类型推导是以最简单的方式做的,
: 都是基于单个指令做的推导。考虑到Dao的
: 指令都比较高级,我发觉这种基于单指令的
: 推导其实已经足够了。
: 这个类型系统已经支持 parametric polymorphism
: 了。可能不是很全面,但应该满足大部分实际
: 需求了。
: GC是自己写,受启发于IBM的David Bacon 2003
: 左右写的一片关于基于引用计数的同步垃圾回收
: 的文章。性能嘛,没仔细测过,不好说,但在使
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?
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?
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 来解除这
种互相引用的关系。甚至在设计上避开这种关系。
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 来解除这
种互相引用的关系。甚至在设计上避开这种关系。
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对这种是怎么处理的?
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对这种是怎么处理的?
s*y
166 楼
不错,DAO引人注意的也就是Optional typing和对并行编程的支持。不过go和lisp也可
以,lisp的宏更是Turing complete.
在支持Optional typing的语言中,目前我倾向选择Lisp。
目前我理想的语言是在使用Lisp的时候,可较容易的让用户独立管理内存。
【在 N*******t 的大作中提到】
: Optional typing和对并行编程的支持显然是长处(至少相对于主流脚本语言)。没有
: 具体针对哪一门语言,但大体上是Python和Ruby这样的语言,并没想替代它们,但可以
: 提供一个比他们更轻量级的选择。从某方面讲,就是语言特性的丰富程度向Python和
: Ruby等看齐,但运行时保持轻量级,向Lua这样的语言看齐。
以,lisp的宏更是Turing complete.
在支持Optional typing的语言中,目前我倾向选择Lisp。
目前我理想的语言是在使用Lisp的时候,可较容易的让用户独立管理内存。
【在 N*******t 的大作中提到】
: Optional typing和对并行编程的支持显然是长处(至少相对于主流脚本语言)。没有
: 具体针对哪一门语言,但大体上是Python和Ruby这样的语言,并没想替代它们,但可以
: 提供一个比他们更轻量级的选择。从某方面讲,就是语言特性的丰富程度向Python和
: Ruby等看齐,但运行时保持轻量级,向Lua这样的语言看齐。
N*t
169 楼
在DaoJIT的话,对于纯数值计算,应该可以达到。
你可以看看这个附件里的测试:http://www.mitbbs.com/article/Programming/31255435_0.html
有一个速度跟C持平,另一个差不多达到80%。
不过这两主要做的都是算术运算,可能没什么代表性。
但如果对DaoJIT做更多改进的话,这种加速应该可以
涵盖更多类型的计算。
【在 s****y 的大作中提到】
: 这个是远远不够的,至少要达到C的80%
你可以看看这个附件里的测试:http://www.mitbbs.com/article/Programming/31255435_0.html
有一个速度跟C持平,另一个差不多达到80%。
不过这两主要做的都是算术运算,可能没什么代表性。
但如果对DaoJIT做更多改进的话,这种加速应该可以
涵盖更多类型的计算。
【在 s****y 的大作中提到】
: 这个是远远不够的,至少要达到C的80%
d*r
171 楼
你是指类似 "Kernel Lisp"这种idea么?
http://shenlanguage.org/motivation.html
真正做东西的话,你推荐用哪种Lisp?Racket or Clojure?
【在 s****y 的大作中提到】
: 我个人觉得feature多不多没关系,主要的是强项要特别强。象面向对象的东西最好不
: 要放在内核,最好象lisp一样用外围的库去支持。
: 我个人是特讨厌面向对象的,假如能提供给用户选择一个没受污染的环境,我相信很多
: 象我一样有洁癖的会很感兴趣的。
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?
真正做东西的话,我推荐用common lisp,我一般用sbcl,可编译成native binary,同样
的代码也可用ECL和C混编,十分灵活。性能也可几乎达到C。
【在 d*******r 的大作中提到】
:
: 你是指类似 "Kernel Lisp"这种idea么?
: http://shenlanguage.org/motivation.html
: 真正做东西的话,你推荐用哪种Lisp?Racket or Clojure?
t*n
175 楼
dao能和c/python混合编译吗?
【在 N*******t 的大作中提到】
: 在DaoJIT的话,对于纯数值计算,应该可以达到。
: 你可以看看这个附件里的测试:http://www.mitbbs.com/article/Programming/31255435_0.html
: 有一个速度跟C持平,另一个差不多达到80%。
: 不过这两主要做的都是算术运算,可能没什么代表性。
: 但如果对DaoJIT做更多改进的话,这种加速应该可以
: 涵盖更多类型的计算。
【在 N*******t 的大作中提到】
: 在DaoJIT的话,对于纯数值计算,应该可以达到。
: 你可以看看这个附件里的测试:http://www.mitbbs.com/article/Programming/31255435_0.html
: 有一个速度跟C持平,另一个差不多达到80%。
: 不过这两主要做的都是算术运算,可能没什么代表性。
: 但如果对DaoJIT做更多改进的话,这种加速应该可以
: 涵盖更多类型的计算。
相关阅读
a question of perl想买本Perl的书,哪位兄弟给推荐一下啊[合集] which design pattern is used if a static variable insidWhat's the most efficient way to transform a 2d array into有没有测试程序复杂程度的软件?Visual Studio Express是免费的么?a C/C++ fopen mode questionhow to proof (转载)matlab取行数点一个link有可能打开两个页面嘛?那位老大能帮忙下载一篇IEEE Xpore 的文章?叩谢。 (转载)这里有人用XCode编程么?boost::variant 的问题C++ 无效语句?VC 2005是不是属于.NET?关于tcp包头的一个小问题 [图] (转载)ssh question on linuxSTL map变量的实际memory usage估算如何动态分配一个2维数组?问几个英文读法