道cpu、道指令、道编程基本原理

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




【陈首席注:这篇文章比较狠。反正首席没有看明白。采纳大宋道家思想之精华,该文作者提出了道CPU的设计,观点很新颖。希望有兴趣的读者点评。】

绪论

信息处理最基本的在于由已知信息事件产生新的信息事件,整个过程构成了信息事件树,汇集成事件信息森林,最后形成信息森林群落,有用的信息在于关联程度或在于信息树上的复杂度,即信息的可用度在于新信息的自动产生性,按照科学规律的定义,就是要从这种生生不息的信息树中发现规律,当可利用的信息树的分叉程度越来越高时,所能发现的规律就会越有用。处理信息树的自动产生、存储、分发,就是我们现在倡导的信息树理论的最终目的,为达到这个目的,必须设计专用信息CPU。这个信息CPU集网络、信息处理、存储等综合技术,即信息CPU就是网络、就是存储器、就是处理器。

起源
中国的专家教授等一班人整天说要有中国自己的cpu,但是直到现在真正意义上的中国的cpu还没有出现。现在整个计算机产业都是由国外做技术主导,所谓的龙芯、中国芯等都是在国外cpu的基础上设计出来的,这种cpu设计再厉害、再先进也比不上人家国外原创的厉害、先进,我国要在国外强大的技术壁垒面前打开通道谈何容易。问题的关键在于我们没有一种真正创新的、能够主导计算机行业发展的技术。本文所倡导信息CPU技术就是为了解决这个问题的,希望以信息CPU技术为主发展我国自有的计算机技术。
cpu是现代信息社会最伟大的发明之一,它是科学家为实现人工智能化发明的副产物。但是近半个世纪过去了,计算机的架构还是更原来刚刚诞生时一样,只不过它的速度变快了、容量变大了,并且基本普及到了千家万户,每个人都享受到了计算机带来的交流畅快的感受,再也离不开计算机了。这与计算机当初的发明背道而驰了,为实现智能化而发明的计算机沦为普通物品,没有了当初诞生时的神秘感,用计算机与农民用锄头基本没有两样。当某些时代代表人物一边高呼“信息时代”“数字时代”“云时代”时,他们的宠儿(计算机)已经不是当初的计算机了,成为人们任意摆弄、抛弃的工具。这其实又跟计算机的本质关联在一起,计算机只是在人类控制下才能运作的工具,只有人类喂它信息粮食,它才能产生新的信息,比巫师还不如。
计算机虽然已经沉沦,但是设计cpu、生产cpu却不是一件简单的事,跟锄头的设计、生产有着天差地别,这牵涉到很多的计算机专业知识,没有受过专业训练的人是很难设计出来的,但受过专业训练反而被普通cpu理论所困住,一想到cpu设计,就是指令系统、存储指令、存储数据、ALU、流水线分级等想法,跳出这些东西的反而不知如何下手。其实,做东西应该看本质,普通cpu的本质是什么:处理、存储数据,所有的计算机技术都围绕着这个本质展开设计,如存储采用地址寻址的方式,导致必须采用指令控制整个寻址过程,有了指令后又必须ALU来处理寻址后的数据,然后再进行其他技术枝叶的修正,提高运行效率;又如计算机语言的设计,代码中充满了各种数据符号,各种控制指令的符号,最终目的也是为了处理、存储数据。反观人脑的神经元设计,没有存储的机制、没有处理的机制,只有大量的神经突触相连,并实现了人类以及各种动物生存、求生、繁殖的各种本领,这种神经元的本质与cpu的本质有着非常大的差别。
信息cpu的设计应该参考人脑神经元的设计,我们现在不需要非常高速的cpu,而是要具有智能化的cpu,来构成人类未来信息社会的神经元。

设计

 
信息cpu的本质不在功能,而在于大量的连线,仅有的功能可能就是比较功能:它可以比较各个输入端的值是否满足给定的逻辑比较等式,满足就输出一定的内容,不满足就什么也不输出,其实就是把单个神经元的功能扩展到多个神经元上。信息cpu没有指令系统,因为它只有一个功能,即只有一条指令,为了满足现代编程的需要,可以扩展到连个功能:1逻辑比较、2赋值(信息连线)。信息cpu的代码中每条指令都由信息cpu单元执行,所有指令即cpu单元并行运行的,它没有现代编程中各种弊端:关键字、数据类型、控制语句、变量、数据关联。信息cpu编程非常简单,因为只有一条指令(可以简写为->),差别在于信息输入不一样,调用函数就是一个赋值过程(可以简写=),不用考虑指令的顺序,各条指令是并行运行的。
信息cpu、信息cpu指令、信息cpu编程可以几乎没有任何东西:一个功能、一条指令。借用道家思想“道生一、一生二、三生万物”,宇宙间万物生于无,最简单的往往就是最本质的。信息cpu如此设计正是为了体现信息处理的本质“生”,这个“生”就是指令处理过程,由原因产生结果,再由结果产生更多结果,体现信息生生不息的产生方式。姑且把信息cpu、信息cpu指令、信息cpu编程称为道cpu、道指令、道编程。
数年前,看到一种中文编程语言即易语言,开始以为这是一种很有哲学的、深奥的、智能的计算机语言,没想到是一种C语言或c++的汉化了的语言,同样的还有一种汉语编程语言,说得冠冕堂皇,实在令人失望。这里把信息cpu、信息cpu指令、信息cpu编程称为道cpu、道指令、道编程只不过引蛇出动,让志同道合者能有更多的思考与创意。

原型设计

“道生一,一生二,二生三,三生万物”讲述了信息生成的基本形式,即“道”作为万物信息生成的源程序,“道生一”即信息万物程序开始运行,产生初始 信息,“一生二”即由初始信息产生中间信息,“二生三”既由中间信息产生中间信息之间的关系,“三生万物”即由中间信息及其中间信息之间的关系产生万物最 终信息,整个过程表现为信息树的发展形式。信息的生成以此环环相扣的形式发展着,推动它发展的动力是什么?《道德经》也给我们指出了答案:“万物负阴而抱 阳,冲气以为和”,万物的发展即信息的生成是在“阴、阳”两种不同属性的信息关系组混合作用下,重新生成一种新的信息,。

中国古人在几千年前就提出了用“阴、阳”两种不同的属性来概括万物的哲学,这相当于为我们提出了宇宙计算机基本模型,也是本文倡导的信息树理论的计 算模型。现代中国人在每每看到外国先进的科学技术时,大都会翻箱倒柜,找出我们古人早就已经发明的证据,最典型的莫过于计算机中的二进制,死活把《周易》 中卦的符合套在二进制上,并延伸到计算机上,以此为荣。其实在真正理解计算机的人看来,采用几进制是根本与计算机无关的,图灵最早提出计算机模型时就没有 提到二进制,计算机本质就是一种自动机,相信如果没有发明二进制,现代计算机也就是另一番景象了。“阴、阳”对于中国人来说是非常熟悉了,生活中到处有它 的影子,如中医“热、寒”、风水“阴、阳”,五行相克相生“克,生”等比比皆是。为什么放着使用了几千年的古人信息模型不用,而偏偏花费巨资用外国“二进 制”计算机呢。

在这里我要把古人的“阴、阳”模型重新利用起来,提出信息树的cpu模型。前面已经定义了信息cpu的基本功能:它可以比较各个信息输入端(必须具 有处理大量信息关联的功能)的值是否满足给定的逻辑比较等式,满足就输出一定的内容,不满足就什么也不输出;信息cpu只有一条指令来处理比较功能,所有 指令由cpu单元并行处理。这个功能关键在逻辑比较功能,这个逻辑比较功能用“阴、阳”来定义:把有关影响生成信息的各种信息划分成不同的组,每组赋予“ 阴、阳”属性,也可用神经元里的“激活、抑制、终止”来表示,在各组里,“阴”、“抑制”的属性优先决定所生成信息是否生成。

信息指令设计

按照上述模型,信息指令定义如下:


[原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>->生成信息。

“[]”表示“阳”性或“激活”性质。

“<>”表示“阴”性或“抑制”、“终止”性质。

“->”代表运算最后结果:生成信息。

这个如此简单的定义能够支持所有的计算机基本运算吗?其实这个定义是布尔逻辑的另一种表示,布尔逻辑大部分实现为“二进制”用来构造cpu,这里我们直接去掉“二进制”直接构造cpu,这样带来很大的好处:

1、没有“进制”之争。因为去掉“进制”,就无所谓“二进制”、“三进制”孰优孰劣的问题。

2、没有语言关键字之争。因为仅有一条指令,英文表示与汉语表示是一样的。

3、没有“多处理”“单处理”的优劣。信息cpu所有指令是并行的,一个cpu处理同样的程序,两个cpu处理同样的程序。

4、没有“cpu”升级的烦恼。所有的信息cpu只实现一条指令,再先进、再高级的信息cpu也只有一条指令可用。

5、不用为制造“cpu” 烦恼。因为只有一条指令,甚至可以在纸面上模拟出执行指令的过程。

信息技术的发展日新月异,新东西层出不穷,造化留给我们两个选择:继续使用国外cpu带来的复杂信息世界或创造我们自主的信息cpu来构造我们的信息世界,仅以鲁迅的话:“造化又常常为庸人设计,以时间的流驶,来洗涤旧迹”来与志同道合者共勉。

语言设计

信息cpu的指令确定为如下的形式后:
[原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>->生成信息。
(是否可以增加一个选择信息组形式以便减少编程时所用的指令的数量)
接下来的工作就是设计可运行的cpu。cpu既然是为了执行设计的指令的,我们必须规范信息和指令运行时行为,使得cpu设计有章可循。
暂定如下规范:
1、既取消指令指针,全部指令并行运行(包括函数、过程中的指令)。
2、取消循环结构,全部指令一直循环运行。
3、取消地址,数据以符号代替(可以增加数组结构的符号表示)。
4、取消数据类型计算,数据类型计算蕴含于程序函数中。
5、信息可选永久保存在存储介质上。
6、信息可选赋值形式。
采取上述信息和指令运行时行为规范后,初定信息编程语言形式如下:

/*程序定义*/
procename{
/*函数定义*/
fuctname(param1,param1)(return1,return1)
{
[5361,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->dgdf
/*>twter表示任意数值,[] 内的表示激活逻辑条件,[][]表示逻辑或的形式,<>内的表示终止逻辑条件,<><>表示逻辑或的形式*/
[twter,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->$dgdf
/*->$dgdf表示进程时间内永久保存(但可被更改)*/
[twter,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->dgdf=356
/*->dgdf=356表示产生的标记有数值*/

[twter=898,fgdsgf=878,gfds][dfg,dfg]<sfgf=767,dfg,dfg><dfgdf,yu>->dgdf
/*twter=898,fgdsgf=878表示有值*/
[twter,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->(rrr=wwer,wsre=werwe)
/*条件赋值,->(rrr=wwer,wsre=werwe)表示条件赋值形式*/
[twter,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->(return1,return1)
/*函数条件返回,->(return1,return1)表示函数条件返回形式*/
[twter,fgdsgf,gfds][dfg,dfg]<sfgf,dfg,dfg><dfgdf,yu>->procename.fuctname(wer,werwe)(return1,return1)
/*函数条件调用,return(param1=wer,param1=werwe)表示函数条件调用形式  */
}
}

/*以上所有符号都是符号标记,可谓为中文英文*/
说明:

1、在上述的信息编程语言中,程序是类,函数也是类的成员。这样当程序完成后,就可以被其它或自己调用了,相当于windows中的“dll”模块或“lib”库。

2、每个语句前面都带有如下形式:
[原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>
的前置逻辑比较,其含义就是每条语句都先判断、选择、比较,然后再决定是否生成”->”后的信息,除了”->”简单生成信息语句外,还有调用、返回、赋值等语句,这些语句也是采用前置逻辑比较的形式,目的是为了满足全部指令运行的指令规范。

指令的设计与cpu结构设计关联性。

1、指令信息保存形式。当指令信息生成后第二次再运行使用后是否保存,极大影响了cpu结构设计也影响了指令编程,考虑再三后,决定采取可选的保存的形式既带“$”符号就一直保留,其他信息一般在第二次运行使用后就消除了,相当于这些指令只是中间暂时信息。

2、函数的调用方式。程序的函数指令在内存中只有一个,但是每个程序调用时就会产生多个调用,像类的定义,类的定义只有一个,而类的实例化可以有多个,为了满足同时并行运行的函数实例,必须在cpu上设置专用的调用栈内存;

3、函数返回方式。函数返回时必须处理的一些细节,因为函数指令编译后是固化的,它的返回信息符号必须与函数实例化后的句柄挂钩起来,并与原调用函数句柄有关,不像串行指令,可以在栈顶存取函数的返回有关的值。

4、 在信息cpu里设计,最大难题不在前置逻辑比较实现,而在于信息生成后如何处理,像重复信息符号处理、信息生存周期、信息的作用范围、信息的存取、信息的符号与值、cpu结构的优化等,所有这些技术处理与各种指令形式的含义有很大相关性。

5、函数调用、返回、信息赋值是信息生成一种特殊形式,其母的是为了信息程序的复用性,本质上没有破坏信息cpu指令只有一条的宗旨。

可以说一套完整的指令集设计时就已经考虑到了以后的cpu设计,指令集里增加的功能比如增加寄存器、寻址方法、结果值处理等、各种函数调用返回方式 极大影响了cpu的设计,相反cpu的计算功能反而是cpu设计最简单的东西。一套指令集就是一套虚拟计算机,当实现了运行指令集的机器后,也就完成了虚 拟计算机实例化。如计算机语言,语言也是一套虚拟计算机,编译程序把计算机语言编译成可执行文件,编译程序就是计算机语言的虚拟计算机。

多年来,国人常常听到cpu指令集只是一种东西不同的写法,购买指令集只不过是为了一些权宜之计采取的便宜措施,无关大碍,关键是要开拓市场云云。 错了!君不见,当年各大国产汽车商也号称技术引进,更快开拓占领市场云云,最后各大国产汽车商也成了国外汽车技术代理商。二三十年年前国人以求学之心,满 以为完成学业就可以创业了,没想到却从学生变成了学徒,最后成了打工仔。这种教训实在太多了,cpu指令集代表国外占领国内cpu技术市场的隐形杀手,冠 于冠冕堂皇的技术授权,我们就如得了宝贝似的收下来,高兴地设计生产了。君不见,二三十年来,国人举国学英文,直弄的国语也差点忘了,只能写一点俄意奉承 之类的话,到头来,国外技术没学家,又变成了假洋人了。

以《霍元甲》之歌“昏睡百年,国人渐已醒,睁开眼吧,小心看吧,哪个愿臣虏自认”与各位有志之士共勉。

道指令与神经系统

在前面的论述道指令时就指出:

1、“信息cpu的设计参考人脑神经元的设计”;

2、“信息cpu的本质不在功能,而在于大量的连线,仅有的功能可能就是比较功能:它可以比较各个输入端的值是否满足给定的逻辑比较等式,满足就输出一定的内容,不满足就什么也不输出,其实就是把单个神经元的功能扩展到多个神经元上。”

3、考虑到在神经网络、基因运算方便使用此指令和便于信息cpu设计,取消布尔逻辑等式中的“非”混合运算;

重新考虑道指令:

[原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>->生成信息。

现在结合神经学原理论述道指令:一条道指令就是一个广义的神经细胞,道指令中所有的“原信息”代表神经细胞的一个突触,[ , , ]代表由多个神经细胞发出的突触组成一个“激活”触发机制,< , , >代表由多个神经细胞发出的突触组成一个“终止”触发机制,再由许多个这两种类型的触发机制组合成一个总触发机制,由这个总触发机制发出这个神经细 胞的动作“生成信息”,许许多多的的道指令就是许许多多的神经细胞。道指令就是神经细胞,道编程就是人工大脑编程。

现在结合基因理论原理论述道指令:一条道指令就是一个广义的蛋白质生成规则,道指令中所有的“原信息”代表一个基因(蛋白质),[ , , ]代表由多个基因(蛋白质)组成一个“激活”生成蛋白质规则,< , , >代表由多个基因(蛋白质)组成一个“终止”生成基因(蛋白质)规则,再由许多个这两种类型的生成机制组合成一个总生成机制,由这个总生成机制决定 生成结果蛋白质“生成信息”,许许多多的的道指令就是一条DNA。道指令就是基因,道编程就是人工DNA。

前面说过一条道指令就是一个广义的神经细胞,这个广义神经细胞跟实际的神经细胞差别在哪里呢?目前根据报道出来的实际的神经细胞实验数据,神经细胞 突触是没有分类的,神经细胞按照每个突触的生物电水平汇总最后决定神经介质的释放。道指令为何不完全模仿真实的神经细胞动作机制?如果采用真实的神经细胞 动作机制,那么,道指令就是神经网络就不能称之为道指令了。人类认识自然的过程是一个逐步的循序暂进的过程,最后利用科学抽象原理进一步升华,把复杂化为 简单理论。道指令的设计正是一种科学抽象,把复杂的神经工作机制化为简单“阴阳共存”理论,使之适应宇宙间万物转化的规律。

如果一个理论代表的是真理,那么用它可以预测一些未知的现象。在用基因理论原理论述道指令时提出:一条道指令就是一个广义的蛋白质生成规则,这是目 前在实验室还不能验证出来的,用道指令理直气壮提出这个观点,是因为有它的真理性在里面。如有人不相信,请在网上查一查,目前的DNA基因工作机制是否与 本文论述一样。DNA中基因决定蛋白质表达,蛋白质反过来基因表达的开关,蛋白质到底如何影响基因表达的开关现在还没有实验数据,是一个蛋白质影响一个基 因还是像我们道指令指出的多个不同属性组的蛋白质影响基因表达的开关有待于科学实验的论证,在没有证实前姑且把道指令作为基因的工作机制也不会犯错误。反 过来,基因在DNA中只占一小部分,剩下的碱基对用来干什么?科学家还不是很清楚,但按照道编程原理,剩下的碱基对用来对基因表达开关进行编程的,这有待 进一步科学实验。

我为何还在啰嗦“道”,不是异想天开。国内多年来一直到处呼吁的“汉编”“中文编程”“中文cpu”等等之类的我们很多人明知这又是一个“皇帝新装 ”的故事,却偏偏没有指出来。而本文的“道”与这些东西相差十万八千里,“道”是思维指导思想,是符合科学逻辑的,从“道”产生出来的道cpu、道指令、 道编程也是符合科学逻辑的。

道指令与内存cpu
近年来,两大计算机cpu巨头lntel和amd相继在cpu内部嵌入内存控制器,对外都说明这是为了提高内存存取速度,提高cpu的效率。事实是这样的 吗?现在对外资料还不能判断cpu内部嵌入内存控制器的真是意图,但以本人多年来在cpu设计上的经验告诉我,这是cpu设计正在发生重大的变革。

多年前因为感于国内cpu设计落后,对中国未来的计算机信息产业忧心匆匆,竟想凭己之力设计我们自己的cpu。有了这个想法后,从此把很多时间放在 我的cpu的设计上,并且设计了两三套方案,第一:在内存中加入简单的比较功能,使得整个内存就是cpu;第二:设计足够简单的ALU单元,比如只有4位 的ALU单元及辅助控制设备,形成平面阵列,组成大规模运算;第三,利用简单的内存纵横阵列取出一定数列,这些数列送到足够简单的ALU单元去进行运算。 上述几个方案都是遵循小而精的思想并且个人可以掏钱买材料设计出来的原则,因为,当时的任何国内一家芯片设计公司都在国外大公司的技术压力下正向国外技术 靠拢,我只能自己DIY出cpu了。

为何在这里又重提这些陈年旧事?又有许多旧话不得不重提,每当国外提出了一些概念后,我们有些搞技术的就会跳出来,跟在国外的屁股后,嚷着要赶上外 国人之类的话云云。想我中华几千年的文明历史,难道就这么不堪,只会看人家的脸色行事吗?今天,在这里我把本人十几年前设计cpu的经历告诉大家,就想表 明cpu内嵌入内存控制器本质不在提高内存的存取速度,而在于cpu设计行业即将面临重大变革,而这个重大变革不是我们跟着外国人屁股,我们早就已经想到 了。

可能有的人对上述断言又要表示不屑了:又是一个事后诸葛亮,厉害你早拿出来啊。现在我要证明这一切并预测有关的事实。

内存为什么要有控制器,这个问题比较简单,不会的可以在重新查找有关书籍。内存控制器嵌入cpu内,内存存取速度可以提高多少倍,可以估计只要增加 cpu二级、三级缓存,速度没有多大的差别。intel在早期也没有看好这个思路,但后来就改变了看法,也增加了嵌入式的内存控制器,其中最大的原因在 于,内存控制器可以作为一颗相当有效的实现大批量比较功能的协cpu。我们可以从内存控制器嵌入cpu的一些指令特别像比较字符串的指令明显看出来,在外 行人看来是嵌入内存控制器的功劳,实质是cpu设计已经出现了变革。目前,国内还在紧紧地跟在人家后面,可是他不会把这个已经改变了的东西告诉你呀,只有 当你发现了问题,想改变时,他才会把这些内情披露出来。到那时,我们才会感叹,嵌入内存控制器这么好的东西,我们这么想不到啊,国外的科技发展太快了,我 们要加紧学写了。

但是,我告诉你,这个嵌入内存控制器的思路我们早就有了,十几年前,本人还是一个奋发有为的时候,已经开始了比这个嵌入内存控制器更为先进的技术开 发了。这个技术就是:内存即cpu,即在内存中加入简单的比较功能,使得整个内存就是cpu。有的技术就想变魔术,说出来就没什么意思,这个内存即cpu 也是这样。大家在学习SDRAM,DDR的时候,为了提高内存存取效率,一般在DRAM上集成了片上的SRAM,这个SRAM一般比较小几M到几百K之 间,但速度比SRAM快多了。但这也没什么,因为这是国外想出来的,关键我们要在这里加上一些东西即可以大批量比较、转移SRAM值的部件,这可以相当快 速处理字符串、图像的像素。

可能又有人对这不屑一顾,认为这是旁门左道的东西,国外先进技术一般不这样做等等之类的话,但是,请别忘了,当国外这样做的时候,我们可不要后悔。

Cpu设计何去何从,一方面,代表国外最高技术的cpu时时盘踞在我们的头上,由于技术落后及不自信,每当我们技术上有关键突破时,新技术又从我们 手中溜走,另一方面,国外时刻举着兼容市场的大旗,把一切非主流的新思想排至于外,使得人类攀登科学高峰时时落空。我们的Cpu设计再不能这样下去了,要 拿出中国有几千年文明的风度,用我们的智慧创建我们的理想cpu及信息社会。

道指令逻辑设计

 
有的人不大相信本人有关道cpu的一些构想,以为是从社会科学或党校之类出来骗子。这些人常常高举民族大旗,抵御国外技术入侵,打着为民着想的口号,再经 国内某些专家学者渲染,俨然成了国内某方技术的权威,从此套用国家科研费用,干着挂羊头卖狗肉的勾当。本人绝不是那样的人,遥想当年,我还是一个热血青 年,一心只为实现心中我们自主的cpu。自己掏钱购买大量原版外文经典图书,如《COMPUTER SYSTEM ARCHITECTURE》、《COMPUTER ORGANIZATION AND ARCHITECTURE DESIGN FOR PERFORMANCE》、《ELEMENTS OF THE THERORY OF COMPUTATION》等,为计算机事业付出了大量心血,自今也没有得到半点汇报。顺便说一下,我感觉学了上述三本书,别的cpu设计书籍也不用看了, 国内近年来虽然计算机产业蓬勃发展,但原创的东西还是很少,中文书籍更不用说了。书看多了,对计算机的本质也逐渐认识了,感觉cpu还是受于硬件限制太 多,并且设计越来越复杂,所用工具也越来越复杂,而他的功能却没有大的变化,特别在人工智能方面,简直没有一点进步。因此,近年来在人工智能方面也投入大 量时间,企图将cpu设计、人工智能开发这两个看似毫无关联的东西连在一起,于是,最终形成了信息cpu、信息指令、信息编程即道cpu、道指令、道编程 有关的构想。
我经常说所有的创新都是要有基础的,不可能看了《道德经》,把《道德经》翻烂就能设计出一个cpu,不可能看了《易经》,把《易经》翻烂就能设计出一个cpu,不可能不懂计算机软硬件、不可能不懂数学逻辑、不可能不懂软件设计就设计出一个cpu。
目前,这个构想已经非常接近本人心中理想cpu,只是还有一些缺陷,特别在语言的设计上过于简朴(主要因为不引进任何语言关键字,杜绝有关中文、英文编程 的弊端)。为何只有一条指令,为何cpu只有比较功能?我说过,这个cpu要融合人工智能,而人工智能要求必须有自我学习的功能,如果设计了大量的指令那 么如何让自我学习的程序选择指令呢,再加上参考神经元、基因的机制,最终选择仅有一条指令的构想。其实可以把这个指令看成由if…then…语句,那么大 家想想由if…then…语句可以处理那些事情,特别在递归函数、专家系统等都可以仅用if…then…语句来处理,推广开来,数学上的计算、信息系统的 编程等都可以处理了。
我们的一些专家,为国家搞科技的专家,是不屑于道指令的,仅仅一条道指令如何申请科技经费,说出来就会闹笑话,必以几百条指令为目标,必以国外的cpu为 蓝本,这样才显出科学的复杂,专家的高深,才可以申请到科学经费,否则别人说,仅有一条指令,不用加班加点,小学生就可以做了,到时就不能算专家费、加班 费了,要扬名天下更难了。
现在声明一下:道指令系统免费提供,不要什么授权费,仅标上道指令兼容就可以了。(如有雷同者,特指汉芯)

道指令运行机制

 大家目前对道cpu的主要疑问是如何运行,如何组织成千上万个道cpu一起并行运行,现在的cpu能有上个并行就不错了,何况道cpu的并行数与道程序的大小有关,故意编上几万行道指令,看它如何运作。在这里,我将为大家揭开这个谜底。
道cpu的运行跟我们中国人的思维很想,我们经常说中国人很聪明,具有“整体的思维”,特别像中医,把国人这种“整体的思维”的特性发挥的淋漓尽致,每次 感冒发烧,先判断是由“冷”或“热”引起的,然后索罗一些中和“冷热”的药材猛吃,还说中药没有副作用,还要吃上一些非常古怪的具有特效药材。而外国人的 思维都比较死板,感冒了必须在医院经过一系列的检查过程,逐步排除各种感冒诱因,最后决定吃何种西药。从上可以看出,国人的聪明就是具有“并行”特性,而 外国人的不聪明就具有“单运行”。所以呢,外国人只能发明目前的cpu而发明不了道cpu了。
现在来看看道cpu的运作过程,首先,要有一个大熔炉以及炼制草药的一些潜规则(秘方),然后把药草扔到熔炉里,观测熔炉药剂的变化在加上药草,经过这种 炼制,新一代的中药就诞生了。再举一个例子,如何塑造一个国人,首先准备一个社会大熔炉以及一些社会潜规则,把几个亿的国人扔进去,具有“整体思维”的国 人就从此诞生了。
以上是道cpu、道指令、道编程的一些实用的例子,现在我们要解密最高级的应用,具设计可用于精确计算的道cpu,首先准备两块内存、一块放各种生成信 息,另一块放道程序,程序要开始运行,必须在生成信息内存放进起始信息,如“主.开始”“宇宙.大爆炸”等信息,随编程而定。然后道cpu就会不停的从信 息生成内存中的信息与道程序的内存比较,每条道指令中要求的信息如有在信息生成内存,那么按照道指令把z指令后的生成的信息在放入信息生成内存中。
其实万物都采用这种运行模式,从信息树理论,到DNA、基因也都广泛使用这种模式,前面没有特别指明出来,是觉得以我们国人的聪明应该都会想到,没想到国 人受得外国人的教育多了,都变成“单运行”的思维,所以提倡道cpu正是为国人着想,否则“一年不如一年,人心不古”。

道指令与图灵机

很多人不大认同我的有关道cpu、道指令、道编程的有关构想,主要因为看不懂、没有数学证明、胡扯等。现在引用一些数学理论来解释一下。道cpu、道指 令、道编程是一种自动机,它与图灵机一样有一套状态转换指令表(道指令),一个读写头(道cpu),一张纸带(各种待处理的信息集)。图灵机工作时在每个 时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找状态转换指令表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后 进行移动。道自动机工作时,道cpu先从各种待处理的信息读出所有信息,然后对所有的道指令进行比较,满足指令的要求时,输出结果信息,并把所有的结果信 息送到待处理的信息集中,等待下一次动作。如何让道自动机模拟图灵机呢?把图灵机纸带各种格子标上不同标记,格子信息就是标记的值,内部状态内部状态也用 一个标记代替,状态就是标记的值,移动方向就是他的值,状态转换指令表用道指令表示。如:格子信息=H,内部状态=“很轻松”时,做动作:格子写上E,内 部状态=“不轻松”,探头:移下一个。换成道指令:[第i个格子信息=H,内部状态=“很轻松”,探头在第i个格子]->( 第i个格子信息=E,内部状态=“不轻松”, 探头在第i+1个格子)(由于格子的编号i确定,i+1也确定,不用计算)所有的状态转换表都写成道指令后,再把所有的格子也如此处理一篇,那么道自动机 与图灵机将会完全一样动作。因此道自动机也是一种图灵机,如果图灵机能做的任何事,道自动机也能做。这两个是等价的计算模型。那么道自动机比图灵机有什么 好处呢?简单一点讲并行能力比较强。后面我将用道自动机来模拟元胞自动机。

内存cpu设计

前面我讲过有关内存cpu的事,因为前面主要是为了国人争口气,没有仔细阐述,因此可能产生一些误会。有一个网友Mphyatcd还在网上查找一番,发现stanford也有一个smart memories的研究项目,似乎跟我的这个想法有点像(http://www-vlsi.stanford.edu/papers/km_isca_00.pdf), 而且他对我的研究工作表示极大的支持,在此本人表示衷心的感谢!我对他收集的资料smart memories一文也认真阅读了一下,发现其实我的内存cpu与smart memories相差还是比较大的,所以也不用担心我们会有一些版权就纠纷了。那么现在我要把内存cpu仔细阐述一下,如有人有相似的研究,也可告知一 下,相信我们大家都可以坐下来互相探讨,希望为计算机的技术发展提供一个小小的推动。大家都知道cpu工作时,其实要有一块组件来支持,即内存,没有这个 内存,cpu也是没用。内存如此重要,但人们对它不大重视,认为是无足轻重的东西。近年来,随着集成电路的发展,内存的价格和地位更是一落千丈,买内存就 像买大白菜。我因为以前对内存的研究下过苦工,就时常发感叹:“内存cpu要是早点加入我的研究结果就好了,地位甚至可以超过cpu了”,感叹归感叹,内 存的地位一直以来还是不如cpu。那么我们到底如何才能提高它的地位呢?就是要在内存上改造一下,就能使它的地位变得相当重要。我早就说过有的东西就像变 魔术,说出来就没意思了,可能还有人就更瞧不起了,这个内存cpu就是这样。但为了让大家对如何实现道cpu、道指令、道编程有所思路,我也就顾不得这些 俗人的东西了。普通内存是一块有地址输入,然后输出(写入)数据结果的芯片,任何教科书都是这样写得,不知大家有没有看过高级的书,跟这个内存功能不一样 的设计方法,可以转告一下,否则又有人要骂人了。按书设计不是我的本行,还是请我们的受过高级教育的人来做,我要做得就是设计内存影子,一个死死跟在内存 数据上得影子,这个影子可以由地址在读数据时读出,地址要多加几位来寻址这些影子。这些影子主要有以下几个数据。1、对应的数据上的每个数据位结果,如 64位,有64位,每位一个数,共64个数。2、对数据分组产生的每组是否全1或0等结果。可以4位分组、8位分组、16位分组等等。3、其他一些对计算 有用的,数据位组合形式。   经过上述分组后每个数据就会产生比它自身还多的影子数据。   有的人就会不理解,你的内存存这么多的可以由数据本身计算出来的数据干什么,估计脑袋不正常了,败家子。其实要是讲究排场我们就可以这么做,要是不讲究排 场,要节约,就让cpu累死累活加班干吧,反正不用白不用。但是因为我比较仁慈,见cpu这么辛苦,还干这些低级活,就让内存去干吧,又可让内存增加本 领,又不至于失业,一举两得,和乐而不为。内存有了影子后,增加了不少本领,但它只能对数据自身进行影子化,这点东西在cpu也看不上眼。因此,我又在内 存上加了又一个影子,即其他数据的影子,这个其他数据的影子现在可以和数据及它本身的影子对话(逻辑运算),这样内存就可以对cpu说:“老大有什么活, 干不完的,老弟可以帮帮你“,不过这话可不能说,否则cpu以为内存要抢了它的饭碗,内存就不能好好过了。内存经过这样的处理其实已经具备cpu的功能, 不过它还不能像cpu那样工作,必须有人为它设计指令、写程序。于是,出于人道的考虑,我因此花费数年时间,为这个可怜的内存设计了指令、程序,即道指 令、道程序。现在这个有点像cpu的打工仔终于有点像样的本领,从此再也不用低人一等,可以堂堂正正与cpu老大平齐平坐,享受高人一等的待遇了。内存 cpu就这么简单,简单的有的计算机知识的人就可以设计出来。

内存cpu非常简单的东西,我不知道intel、amd等是否是这样设计他们的嵌入式内存控制器,但我保证我们的技术专家们是不会这样设计的,因为 他们要设计高级的cpu,才没有时间来为这种抵挡内存cpu做设计,并且抵挡内存cpu设计出来也没有市场,外国人都要买高级的cpu,只有穷人才用这种 抵挡内存cpu。

道指令与多核并行

有人可能有这样的疑问:道与计算机显然不可能结合,即使道cpu设计出来,那么如何设计道程序的语言编译器,并且我的道cpu还没设计出来,所有这 一切还是空谈,所以我的想法应该是民科无疑。对于网上的种种猜测其实有的是事实,有的就不符合事实了。今天我要在这里重新澄清一下。道cpu其实很简单, 上面我已经阐述过如何设计内存cpu,内存cpu已经非常接近可运作的道CPU模型,只是还必须增加一些控制组件,循环整个道指令及信息的控制组件,还有 处理函数调用和返回的控制组件,这样整个内存CPU就可作为道程序运行的硬件。可能有的人有疑问,如为何设计内存数据的影子,让cpu去计算出来,可能更 简单呀?其实内存数据的影子是为了充分利用内存的硬件便宜的特点,一些数据中的数据如果事先准备好再送到cpu去就可能省去cpu的计算时间。cpu中许 多指令就是用来判断数据的一些组合状态设计的,如移位、是否全0或1、取出其中一位或几位,这些由cpu执行也没错,但我觉得如果让他们事先就准备好可能 更有效率,至少达到同步执行的能力,在现在提倡并行的时代就更有效率了,只是要重新设计cpu指令了。重新设计cpu指令有两种方法:一种在加长指令,另 一种重新设计几个内存cpu的操作指令让它与cpu共同运行,有点像协处理器的性质。按照直觉我选第二种方案,并在第二种方案尽量扩展使他像cpu那样方 便数学运算,即像前面说过的其他两种cpu方案。这三种扩展都是按照cpu顺序执行的思路去做,后来觉得现在cpu越来越复杂,大部分的硬件都在为增加有 限性能的并行多内核奋斗,而并行多内核没有软件支持却是一点也没有用的,因此就干脆让内存cpu每条指令并行运行,并行的控制权直接交给软件设计者,软件 设计者从此不用在关心并行指令、多内核如何协调运作,只要设计正确的程序就可以了。这样扩展后的内存cpu指令有点像带if的超长指令,整个指令由于if 的原因可以很长,但执行的功能却简单,甚至可以没有数学运算,要有数学运算必须为超长指令带上一个数学ALU也是可以的只不过会增加点成本。很多人不理解 道指令,但是应该理解带if的超长指令,因为if判断里有时很多参数要判断,我们直接把这些参数设计在一条指令里,即如普通cpu将用很多条指令组合起来 才能实现一条道指令。为何这样做,所有的努力都是为了全并行的指令,我们把并行的条件都写在了指令上了,这样cpu开发人员就不必为如何并行、多核想破脑 袋了。说了这么多,那么这个内存cpu能否满足道指令、道程序运行需要,我现在也不知道,因为我不是硬件设计人员,我也没有条件去实现这个内存cpu,虽 然这个内存cpu利用的硬件随手拿来,主要是目前工作不允许。不过,虽然硬件上不能达到目的,本人利用数据库相对容易设计的特点,设计了在数据库可运行的 内存cpu模拟系统,即道cpu模拟系统,我在数据库上设置一些库表当作内存,比如道指令表、待信息表、信息生成表、赋值表(=、函数调用、函数返回)、 函数调用栈等,再写上个一直循环的存储过程就可模拟整个道cpu的运作,基本上不用写多少代码。这个模拟系统本人早就设计出来了,所以对网上的一些评论, 始终不为所动,一直想把我的设计思路一点一点阐述出来,这样大家对cpu的设计就不会感到很难了。模拟cpu设计出来后,就要设计合适的可编程的指令来运 行程序。因为网上天天吵着中文cpu、中文编程语言、汉编、中文系统等,却没有一个真正有含量的东西出来,所以就把内存cpu指令设计成道指令的形式,杜 绝任何有关计算机语言关键字的弊端。其实大家肯定没有仔细研究领会道指令,而且我在前面的文章里也已经故意透露道指令的数学依据,但没有人有点表示。现在 再说一下,其实它是布尔逻辑的另一种表示,如果有人要是写出一个布尔逻辑等式而道指令不能表示的,我就信服口服了。大家想想如果道指令都能表示所有的布尔 逻辑等式,那么还有基于布尔逻辑的计算机道指令不能设计出来的么!其实我这样说,肯定还有人不明白,因为他把布尔逻辑当成0和1的等式,所以死活也不能理 解道指令,就像国人死活说计算机基于数学“进制”设计出来的。按我的做法,计算机不需要任何数学理论,什么“大小、加减法、乘除、代数”统统不要了,只要 一个如何判断两个符号是不是一样的东西就足够了,这个简单说就是比较功能(图灵机也需要这个最基本的功能)。我们经常说,物以类聚,人以群分,只要东西有 了分类,只要能够判断出他的类性就可以了。在数学上就是在一个集合里,赋予每个集合元素各种属性(关系),这样就能在集合里找到相同属性的子集,任何集合 元素都属于其中一个子集,那么这个集合的元素加上道指令就可以用来编程了(集合有关属性(关系)的具体理论请参考《拓扑学》)。这样做比图灵机还少了机械 机构,完全像数学定理推理过程,一个等式蕴含一个结果,一条道指令也蕴含(生)一个结果。基于布尔逻辑之上的道指令完全可用来数学推理,这个大家可以想想 如何做到。我以后将会结合一些人工智能探讨如何让道指令模拟人类思维。

道指令与云计算

近年来,“云计算”这个概念盛行起来了。在百度上搜索一下,找到它的定义:

1、狭义云计算

狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。提供资源的网络被称为“云”。 “云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。

2、广义云计算

广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以是任意其他 的服务。云计算是并行计算(Parallel Computing)、分布式计算(Distributed Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。云计算是虚拟化(Virtualization)、效用计算(Utility Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。

搜索其它网站的定义,也是各有各的意思,我不知道我们这些IT人士对这些定义会有何感想,反正我是一头雾水,比我写道指令还厉害。我估计这个云计算 当年也是个民科,就像中国中医、易经的研究者们的口气,简直要无所不包了。云计算这个概念盛行再次验证了中国对各种外来概念的追捧,现在国内大公司已经完 全领会贯通云计算这个概念,并迅速把这个概念迅速普及开来。所有的与网络有关的应用都搭上云计算这个快车,准备再次忽悠一下中国云计算客户。

抛开这些概念,如何去看清当清云计算的本质呢!以google为例,google当年凭着搜索技术迅速走红,成为执手可热的公司,并且以后也推出了 一系列各种网络应用(Gmail、Maps、Docs等),准备再次走红。看到搜索技术如此迅猛,中国的公司也不甘寂寞,迅速把搜索技术普及到中国的千家 万户,特别我们搞科研的更离不开了。言归正传,现在Google看到云计算这个更高深的名称更容易让人迷糊,就忙着把它们的那些网络应用(Gmail、 Maps、Docs等)迅速包装起来,美其名曰:云计算。IBM、微软、雅虎等看到这么好的名称要被Google独占了,也赶快提出了与“云”有关的名 称,中国的公司也迅速动作起来。说了这么多,大家不知有没有看出来,这些名称、概念等其实与技术没有大的关联,一项技术你可以用任何名称来包装,用个咱老 百姓不知所云的就是高科技。本人为了不忽悠咱老百姓用“道”来令名信息cpu、信息指令、信息编程就是这个苦衷,否则我可以用云cpu、云指令、云编程来 令名,那样咱老百姓就不知所“云”了,一项世界级的高科技又诞生了,又可以从国家那里骗点科研经费,何乐而不为呢。

虽然云计算带有卖概念的嫌疑,但按照咱的理解,云计算还是有点技术含量的,就是这个“云”字如何从技术上真正地扩展。“云”字面上理解就是飘来忽 去、极其自由,而计算技术要做到飘来忽去、极其自由就不能靠添置大量的服务器来扩展。现有的云计算不能做到“云”究其原因:1、各种云计算要编程就要有各 种的计算机语言;2、各种云计算的系统也是各种操作系统平台组成的;3、各种云计算的cpu也要由各种cpu充当;4、各种云计算所依赖的平台也是由各种 现有的平台构成,如Java、.net等。那么如何做到飘来忽去、极其自由就是要有本人所提倡的信息指令、信息编程(暂时不要用道),原因:1、信息指令 因为只有一条指令,容易学习,就是没有读过书的人也可以用,解决目前中文编程语言不足及计算机教育普及不广的问题;2、信息指令可以把它存储在任何地方 (数据库、文件、XML等),由任何信息cpu(包括模拟的信息cpu)调用执行,就是一次编程到处运行,比JAVA还JAVA;3、信息指令中的信息可 以设计成带网络地址、信息树类别、信息树编号、信息树分支等信息表示方式,这样就能够轻而易举地解决云计算中信息调用的各种弊端,比.net还.net。

信息技术的发展日新月异,新东西层出不穷,造化留给我们两个选择:继续使用国外云计算带来的复杂信息世界或用我们自主的信息指令来构造我们的信息世界,仅以鲁迅的话:“造化又常常为庸人设计,以时间的流驶,来洗涤旧迹”来与志同道合者共勉。

道指令与布尔逻辑

我在前面说过道cpu、道指令、道编程的理论根源,估计大家都忘了,因为这几天我的文章很少再提,担心大家把我当成从道观里出来的骗子,但现在不得不再提 这些今人已遗忘的老祖宗的旧东西。我引用了《道德经》里的一句话,很多人不屑于故,有股“凡是古人的都是糟粕,凡是中国人的都是瞎谈”的第六感,看了一眼 就必生反感。这几天,刚好没事,在网上搜索一顿,果然老祖宗的旧东西被今人当作招牌拿出来招摇撞骗还不少,有从《易经》里“阴阳五行”(不知道《易经》有 没有阴阳五行)悟出各种适合宇宙万能定理的,有从《易经》里“八卦、太极、两仪”悟出全能的计算机的,二进制更不用说了等等如此这般的现象也实在太多了。 我不知道到底是国人只受过古典教育还是现代教育太失败了,竟然把堂堂的现代科技非要用古人的东西来套用。我们的专家教授也是实在不行,你早早利用现代科技 多搞一些比外国人先进的东西出来,让国人有引以为好的东西阿Q一下,省的老拿老祖宗那点东西出来炫耀,让外国人见笑。

今天,因日常不爱看现代国人写的书,又不屑于套用外国人的高深的理论,只好又一次拿老祖宗的旧东西来用一下。春秋战国《道德经》是一本高度概括的哲学书, 讲述了很多有哲理的古人的话,春秋战国大家都知道是一个诸侯混战的年代,就像目前诸企业混战的时代,老子毕生目睹这些不幸生于那时代的人有违自然的神谕, 就用把自然的神谕写在《道德经》里以示后来人。我等不幸生于企业混战的时代,应多读读《道德经》,与老子共勉。言归正传,《道德经》言人与诸侯即言个体与 整体之间的和谐之道,个体与整体之间也即微观与宏观、单核与多核、串行与并行等之间的有序和谐共处。

“道生一,一生二,二生三,三生万物”讲述了宇宙间万物的发展规律,引伸到信息领域就是信息的生成规律,即“道”作为万物信息生成的源程序,“道生一”即 信息万物程序开始运行,产生最原始信息,如宇宙大爆炸的原始点,“一生二”即由原始信息产生基本信息,如宇宙大爆炸后的粒子,“二生三”既由基本信息产生 基本信息之间的(阴阳)关系,如宇宙大爆炸后的粒子的反应关系,“三生万物”即由基本信息及其基本信息之间的关系产生万物各种信息,如宇宙各种粒子之间产 生各种反应产生各种原子,由原子反应产生各种分子等,整个过程表现为信息树的发展形式。信息的生成以此环环相扣的形式发展着,推动它发展的动力是什么? 《道德经》也给我们指出了答案:“万物负阴而抱阳,冲气以为和”,万物的发展即信息的生成是在“阴、阳”两种不同属性的信息关系组混合作用下,重新生成一 种新的信息,即各种物体和他们之间的各种反应关系产生新的物体(为了大家理解稍微修改一下)。

信息生成信息比较好理解,就是信息之间的关系是怎样的,各有各得说法,如国人用“八卦、五行”等理解,外国人用“逻辑、布尔逻辑、数学运算”等,我的理解就是“阴阳”与“布尔逻辑”是一样的,即道指令:[原信息1, 原信息2, 原信息3]< 原信息6, 原信息7, 原信息8>..->生成信息。其实是布尔逻辑的另一种表示。我在前面已经说了很多次了,不知有人理解吗?现在我必须详细解释一下这个理论,否则,我这个民科帽子不知啥时候能够摘掉。

道指令用布尔逻辑表示:

[原信息1, 原信息2, 原信息3]< 原信息6, 原信息7, 原信息8>..->生成信息。

((ABC..)∪(..) ∪)∩!(EFG) ∩!() ∩=Q

以上用ABC等表示原信息1、原信息2、

各种布尔逻辑的等式可用上述的几个等式写出来,所以基于布尔逻辑的现代计算机可用道指令制造出来,可运行道指令的到cpu也可以模拟现代计算机cpu处理数字信息的过程,具体实现过程现在不讨论。

我这样证明不知有人有疑义吗?可能有人说你这样做还不如直接用布尔逻辑构造cpu,又有很多工具可用,又能让受过现代科技教育的人理解,何乐而不为呢!其 实我这样做的原因是因为用布尔逻辑来设计cpu、cpu再处理数字信息这个过程太麻烦,布尔逻辑粒度太小,我把布尔逻辑做成较大粒度的元件(道cpu), 再用这个元件处理信息,省去了设计cpu繁琐的过程。

我不知道cpu的两大巨头将来如何发展它们的cpu,但GPU的发展可能给了他们这样的提示,全功能的cpu越来越难于设计,中等粒度的cpu将是未来 cpu的出路。在这混乱的时代,我奉劝cpu的设计者们、软件开发者们、企业管理家们、企业主们多多读读《道德经》。《道德经》可能不能带给他们生财之 道,但可以给他们带来串行与并行、单核与多核、个人与企业、微观与宏观的有序和谐之道。

临时性道指令

按照上述信息处理理论,信息又可以分为自动产生和不可自动产生的类型。自动产生就是通过一些列的数学、逻辑等运算就可以产生出新的信息,而不可自动产生就是不能通过数学、逻辑等运算产生的信息。当道函数内有很多这种不可自动产生的信息时,道函数实例就会一直等待这些未决的信息,道函数不能通过自身产生这些信息,所以他必须等待外界的输入信息。而外界对一个道函数输入信息主要有两种方式,第一、直接通过道函数的实例ID输入;第二、道函数产生一个多种选择的可能信息系列,由外界随机挑选输入。

有人可能对这两种方式很不理解,这里稍微解释一下:当前的计算机程序,大部分是确定性过程,比如一个函数可以从头运行到结束,不管什么情况,结果都一样。那么,程序如何处理不确定性的过程,关键在于函数必须可以跨出自身对不属于自身的信息进行调用,一般的实现就是利用全局数据,全局数据的变化或改变就可以影响函数的运行结果。除了使用全局函数外可以调用另外一个非确定性函数,获得一个关键数据后,函数再决定运行流程,归根结底,也必须有一个非确定性的过程。还有一种最原始解决方式,即调用一个随机过程,取得随机数据,再来决定运行流程。然而目前随机的解决方式,实际上也是调用了一些全局数据,所以我们上述几个解决方式归纳为一个解决方法,即利用全局数据的变化来决定函数的非确定性运行过程。函数穿过自身作用范围调用全局数据,听起来很诡异,比如把整个宇宙比喻成一个函数,宇宙的量子不可测行为及不可理解暗物质现象就会产生如函数调用全局数据的诡异行为出来。虽然函数调用全局数据可以诡异般地做出非确定的行为来,然而计算机高级语言专家告诉我们,这并不是一种好的行为方式,并且是造成软件项目失败的一种方式。如何较好地解决函数的非确定行为就是道指令及现代计算机语言必须解决的问题。

现代计算机语言解决非确定函数问题的除上述外方法并不多,目前大多利用事件功能,即函数停下来等待一个事件,再决定运行流程,如windows中的事件消息,C#的yield关键字,这些解决方法虽然提高效率但大都不如全局数据来的直观,所以本文的道指令稍微改造全局数据的表现形式,结合事件的方式,提出一种较好的解决方法,即函数不是主动去读全局数据,而是被动地改变函数内部数据。

这里再稍微解释一下,函数内部数据一般别的函数是不能改变的,一般由自身才能改变。再以宇宙来举一个例子,多重宇宙就像多个函数,多重宇宙间互相交流能量,就会表现出很多诡异特性,比如,粒子的有无相生,能量的无中生有等,从一个宇宙中向另外一个宇宙抛入一个光子,在另外一个宇宙就会突然产生一个光子,或为保持能量守恒,这个宇宙就会向原宇宙抛回一个光子,处在宇宙当中的人就会被这些诡异的特性迷惑,不得不发展很多科学理论来解释这些现象。

既然要改变函数的内部数据,就必须获得每个函数实例化ID,本文采取以下道函数表达式:

函数名([Xthis.dfdf,sdfsd,…]<adfd,sdfsd,…>)->Xthis.fdsa=’sfgfsg’。

Xthis:表示未知的函数实例ID。

函数名(…)内部的道指令表示满足该道指令的“函数名”函数实例ID,如果该实例ID存在,就运行->后的等式。

也可以这样理解,道指令运行在两种情况,一种当前已知的函数内,一种临时性加入的已运行的函数实例内。第二种情况非常难以理解,举一个例子,如有十个人,不知个人品行,我们就临时编出一条道指令:人的道德([Xthis.强奸女性])-> Xthis.自杀,并把这条道指令如魔鬼般临时植入这十个人里,这十个人内部就会按照道指令列出的条件产生出一个虚拟结果,指示某人已满足条件,并运行“->”后的指示,这样世界就太平了。

临时性道指令为当前运行的函数加入临时性指令,对函数的内部数据进行修改,使得函数可以变现出非确定的行为。

抉择形与自学习形道指令

道cpu、道指令企图用最简单的、最基本的原理构造出现代先进的、包容一切的计算机技术。这种技术有别于当今流行的计算机技术,它最重要的特性在于利用几千年前古中国《道德经》记载的“有无”、“阴阳”等宇宙最基本的计算模型构造出仅有一条指令的计算体系。《道德经》揭示了宇宙间最强大的最基本、最强大力量就是“无”、“弱”、“寡”,如“上善若水”、“有生于无”等,道cpu、道指令正是从此原理出发,运用一条指令来创造计算世界。在以前的文章中,本人已经对尽有一条指令的道cpu、道指令理论进行了详细的论述,相信所有受过高等教育的人都能够领悟,能够应用此指令进行软件开发编程,编制出所需的软件来。但这不是道cpu、道指令的主要目的,在前面的文章中,本人已稍微透露了这个最高目标境界,既用道cpu、道指令开发出既有人类智能的软件来。

人类智能或叫人工智能很早就有了,支持人工智能推理运算的计算机语言Prolog也很早就被开发出来,但到目前为止真正的具有类似人类智能的人工智能还没有看到,2009年,科学家们已经发明了一种自学习的软件用来帮助化学实验,还有一种神经网络可以达到几岁小孩智能也被发明出来,基因技术方面也将达到制造人工生命的初步阶段,这说明了真正的人工智能有可能在这几年内取得突破。在这智能即将突破的关键时期,许多先知先觉的企业都在密谋能够在将来分得一席之地,搜索技术公司Google及数学软件公司Wolfram多年前已在秘密开发出能够回答人类问题需求的系统来,我国的baidu也在2009年赶忙学习这个重要技术方法,并提出所谓的框技术来,而这个时候大多的企业甚至大企业正在忙于把手中的软件转变为云技术,对未来的趋势毫无知觉。

Google及Wolfram浸淫于多年的信息数据算法研究,对未来信息的趋势看的非常清楚:智能才是信息发展的本质,如何智能处理信息是当今软件行业发展的生死攸关的时刻。在软件发展的早期,大半部分软件是开发如何使用机器的软件,而现在就必须开发如何处理信息的软件,机器的重要性已经减化,这时候如不能把握发展信息的关键时刻,以后必将在信息化方面处处依赖它人,信息化生活就会时刻受到别人的控制。没有掌握智能处理信息的关键技术,想在未来信息化行业挣得一席之地就无从谈起了。

对智能处理信息这个问题很多的专家学者在几年前就已经提倡,这就是我们倡导的信息化社会或数字化生活,然而这几年我们在信息化的过程中走了很多弯路,至今也没有看到目标。信息化从上世纪的90年开始提倡,如办公自动化,到现在的协同、云计算技术等都是在为信息化努力,但却没有取得很好的效果,国内众多软件公司到现在也没有提出一个很好的解决方案来。时间不等人,国外已经发展出了初具人脑智能的软件,我们还在为采取何种编程语言、平台、工具争吵,还在观望,等Google、Wolfram等国外的公司发展出了真正的智能信息化技术来,我们再来模仿就来不及了,原因:未来的云计算技术会变成信息脑,对信息既有超强控制的脑,利用领先的时间充分优化脑智力,从而在处理信息上处处领先。按照本人预想,这种信息脑根本不用任何人工干预,自发编程,能像人类巫师(智者)般回答各种有用问题,可跟《黑客帝国》、《鹰眼》的主机媲美。

信息脑的关键技术就是要有跟人脑神经元之间的自发连接一样的自发编程技术,能够对采集到的信息进行自发编程,不再需要人类人工编程干预。在智能发展的早期,如神经系统刚出现时,可能一条、几条、几百条的神经系统,神经自组织(自发链接)功能就出现,这种自组织以极简单的形式形成智能。而人类为了数学计算的需要,开发了规模庞大的语言、处理器,而处理智能却比不上一条神经元。一条神经元可以与人类耗费精力设计出来的计算机系统媲美,完全依靠他的自发行为(自组织),也可以这样理解:生物有了一个神经元后,就可以产生第二个神经元…. 至无穷,这些神经元之间就可以相互作用,导致更多的相互作用发生…至无穷,最后智力就产生了。按照《道德经》的话就是:“道生一、一生二、二生三、三生万物”。神经元自发行为根本没有人来控制,没有人来为他们制定行为规则,这启示我们,要让未来信息脑技术成功发展成为有智能的整体就必须让信息自发产生作用,再产生更多的相互作用,最后形成智能体。前面说过信息之间作用形式可依据神经作用原理抽象为道指令的形式,我们可根据信息树形成的理论,为信息作用开发出道指令程序来,这样一来,就不能达到信息自发产生作用的目的,最终还要靠人类来运作,解决此问题的唯一的希望只有开发具有自发编程的道指令。

神经系统以及其简单的功能结构产生智能,具有自发编程功能的计算机语言也根本不需要复杂语言关键字、复杂的数据结构、复杂功能等,只要具有自发编程功能就可以了,中文(英文)关键字、复杂的功能都是次要的东西。道曰:“天下万物生於有,有生於无”,宇宙中一切事物事物都是从“无”中生出来的,宇宙发展始于“无”,宇宙粒子从“无中生有”,复杂现象的最高代表—智能也是从一个非常简单的神经元开始的,人类模拟智能从最简单方式的开始,即从道指令开始智能的第一步。道指令仅有一条指令、没有任何关键字,没有数学计算、没有程序结构、甚至没有专用cpu,这正是智能设计在编程语言上的最终要求。有了智能设计专用语言(道指令语言后)后,我们就可以着手开始智能编程的第一步:自发编程。

从神经科学及基因科学的角度上看,智能依赖于神经元之间的简单自发相互作用,自发编程依赖信息之间的自发作用。按照道cpu、道指令理论,信息之间的自发作用就是设计具有自发编程功能的道指令。很早在以前龙芯论坛上,本人针对道指令的未来提出了构想:计算发展的尽头就是没有计算;cpu发展的尽头就是没有cpu;计算机语言发展的尽头就是没有语言;软件编程发展的尽头就是没有编程。道cpu、道指令的设计就已经基本上取消了计算、cpu、语言,剩下最后的目标,即没有编程。没有编程不是说从此不要任何编程行为,回到原始的靠天吃饭的社会,而是要让编程行为称为一种脱离人类控制的自发行为,没有了人类控制的编程,简单说就是没有编程。

自发编程为人工智能的未来提出了一个可能的方向,按照自发编程的原理,极度具有控制欲的人类设计出来的人工智能是不符合自发编程原理的,下文将按照自发编程原理设计出可以编程人工智能的道指令来。

为实现道指令的自发编程功能,必须对道指令进行一些语法改造。

第一:增加原因事件抉择,采用如下的方式表示:

[:杂事1,杂事2,杂事3,杂事4,杂事5:]

表示当结果有事件发生时,这些“杂事”事件是造成结果事件的可能的罪魁祸首。

<:杂事1,杂事2,杂事3,杂事4,杂事5:>

表示当结果没有事件发生时,这些“杂事”事件是造成结果事件不发生的可能的罪魁祸首。

[:…:]及<:…:>表示任意的事件集。

第二:增加结果事件抉择,采用如下的方式表示:

->[:杂事1,杂事2,杂事3,杂事4,杂事5:]

表示结果事件肯定在上面“杂事”事件中,让人类或自然为我们选择其一事件做为结果事件。

[:…:]表示可以生成的任意结果集。
第三:增加道指令的输出抉择功能,采用如下的方式表示:
-><:杂事1,杂事2,杂事3,杂事4,杂事5:>;
表示对外输出结果事件肯定在上面“杂事”事件中,让人类或自然为我们选择其一事件做为输出结果事件。
第四:增加道指令的自发编程行为,采用如下的方式表示:

增加另一中道指令运行标志“=>”,表示当有抉择形事件时,自发地把结果作为道指令加入函数中。

“=>”的运行功能与人类的记忆功能类似,可以把发生的各种事情前因后果存入记忆库中,并且记忆库中的各种事件规则对人类的决策起着重要的作用。如果推理是对记忆进行搜索匹配事件后得到假设的前因后果,人类再按照前因后果的指示进行抉择,选出本身认为最优的事件来,那么人类智能可以用道函数来虚拟运行,人类大脑时刻在建立临时性道函数,得出各种事件结果后再进行抉择。

道指令实现自发编程的语法十分的简单,与目前人工智能科学理论体系十分不同,但能够实现自我学习的人工智能。现在我们利用上述的道指令进行人工智能的编程:

自发的人工智能道指令程序
[:…:]<:…:>=> [:…:]<:…:>;
上述具有自发编程能力的道指令程序只有短短的一行,能够实现道指令的自发编程能力,具体如何做到这一点,我将在以后的文章再论述。

第一道道指令程序注释

道cpu模拟器、道指令编译程序已经初步完成,但还有很多工作要做。在更深入地开发之前,首先编写一道计算机递归程序,在此基础上加以解释,让更多的人了解道cpu、道指令如何工作,并提出有用的建议。

 hhhyyyy

{

main()()

{

    [dgdfg]->f(10)(ttttt);

    [ttttt]->[ttttt,显示结果,结束];

}

f(n)(result)

{

    [n=1]-><1>;

    [n]<n=1>->$oldn=n;

    [n]<n=1>->f(n-1)(fresult);

    [fresult]-><oldn*fresult>;

    [fresult]->[~oldn,~this,~oldthis];

}

}

上述f函数是计算阶乘10!的递归函数,以下讲解程序如何运行

// 道指令程序包含许多函数,这些函数定义在一个较大的程序空间。

//首先程序空间hhhyyyy

hhhyyyy

{

/*像c语言一样,声明一个主函数,便于用户调用,如果是私用的程序,主函数便可以随便令名。*/

main()()

{

             [dgdfg]->f(10)(ttttt);

             /* dgdfg符号是函数开始符号,这个符号必须由函数输入参数传入,或在主函数中由用户直接传入,[dgdfg]表示dgdfg符号存在时,便激发“->”后的生成指令,f函数就可以执行调用了,调用后dgdfg符号就丢弃了。当f(n)( result)函数调用完成后,result 的值赋给ttttt ,ttttt可以使用了*/

            [ttttt]->[ttttt,显示结果,结束];

              /*[ttttt,显示结果,结束]表示同时生成三个符号,其中已有的ttttt符号保留原值,其他的符号为空值 */

}

f(n)(result)

{

         [n=1]-><1>;

       //表示当n=1时,返回1给result。”->”后的”<>”符号是返回标志

       [n]<n=1>->$oldn=n;

        /* 表示当n!=1时, 把n符号值赋给oldn符号,$表示保留oldn符号在数据栈中直到函数完全结束。*/

       [n]<n=1>->f(n-1)(fresult);

       /* 表示当n!=1时, 调用f函数。*/

      [fresult]-><oldn*fresult>;//函数返回oldn*fresult值。

     [fresult]->[~oldn,~this,~oldthis];

    /*[~oldn,~this,~oldthis]表示从数据栈中丢弃三个符号,该函数从调用栈中清除。*/

}

 }

 从上述道指令的编程中可以看出,目前,道指令语言仅有几个标号:

比较功能标号:=

赋值标号:=

道指令 :[…]…<…>…->[…]

符号存储指示:$、~

函数调用:prog.functcall(….)(….)

函数返回:[…]…<…>…-> <…….>;

道指令语言编程的关键在于,必须控制符号在数据栈中的存在,道指令根据符号在存在运行生成结果。理解符号的存在,也就理解道指令的本质。

(11个打分, 平均:1.91 / 5)

雁过留声

“道cpu、道指令、道编程基本原理”有300个回复

  1. jk.li 于 2009-07-21 8:21 下午

    在人类没有搞清楚自己的智能是如何产生之前,搞这些东西是不现实的。这个东西难点不在于那个道cpu如何做,而在于那百千万亿个道cpu如何和谐的一起工作。

  2. yajin 于 2009-07-21 11:11 下午

    我强烈希望作者能做出一个这样的CPU原型。谢谢。

  3. leviathan 于 2009-07-22 1:34 上午

    作者需要读一下冯·诺伊曼那本薄薄的小书,商务印书馆汉译学术名著丛书里的,《计算机与人脑》,定价¥7, 谢谢。

  4. Billy 于 2009-07-22 5:02 下午

    是不是老祖宗的思想也可以被引入到科技领域,然后有所突破呢?作者的观点很有吸引力和震撼力。西方社会引领科技太久了,应该有新的东西引领革命。楼上说的对,筹划个原型机吧。。呵呵

  5. 陈怀临 于 2009-07-23 6:34 上午

    huanghuihuang同学,谢谢你的参与和投稿。我还特地去阅读了您的一下博客。我知道您是严肃认真的对待您的道CPU的。

    但我认为您的道CPU目前属于民科范畴的东西。

    为啥捏?

    这里面涉及到一个科学研究的基本方法问题。这也是IPV9等其他民科的主要弱点。

    在提出一个新的想法的时刻,您必须去学术界发表文章,从而得到大家的讨论和肯定。例如,当年专利局的那个专利员必须通过严谨的科学论文的方式把他的文章写出来,并去投稿。而非去当地的咖啡馆,写在墙上(那时没有博客网站),或者在当地的报纸上连载:-)

    另外,科学,工程必须能够量化。这也是非常重要的。不能够建立数学模型,只有一些模糊的想法,这不是科学。

    再其次,科学发展,基本上都是累积过程,例如,你要解决什么问题。Fix problems。很难想象一个什么新模型,新概念横空出世的质变。

    我看了一下你这篇文章;这不是一个学术论文。但你的题目是一个学术化的题目。

  6. 黄辉煌 于 2009-07-23 6:55 上午

    我知道目前大家对道cpu、道指令、道编程还不认同。为何提出这样的构想,主要源于中国国内对计算机认识不知,天天吵着要中文编程语言、中文编程、中文cpu、中文汇编等,设计cpu要用国外的指令集,并且要几百条指令,网络要中国的IPV9,二进制是中国发明的等诸如此类令人余笑大方的事。那么到底中国计算机发展的方向何去何从,从我十几年软件开发的经历,加上对中国古文化的爱好及对人工智能的探索,总结出道cpu、道指令、道编程原理,这个cpu模型本人以人格保证已经开发出来,只是由于一些技术细节,不便公开,否则中国又是道cpu倒出来横行了。在这里提出,只作为一家之言,主要让中文编程语言、中文编程、中文cpu、中文汇编者不要只钉在模仿外国人的技术上,其实我们先人有更好的东西等着我们发掘。谢谢

  7. yajin 于 2009-07-23 5:10 下午

    其实有想法是相当不错的,有了想法,可以再去设计一个原型证明想法或者发表一些paper 来让别人review 你的想法。

    当然了,也不排除有一种情况,就是想法太超前了,发表出来 别人都看不懂,世界上只有几个人能看懂(比如相对论啥的)。

  8. forgetting 于 2009-07-23 8:08 下午

    写个简单的程序(例如排序之类的)
    贴上来大家看看吧

  9. 沈 阳 于 2009-07-23 8:19 下午

    又一个IPv9烦陈首席来了?哈哈哈!

  10. 陈怀临 于 2009-07-23 9:26 下午

    这个世界上,有许多有理想,但缺乏科学,科研训练的人。很可惜。但是他们自己不认识,或者不愿意去承认这一点。。。都觉得自己是怀才不遇。。。

    30不惑,其实我22岁就知道自己不适合做科研,并且放弃。为什么?学“泛函分析”的时候得了精神衰弱。就这智力还搞科研?歇着吧。几个巴拿赫空间转一转,就睡不着觉,这还叫怀才不遇?这叫意淫。当时其实自己虽然失眠,但自认为对那些空间清楚了。一日,遇到一数学系好友(现为UCLA付教授),意淫的说:泛函很难呀,。。。,我天天在宿舍床上就想空间,想证明。好友答曰:泛函不难呀。是最简单的几门课之一。。。

    其实,认识和承认自己的不足和卑微,是一种自信。但这个世界上却充满着自恋狂。。。

  11. 帅云霓 于 2009-07-23 9:56 下午

    才学粗陋,读不懂’道CPU’这样高深的东西。
    继续学习首席关于CRS-1的分析……

  12. Panabit 于 2009-07-24 12:44 上午

    其实别说个人了,就我们这个民族而言,就有很强的自恋倾向。动不动就将那四大发明抛出来,动不动就往周易上扯,动不动就千年古城、5000年文明什么的,呵呵。

  13. coder 于 2009-07-24 1:26 上午

    首席跟Knuth一个路子。

  14. 黄辉煌 于 2009-07-24 1:36 上午

    近年来,计算机在中国蓬勃发展。但原创的东西太少,天天吵着中文cpu、中文编程语言、汉编、中文系统等,却没有一个真正有含量的东西出来,甚至出现了汉芯这种怪物,当龙芯最后购买mips时,更时引起中国国内人的强烈反感。是我们智能有问题还是其他原因,本人以道cpu、道指令、道编程一文,作为一家之言,只是对计算机在国内的种种问题做一个反应。所谓“道不同,不相为谋”,那些受过国外科学教育的,是看不起中国计算机事业,而我们为何不能以中国的志气,做出我们真正的自主cpu。

  15. 帅云霓 于 2009-07-24 1:43 上午

    [当龙芯最后购买mips时,更时引起中国国内人的强烈反感。]
    从这句话可以看出发言者此方面的水平了。
    建议大家,特别是陈首席无视之,以免无谓浪费时间。

  16. Panabit 于 2009-07-24 1:56 上午

    我想起了另外一个人,那个“做”“汉奥”的哥们,大家有空可以Google“汉奥”一下,我现在找不到他的site。不过,有一点一定要记住,千万不能再吃饭的时候看,否则会不雅的!看多了,你就不知道那个到底是娱乐行为,还是疯子行径,呵呵。

  17. 黄辉煌 于 2009-07-24 2:07 上午

    看问题,要看本质。IPV9在中国的丑态是什么?是耍无赖的、赤裸裸抄袭,汉芯更不用说了。而龙芯呢,刚开始打着中国自主cpu大旗,甚至要动用政府权力全面推广,最后却以购买MIPS草草收场。你方唱罢我登场,演出一场场闹剧。道cpu、道指令、道
    编程使用两千年前的道学(春秋战国的道学,大宋的道学已沦为装神弄鬼的工具)思想,并不排斥先进的科学思想,如有过言之处,也是为国人打气,其实现方式也是多种多样,本人也已在计算机软件上实现了模拟器,只是一些原因不便公开,否则中国又是道学横行了。国人过于眼前利益,用道家无为思想来塑造我们的思想,可谓是正道。中国的未来在那里,不是你我所能决定的,但如果再不改变我们的思想,中国将没有未来。

  18. 老韩 于 2009-07-24 7:09 上午

    此贴再继续更新就快赶上猫扑了。

  19. 沈 阳 于 2009-07-24 7:19 上午

    俺加一贴试一试上猫扑味儿?!

  20. 帅云霓 于 2009-07-24 7:19 上午

    [18楼]
    猫:
    这是我最后一篇回复关于’道’CPU的帖子,也希望大家从此不要回复……
    把它们晾起来就好。
    可耻的匿鸟……突然发现匿不掉~
    [19楼]
    扑:
    呀~潜力贴~楼下保持队形~
    [20楼]
    猫:
    哈,别像IPV9那样变成姨妈贴就好~
    [21楼]
    扑:
    哪里是姨妈贴,简直是姨妈不调贴~楼主快去买“FY洁”吧,一定要买付笛声和任静做广告的那种,洗洗更健康~

  21. 陈怀临 于 2009-07-26 8:23 下午

    黄辉煌,我看你提交了道CPU-7. 对不起,我不会发表你的文章。我相信弯曲评论的其他编辑也同意我的观点。我会把你的文章都合成一个。

    你的文章不是科技论文。是大白话。

    做为讨论所谓的一个崭新的计算模型,你首先要做的是给出数学模型和推理。

    如果你不介意的话,我对你是很失望。

  22. yunhaid 于 2009-07-27 12:45 上午

    爱因斯坦提出相对论时,听说它的数学模型也是不行,还达不到大学水平,所以被很多物理学家拒绝了。

    嗯,道听途说的,不晓得真假。

    所以陈首席可以评价一下它的思想性如何?

  23. 黄辉煌 于 2009-07-27 1:19 上午

    没想到陈首席这么认真,该文只是在论坛与网友刷刷,下次争取发高质量的文。

  24. 陈怀临 于 2009-07-27 6:25 上午

    《弯曲评论》不是论坛。也不是博客。Lightreading是博客吗?

    你的文章最大问题是:技术与政治不分。请问哪个美国教授或者工程师写一个技术问题时加上要为美国人民奋斗,要为911死难人士报仇?

  25. Panabit 于 2009-07-27 7:02 上午

    最烦那些动不动就将技术同国家和民族挂钩的了。岂不知技术是无国界的。另外,如果这个CPU不是同所谓的中国的“道”扯在一起,估计还会有人认真看看。

  26. 黄辉煌 于 2009-07-27 7:41 上午

    其实大家可以看看,那一个做大的中国企业不是以民族大义自吹,另外,用道德经也只用一句,大家不用紧张过度,并且老子和他的思想是我们值得尊敬的.

  27. remon 于 2009-07-27 4:56 下午

    纯粹瞎讲,仅供娱乐

  28. 图书管理员 于 2009-07-27 5:33 下午

    LZ如果有更“学术化”的论文,不妨发出来或给个链接。在下不大懂CPU,学习学习。

  29. yajin 于 2009-07-27 5:49 下午

    我真的对楼主的 CPU simulator 感兴趣。本人不才,但是对simulator 也算稍有了解。 请问,是啥原因不能公开呢? 就算source code 不公开,也弄个demo视频啥的出来看看把。

  30. 黄辉煌 于 2009-07-27 6:40 下午

    不是不公开,主要是有的东西大家自己先想一想,先有自己的初步思路,我最后把我的模型及代码公开,就可以比较优劣,我们学习计算机也就达到了,古人说“尽信书,不如无书”,我的理论只是开个头,大家可以尽情发挥。

  31. 陈怀临 于 2009-07-27 6:47 下午

    小黄,你那叫理论?你那是评书:-)!

    我给你出个题目。如果你的模拟器能够实现,我特邀你当弯曲评论专栏作家。

    对于任意长度的一个字符串(String),判断是否是a^nb^n的模式。是:输出并打印YES;否:输出并打印NO。

    目的:看你的道CPU和指令系统能否实现一个堆栈。

    要求时间:一天只内编程,调试完成。(时间是足够了)

  32. 黄辉煌 于 2009-07-28 12:41 上午

    陈首席实在令人勉为其难,知道我的道编程语言语法还有漏洞和道编译程序没有做好,还在广为征求大家的帮忙。并且陈首席的意思我也不大懂,到底是如“aaabbb”、“aabb”或“**aabb**”、“***aaabbb***”,初次出手,只好选一个简单的试一试。赶鸭子上架,如有不妥之处请指教。
    挑战陈首席字符串函数(字符串)(结果)
    {
    [函数开始]-> $对比字符=字符串[1] /*暂时借用一下c语言的字符串字符地址标记方式 用什么才合理,以后再想*/
    [函数开始]-> h=1
    [函数开始]-> i=2
    [函数开始]-> j=3
    [函数开始]-> k=4
    [函数开始]-> m=5
    [函数开始]-> n=6
    /*函数开始 这个标记只在开始第一次运行存在*/
    [字符串[h]= 对比字符, 字符串[i]= 对比字符, 字符串[j]= 对比字符, 字符串[k]= 对比字符, 字符串[m]= 对比字符,h,i,j,k,m,n]->找数=m
    [字符串[h]= 对比字符, 字符串[i]= 对比字符, 字符串[j]= 对比字符, 字符串[k]= 对比字符,h,i,j,k,m,n]->找数=k
    [字符串[h]= 对比字符, 字符串[i]= 对比字符, 字符串[j]= 对比字符,h,i,j,k,m,n]->找数=j
    [字符串[h]= 对比字符, 字符串[i]= 对比字符,h,i,j,k,m,n]->找数=i
    [字符串[h]= 对比字符,h,I,j,k,m,n]->找数=h
    [字符串[n],h,i,j,k,m,n]->[ 数学函数.加一(h)($h), 数学函数.加一(i)($i), 数学函数.加一(j)($j), 数学函数.加一(k)($k), 数学函数.加一(m)($m), 数学函数.加一(n)($n)]
    /* 这些数学函数因为调用的关系,花费时间可能不一样,设置当五个数同时存在时,才进行作用*/
    [字符串[n],h,i,j,k,m,n]->[~h,~i,~j,~k,~m,~n]/* 各个数用过后就要抛弃了*/
    [找数]->[$第一个数=找数, 对比字符=字符串[n]]
    [找数,第一个数]->[$第二个数=找数, 对比字符=字符串[n]]
    [第一个数,第二个数,第一个数=第二个数]->挑战结果=“胜利”
    [第一个数,第二个数]->挑战结果=“失败”
    [挑战结果]->(“回家睡个大觉”)
    }/*以上是五个一起同时找*/
    以上非常别扭的程序终于完成了,大家要仔细思考,不要以为这是道书,相信有并行编程经验的人,都会谅解这种并行编程的苦衷,何况是在指令级别。不过本人作为第一个编制道程序的程序员,时刻感到无不光荣。
    但上述的道程序暂时没有办法在我的模拟机上运行,主要是字符串中字符地址的标记如何定义的问题,所以陈首席也不用他的承诺兑现不了了。

  33. 黄辉煌 于 2009-07-28 12:49 上午

    上面的回复把我的许多尖跨号都屏蔽了,用《代替重新发一下。

    挑战陈首席字符串函数(字符串)(结果)
    {
    [函数开始]-> $对比字符=字符串[1] /*暂时借用一下c语言的字符串地址标记方式 用什么才合理,以后再想*/
    [函数开始]-> h=1
    [函数开始]-> i=2
    [函数开始]-> j=3
    [函数开始]-> k=4
    [函数开始]-> m=5
    [函数开始]-> n=6
    /*函数开始 这个标记只在开始第一次运行存在*/
    [字符串[h]= 对比字符, 字符串[i]= 对比字符, 字符串[j]= 对比字符, 字符串[k]= 对比字符, 字符串[m]= 对比字符,h,i,j,k,m,n]《 字符串[n]= 对比字符》->找数=m
    [字符串[h]= 对比字符, 字符串[i]= 对比字符, 字符串[j]= 对比字符, 字符串[k]= 对比字符,h,i,j,k,m,n]《字符串[m]= 对比字符》->找数=k
    [字符串[h]= 对比字符, 字符串[i]= 对比字符, 字符串[j]= 对比字符,h,i,j,k,m,n]《 字符串[k]= 对比字符》->找数=j
    [字符串[h]= 对比字符, 字符串[i]= 对比字符,h,i,j,k,m,n]《字符串[j]= 对比字符》->找数=i
    [字符串[h]= 对比字符,h,I,j,k,m,n]《字符串[i]= 对比字符,h,i,j,k,m,n》->找数=h
    [字符串[n],h,i,j,k,m,n]->[ 数学函数.加一(h)($h), 数学函数.加一(i)($i), 数学函数.加一(j)($j), 数学函数.加一(k)($k), 数学函数.加一(m)($m), 数学函数.加一(n)($n)]
    /* 这些数学函数因为调用的关系,花费时间可能不一样,设置当五个数同时存在时,才进行作用*/
    [字符串[n],h,i,j,k,m,n]->[~h,~i,~j,~k,~m,~n]/* 各个数用过后就要抛弃了*/
    [找数]《第一个数》->[$第一个数=找数, 对比字符=字符串[n]]
    [找数,第一个数]->[$第二个数=找数, 对比字符=字符串[n]]
    [第一个数,第二个数,第一个数=第二个数]->挑战结果=“胜利”
    [第一个数,第二个数]《第一个数=第二个数》->挑战结果=“失败”
    [挑战结果]->(“回家睡个大觉”)
    }/*以上是五个一起同时找*/

  34. 黄辉煌 于 2009-07-28 1:26 上午

    后面有点不对,用下面代替
    [第一个数,第二个数]->数学函数.减法(第二个数,第一个数)($第三个数)
    [第一个数,第二个数,第一个数=第三个数]->查找结果=“胜利”
    [第一个数,第二个数,第三个数]《第一个数=第三个数》->查找结果=“失败”
    [查找结果]->(“回家睡个大觉”)

  35. Karifeld 于 2009-07-28 7:15 上午

    作者回去思考难能可贵,即使以后回过头发现自己想法不成熟,也会得到许多宝贵经验。从本质上说,所谓道处理器中指令间依赖太多了,从对信息的多出判断就可以看出,这样是并行不了的;其实我们需要的不是标新立异,而是认认真真地多反思发展至今的处理器和计算机架构;也可以借鉴他山之石,比如MIT、IBM、Intel,他们未尝不在苦苦思寻新的架构,或者计算的真谛,想想他们为什么不选择你所说的道处理器。

    陈首席还得过精神衰弱呵,我理解这种痛楚,因为我有个朋友刚考上研究生,后来发现自己脑子不行,最后休学一年多到现在,请问有方法好治吗?

  36. 陈怀临 于 2009-07-28 8:44 上午

    嘿嘿。问治疗神经衰弱你是问到人了。通常而言,是用脑过多(对天才科学家而言),对陈首席和你的朋友,应该属于脑袋不够用的原因:-)。

    如何治疗:放松,多运动。

    但这说的容易,做很难。

    通常是:每天晚上害怕睡觉,从而形成可怕的循环。脑袋异常的清醒。任何地方有一点声音都听得见。例如,可怕的水房:-)。什么数数字,数到好几千还是清醒的:–(。当你意识到你同宿舍的那些脑袋好使得,或者其实不用脑袋的,已经在做春梦的时候,你的痛苦可想而知。。。

    换床位,换宿舍对我有帮助。

    现在想起来,还是多运动,慢慢的放松一段时间,就会好起来。毕竟是属于脑袋不好使得这种精神衰弱,而不是脑袋用过渡的那种:–)

  37. 黄辉煌 于 2009-07-30 8:55 上午

    其实大家如有用过汇编语言,c语言等较低级的计算机语言,感觉肯定非常不好,在可怜的cpu控制下,必须时刻注意程序运行的位置,一旦跟错,整个程序将变得无法理解。我不知道Karifeld是否又过cpu设计经验,MIT、IBM、Intel是不可能造出道cpu的,他们在技术的压力下,必须为技术而技术,否则就会被摩尔定律淘汰,他们一方面,技术上做点小改进,另一方面,功能上上也经常加点小功能,如从MMX提出到现在,在并行上加了多少指令,做了多少次架构设计,其目的也是为了赚取更大的利润,这就像吸毒一样,从此乐此不疲。而道cpu的设计非常简单、又容易扩展,结构一成不变,也不用高级的cpu设计工程师,这样的cpu对大的cpu厂商是没有吸引力。道cpu就是为了解放广大的人员:cpu设计者、程序员、系统开发人员、应用程序开发人员等,只要充分领会道指令的含义,所有人要做的就是发现信息的发展规律,并用道指令实现它,就这么简单。我们将会发现原来世界是生生不息的,充满着各种互动、有趣,而不是一直被如一条迷宫的cpu运行线牵着鼻子,犹如cpu的奴隶,令人压抑。

  38. 陈怀临 于 2009-07-30 9:03 上午

    嘿嘿。小黄,你看得那3本计算机的书不够呀。。。
    体系结构,编程语言,人工智能,这已经是计算机科学的3打领域。您通过看了3本入门书籍(好像还没有编程语言和人工智能方面的),就能做出划时代的工作。

    您觉得从概率角度,您是民科的几率有51%吗?

  39. 黄辉煌 于 2009-07-30 9:29 上午

    陈首席也太小看人了,你说得那几类书本人也有不下200本,你以为我在胡说吗?

  40. 黄辉煌 于 2009-07-30 9:38 上午

    文章之所以提到那三本书,是为一个有志于CPU设计的青年提个醒,不要因一本烂书而坏了兴趣.

  41. 陈怀临 于 2009-07-30 9:49 上午

    嘿嘿嘿。碰巧我对编译器很感兴趣,并且主持过一个网络处理器的编译器的研发工作。问一哈小黄朋友一个问题。
    你的编译器的ABI是什么?

  42. 黄辉煌 于 2009-07-30 9:58 上午

    陈首席,术业有专攻,我正因这个问题在苦垴

  43. 陈怀临 于 2009-07-30 10:03 上午

    Ok,承认编译器有苦恼了。下面说您的另一个强项。
    1. 道编程语言的BNF范式有没有规约?
    2. 数据类型是如何定义的?优缺点为什么?

  44. 黄辉煌 于 2009-07-30 10:11 上午

    不过陈首席肯定以为只能如书上设计,本人却反其道而行,用XML定义了道编程语言,用关系数据库设计道CPU模拟器,一样好用.

  45. 黄辉煌 于 2009-07-30 10:21 上午

    不要给我高帽,BNF范式只有两个括号要处理,其余照书抄一抄,道语言没有数据类型的,刚好可以偷懒了

  46. 陈怀临 于 2009-07-30 2:42 下午

    好,算你狠。XML做编程语言,编译器直接把XML字符串运行在你的道CPU上,完成运算。

    好,现在问你最后的强项–CPU设计和体系结构了。

    1. 你的到CPU有加法器吗?
    2. 在并行计算的时候,如果事件有依赖性,你如何解决Interlock?

    提问完毕。

  47. 黄辉煌 于 2009-07-30 4:26 下午

    又给我高帽,不过不是编译器直接把XML字符串运行在道CPU上,而是直接把XML解析的道指令存储在数据库上,利用数据库并行处理道指令。
    1. 道CPU有加法器吗?
    道CPU的比较功能没有加法器,为达到处理字符串或数组中的字符、数据,在地址标记上有简单的几位加法器。
    2. 在并行计算的时候,如果事件有依赖性,如何解决Interlock?
    陈首席还没理解道指令,道指令是全部指令并行运行的(包括函数和过程),Interlock就体现在道指令中了。我看你还没理解我上面的字符串判断函数。
    我有一个小问题,用你所熟悉的计算机语言,如何编制上面的字符串判断函数,要求充分利用并行指令或多核功能。

  48. 陈怀临 于 2009-07-30 5:16 下午

    说良心话,我天资愚笨,根本没有看懂你的a^nb^n algorithm. Will read it in detail again today.

  49. 黄辉煌 于 2009-07-30 6:33 下午

    陈首席不必谦虚,术业有专攻。我用c写一下:
    bool yyy(char *ToComparestring,int count)
    {
    char ToComparechar=*ToComparestring;
    int h=0,i=1,j=2,k=3,m=4,n=5;
    int resultnum=-1;
    int firstresultnum=-1;
    int secondnum=-1;
    if(count>0&&hhh!=null)
    {
    for(;n=0&&firstresultnum=0&&firstresultnum>=0)
    {
    secondnum=resultnum;
    break;
    }
    h=h+5,i=h+1,j=h+2,k=h+3,m=h+4,n=h+5;
    }

    if(firstresultnum>=0&&secondnum>=0)
    {
    if(secondnum-firstresultnum==firstresultnum+1)
    return ‘y’;
    else
    return ‘n’;
    }
    return ‘r’;
    }
    }/*主要思想,取五个字符一起比较*/

    上述程序与道程序多了很多控制结构,并且只能顺序执行,如果把道程序全用英文写,估计也不会那么长。
    上述c程序,没有办法编译成并行指令,因为你必须控制各条语句同步,要同步又必须加入机器同步原语,或者请陈首席想想如何在当前的cpu上做到指令并行。

  50. 黄辉煌 于 2009-07-30 6:40 下午

    回复里有的东西被老删除,我在回复一下程序。
    bool yyy(char *ToComparestring,int count)
    {
    char ToComparechar=*ToComparestring;
    int h=0,i=1,j=2,k=3,m=4,n=5;
    int resultnum=-1;
    int firstresultnum=-1;
    int secondnum=-1;
    if(count>0&&hhh!=null)
    {
    for(;n=0&&firstresultnum=0&&firstresultnum>=0)
    {
    secondnum=resultnum;
    break;
    }
    h=h+5,i=h+1,j=h+2,k=h+3,m=h+4,n=h+5;
    }

    if(firstresultnum>=0&&secondnum>=0)
    {
    if(secondnum-firstresultnum==firstresultnum+1)
    return ‘y’;
    else
    return ‘n’;
    }
    return ‘r’;
    /*主要思想,取五个字符一起比较*/
    }
    }

  51. 黄辉煌 于 2009-07-30 6:41 下午

    还是不行,我发邮件给你。

  52. 杰夫 于 2009-07-31 2:52 下午

    这位黄同学还是蛮认真的。就冲着你的这股认真劲,我也说两句。

    看得出你很是勤于思考,有想象力,但是从老弟的文章和程序来看,你可能没有接受过严肃的计算机方面的教育。发明一种新的编程语言,勇气可嘉,但你可能是在浪费你宝贵的时间。

    计算机语言已经有几十种,您老要再加一种,首先要说明现有的语言,C或Java等,有什么缺陷,不能解决哪种问题,然后证明你的‘道’可以解决,这才对路。现有的语言并非完美,新的语言还在不断出现,如Tcl,Python等。但你要解决的问题得是具体的工程问题,如果你说‘道’就是要发扬光大中国的传统文化,那就不现实了,高看计算机研究了。

    计算机语言,指令研究,已经是比较成熟的领域,比较枯燥、乏味,已经不是一个非常令人激动的研究领域。从Art和Science来讲,它更接近于Science。你老弟创造力强、想象力丰富,不应该在这种领域浪费时间,从事一些激动人心的艺术创作可能更适合。

  53. 陈怀临 于 2009-07-31 8:40 下午

    唉,良药苦口;善言弗意呀。。。有时真是缘分不够,无须强求了。黄施主好自为之吧。希望N年之后,会记得我们的点到为止。

  54. 黄辉煌 于 2009-07-31 9:08 下午

    陈首席言重了,顺其自然,一切随缘,一切皆有可能。

  55. 黄辉煌 于 2009-07-31 9:55 下午

    感谢杰夫的回帖及忠心的建议。我这里要澄清几点:
    1、“道”不是我的研究重点,发扬中国传统文化也不是我的工作重点,“道”只是给我们思想指导出一个可能的方向,我的本意是研究信息,信息的发展规律及利用规律做事。我引用“道”只是感觉国人过于急功近利,需要“无为”的思想重新塑造一下,并无它意。
    2、所谓严肃的计算机科学有点不当,计算机从无到有也是几十年的事情,现代物理科学也不过百年,大自然的许多规律因为被人类发现了,才叫科学。我们是否可以说教育只不过把人教育成按书本办事。那是在培养工匠而不是在培养大师及思想家。(不是针对本文章和本人)
    3、C或Java等,有什么缺陷。指出缺陷不是我们目前的工作方向,我的本意也不是要替代他们,我只是提出一种可能的方式。
    4、目前所有的cpu、计算机语言都是按顺序运行的,是不是我们已经满足这种千般一律的事了,对一些新的东西也熟视无睹了。
    5、我在本评论及有关论坛、博客等写这些文章,本意也不是要出出风头,我是在征求真正的专家的意见,需要他们能够在真正的技术上提出真正的指导。
    6、道cpu、道指令、道编程已经明明白白写在文章上了,要实现他对受过计算机科学教育的人来说是非常轻而易举的事。我本人也实现了一个可行的软件模拟程序,还在进一步的完善中。暂时没有公开来,主要是让真正感兴趣的人有了思考之后,在拿出来比较,否则国人的秉性大家都非常清楚,都是拿来主义,这对我们发展计算机科学没有好处。

  56. 沈 阳 于 2009-08-01 5:35 上午

    善、善、善

  57. jge 于 2009-08-08 10:59 下午

    本来上来就想骂的,想想还是算了。
    空想是可以的,但首先得说服你自己,而不是只想着吸引目光。如果你对自己提出的整个体系都想不清楚,无法清楚地分析潜在的冲突,那多半就是鬼话了。具体的说来,基于时钟周期的cpu很自然的依赖引用不透明(比如寄存器),导致不那么高级的编程语言带着副作用(side effects),比如变量,比如数组,这都是C,Java这些命令式语言很难并发的主要原因。所以现在人们对不带副作用的纯函数式语言越来越感兴趣了,比如haskell,虽然没有副作用不等于可以并发,但至少比起命令式语言好多了。我觉得你想了解能“并发”的语言的话,可以先学习下已有的知识,请不要低估这个世界,祝你好运。

  58. huanghuihuang 于 2009-08-09 6:58 下午

    感谢jge的批评指正。
    其实设计全并行道指令把指令间各种相关都列出来正是解决潜在的冲突的根本办法。函数式语言其实是一种符号运算,按照递归函数理论的而设计的语言,可用任何计算机来实现,但在处理并行时,还是必须处理各种并行相关。道指令在底层让软件设计人员把相关条件指出来,提供更大的自由度。
    关于道编程语言的设计我也觉得非常简陋,一方面没有数据类型,肯定会造成编程数据错误,另一方面没有引入基本运算,增加很多编程工作量,原因前面也有说过,主要为杜绝任何关于中文、英文语言编程的争论。
    关于道指令运行规范的定制,我也根据我实现的模型做出一些合理的规则,如道指令取消地址,对数据采用标记,其实也是一种符号;还有关于符号的生存期问题,我在设计中,让编程人员可以控制符号的存在,增加编程自由度。
    我本人也知道个人能力有限,在这里提出来让各位专家批评指正,从而完善道cpu、道指令、道编程的有关理论和应用。
    本人不是一个空想的人,我为内存cpu的设计花费几年时间,只因现实约束没有去实现。为《信息树管理系统》自己也利用业余时间编制大量的软件,为道cpu模型也编制了软件,否则,我不会在这里与大家讨论。
    另外,我在文章中,感于中国科技落后他国,写一些针对时弊的话,敬请谅解。

  59. huanghuihuang 于 2009-08-12 1:14 上午

    感谢zeroflag回帖:
    图灵机的关键在转移函数,因为大家学习数学对函数都习以为常了,没有对转移函数如何实现有疑义,其实转移函数的实现是一个查表过程,我们如试着把这个过程学下来,就是一条条的记录,图灵机运行时一条条对着比较,找到对应的记录后,输出结果。
    道指令其实就是图灵机转移函数中一条条的记录,只不过它是并行查找的不用像图灵机一条条查找。
    目前还没有办法做到并行查找,但可以模拟出来,用内存cpu、用数据库等都可以模拟出来。
    道指令也采用布尔逻辑表示是为了节省大量的相似可归纳记录,否则尽可以不用布尔逻辑,那一切都是记录。
    我的道指令与《道德经》有关的言论尽可不用管它,这一切感于中国科技落后他国,写一些针对时弊的话。只要理解道指令与图灵机、布尔逻辑等是相同的就可以了。
    哲人说过:科技是一把双刃剑。《道德经》能够给我们目前急功近利的社会带来一点有序和谐之道,学习科技的同时顺便学点《道德经》何乐而不为呢?

  60. huanghuihuang 于 2009-08-12 1:27 上午

    以上解释如有不解之处请参看我的博客:http://blog.csdn.net/huanghuihuang
    我将尽一切可能把道CPU、道指令、道编程在博客里写出来,让更多的人来投入这项研究工作,并发展出我们自己的信息产业。

  61. zeroflag 于 2009-08-12 4:35 上午

    我看了您的博客,您的描述还是让我迷惑。
    ((ABC..)∪(…..) ∪…)∩!(EFG…) ∩!(…) ∩…=Q
    这个表达式究竟是什么意思?哪些是输入的变量?哪些是中间变量?抑或全部都是输入变量?能不能举一个具体的例子?

    您的设计中,每个计算单元的输入和输出究竟是什么?能不能给一个明确的描述?比如输入数据A,如果数据A=S,则输出B,否则输出C。或者计算单元存一个表,输入一个值,然后查表,把对应的结果发出来。(后者有点象FPGA,每个单元存一个真值表,输入几个数值,然后根据真值表给出输出,然后多个真值表级联,形成逻辑。)

    所以还是请您想图灵机的介绍那样,重新写一下你的设计,给大家一个严肃客观的,没有政治或者感情因素干扰的清晰的东西出来。

    另:我对中国的古典精华是非常尊重的,我也为祖先创造了灿烂的文明而自豪。但我BS是用中国古典的精华出来招摇撞骗,难道我们离开古人就寸步难行?就不能用真正的科学的方法进行创新吗?这才是中国人最大的悲哀!

  62. 陈怀临 于 2009-08-12 6:21 上午

    黄大仙,在理论上,DFA和NFA,或者,Determistic TM与Non Determistic TM是等价的。其表达能力是=的。因此,并行图灵机就是图灵机。没有任何区别。换言之,任何一个并行程序都可以通过串行程序来表达。

    在工程上,并行计算要解决相关性问题。你要看看MPI,PVM,OpenMP等。

    我理解你喜欢科学研究,创新。但前提是需要一些基本的科学基础和素养。

    我不是列出了一下Conference吗。去看看那些教授们的文章。虽然首席认为大多数人的文章为没有价值,但他们的文章都很严谨,是非常受过科学训练的。

  63. cl 于 2009-08-12 8:05 上午

    又来一个写小说的。。

  64. 黄辉煌 于 2009-08-12 8:33 上午

    感谢陈首席、zeroflag回帖:
    首先我澄清一下,我的所有有关道cpu的研究都是在当前计算机理论的框架下,没有任何突破的意思,我所做的就是换一种形式来设计cpu、编程等。首席介绍的文章,我会尽量去阅读,从中寻找更好的解决办法。
    有关道指令与布尔逻辑我再解释一下:
    [原信息1, 原信息2, 原信息3…]……..->生成信息。
    [原信息1=“4643”, 原信息2=原信息19, 原信息3,…]……..->生成信息。
    式子中的“原信息”都表示信息标记即信息的符号。
    “->”左边所有的标记都是输入,右边就是输出。
    [原信息1, 原信息2, 原信息3…]的意思就是当[...]内要求的输入标记全存在时就输出真值,。
    [原信息1=“4643”, 原信息2=原信息19, 原信息3,…] 的意思就是当输入标记全存在并等于要求的值就输出真值。
    的意思就是当内要求的输入标记全存在时就输出假值,。
    整个式子的真值由对应的布尔等式:
    ((ABC..)∪(…..) ∪…)∩!(EFG…) ∩!(…) ∩…决定,当式子为真时,输出右边的符号(也可以带值输出)。
    也可以用[]表示当[]内要求的输入标记不全存在或满足时就输出真值,
    也可以用表示当内要求的输入标记不全存在或满足时就输出假值,
    目前我的内存cpu、数据库模拟器暂时没有办法模拟出带()的道指令,只能模拟上述[][]顺序排列起来构造道指令,如果有()的布尔逻辑或式子,就要分成两条道指令。

    要表示:输入数据A,如果数据A=S(S是值),则输出B,否则输出C。可用道指令如下:
    S是值的情况下:
    [A=’S’]->B /*B是符号*/
    [A]->C /*C是符号*/
    S是符号的情况下:
    [A=S]->B /*B是符号*/
    [A]
    ->C /*C是符号*/
    请用相应的布尔逻辑去求值,就可以理解上述的道指令,(查表我就不在举例子,自己思考一下道指令可用的地方,我的博文里也有解释)。
    我为什么一直在反对简单的用中文汉化计算机语言就是基于上述的原因,一个”if then else “语句,翻译成中文语句:”如果 那么 否则 “,我用道指令就可以简单写出来,不用那么多的中文翻译,并且可适用各种国家语言,这种便利性可想而知了。
    所以我没有做任何跳出计算机框架的创新,我只是在布尔逻辑等式进行创新,但是经过实践发现,采用道指令形式的编程方式更容易理解、扩展,于是我就试着把它扩展成一种没有关键子语言,这个语言现在还有很多漏洞,需要大家的支持,我想如果成功的话,对我们国家的计算机普及是非常有好处的。

  65. 黄辉煌 于 2009-08-12 8:36 上午

    尖括号老被删除,用《》重新发一下:
    要表示:输入数据A,如果数据A=S(S是值),则输出B,否则输出C。可用道指令如下:
    S是值的情况下:
    [A=’S’]->B /*B是符号*/
    [A]《A=’S’》->C /*C是符号*/
    S是符号的情况下:
    [A=S]->B /*B是符号*/
    [A]《A=S》->C /*C是符号*/

  66. 黄辉煌 于 2009-08-12 8:41 上午

    有关道指令与布尔逻辑我再解释一下:
    [原信息1, 原信息2, 原信息3…]…《 原信息6, 原信息7, 原信息8…》…->生成信息。
    [原信息1=“4643”, 原信息2=原信息19, 原信息3,…]…《 原信息6, 原信息7, 原信息8…》…->生成信息。
    式子中的“原信息”都表示信息标记即信息的符号。
    “->”左边所有的标记都是输入,右边就是输出。
    [原信息1, 原信息2, 原信息3…]的意思就是当[...]内要求的输入标记全存在时就输出真值,。
    [原信息1=“4643”, 原信息2=原信息19, 原信息3,…] 的意思就是当输入标记全存在并等于要求的值就输出真值。
    《原信息6, 原信息7, 原信息8…》的意思就是当《…》内要求的输入标记全存在时就输出假值,。
    整个式子的真值由对应的布尔等式:
    ((ABC..)∪(…..) ∪…)∩!(EFG…) ∩!(…) ∩…决定,当式子为真时,输出右边的符号(也可以带值输出)。
    也可以用[《》]表示当[《..》]内要求的输入标记不全存在或满足时就输出真值,
    也可以用《[]》表示当《[..]》内要求的输入标记不全存在或满足时就输出假值,
    目前我的内存cpu、数据库模拟器暂时没有办法模拟出带()的道指令,只能模拟上述[][]《》《》顺序排列起来构造道指令,如果有()的布尔逻辑或式子,就要分成两条道指令。

    要表示:输入数据A,如果数据A=S(S是值),则输出B,否则输出C。可用道指令如下:
    S是值的情况下:
    [A=’S’]->B /*B是符号*/
    [A]《 A=’S’》->C /*C是符号*/
    S是符号的情况下:
    [A=S]-》B /*B是符号*/
    [A]《 A=S》->C /*C是符号*/
    请用相应的布尔逻辑去求值,就可以理解上述的道指令,(查表我就不在举例子,自己思考一下道指令可用的地方,我的博文里也有解释)。
    我为什么一直在反对简单的用中文汉化计算机语言就是基于上述的原因,一个”if then else “语句,翻译成中文语句:”如果 那么 否则 “,我用道指令就可以简单写出来,不用那么多的中文翻译,并且可适用各种国家语言,这种便利性可想而知了。
    所以我没有做任何跳出计算机框架的创新,我只是在布尔逻辑等式进行创新,但是经过实践发现,采用道指令形式的编程方式更容易理解、扩展,于是我就试着把它扩展成一种没有关键子语言,这个语言现在还有很多漏洞,需要大家的支持,我想如果成功的话,对我们国家的计算机普及是非常有好处的。

  67. leviathan 于 2009-08-14 12:23 上午

    各位老大就是闲的,在这指点他。 这位小同学估计连“道”是什么都一丁点概念没有 —— 顶多认得这个字罢了。

    张口闭口中华文化,中华文化都让这种货色、以本文的方式给rape了。

  68. huanghuihuang 于 2009-08-14 2:28 上午

    请leviathan放眼看看,中华文化被rape还少吗?国人被rape还少吗?又有多少人加入rape的狂欢中!
    如真有讨论的意思,请指出问题,不用唱中华文化的高调。

  69. Fro Yang 于 2009-08-30 2:25 上午

    …LZ
    我想问你
    你的设想里面有没有考虑过物理?
    或者你的设想很无敌
    但CPU不是一堆写在纸上的逻辑
    CPU是一个刻画在硅上的电路,可以跟指令完全无关
    很抱歉,到目前科技水平,电路只跟一些物理定理/现象有关
    你的道怎么运算1+1?没有加法器, and/or gate
    你的道怎么变成一个电路?
    当你的道cpu理论里面所有基础元素都可以变成电路再去给我们阐述你的道指令,道编程吧
    别本末倒置了,先有实现可能性再往上谈架构

  70. 黄辉煌 于 2009-08-31 8:23 上午

    道cpu依靠比较功能工作,这跟普通cpu没有两样。逻辑电路、数学运算单元的实现依据的是布尔逻辑,布尔逻辑的本质就是比较。既然布尔逻辑可以实现比较,那么就可以用逻辑电路实现道cpu。这个我在博客中已经讨论过,并且用内存cpu实现了道cpu。因条件限制,本人只用软件方式实现了模拟的道cpu的工作模型,最近正忙于开发道指令的编译器,有一些细节也还在修改中。希望大家能对道cpu多提一些关键性的技术问题,而不是能不能实现这种初级问题。

  71. huanghuihuang 于 2009-09-08 2:05 上午

    这几天自己动手开发编译器,收获很大。

  72. huanghuihuang 于 2009-09-11 1:14 上午

    道编程语言是一种非常简单的计算机语言,没有变量、数据类型、表达式、控制结构、数据结构等,使用现有的自动化编译工具显得有的大才小用,用手工编程刚好也可以再次锻炼一下编程能力。我统计一下,共用了5个函数,500多行C#源码,不是天文数字般的编译程序,各个函数如下:
    1、compile(string sourcefile);
    接受源代码输入,分析出每个函数的名称,输入参数、输出参数,并调用repanalyze分析每条道指令。
    2、repanalyze(System.Guid functGuid,string rep);
    分析单条道指令,对条件部分调用ifcondition函数,对输出部分outputanalyze函数。
    3、ifcondition(System.Guid outputGuid, string ifconditionexpress);
    分析出每个”[.....]“和“”,再调用ifconditionanalyze函数。
    4、ifconditionanalyze(System.Guid outputGuid, System.Guid InputpairID,string ifeventexpress);
    分析出”[.....]“和“”内的所有等式,并写入数据库。
    5、outputanalyze(System.Guid functGuid, System.Guid outputGuid, string outputexpress);
    分析结果等式,并写入数据库。

    因为开发时间有限,编译完后的程序,没有再创建文件格式来保存,仅简单用数据库来代替,可节省了大量的时间,并且对程序中的调用,仅在数据库中查找相应的函数就可以了,否则必须查找函数所在的文件,然后再调用进行静态链接或动态链接。
    采用文件方式的程序库方式,如微软的注册表、文件路径等方法,带来非常大的不便,是否把现有的程序编译成数据库的方式,图片、声音也分块保存在数据库中,运行时,再由程序装载入内存中,这样整个系统就是一个数据库,这个数据库可以分布存储,驻留本地的就只有一个装载程序。
    目前的云计算技术太依赖主机,本地计算机资源都浪费了,而采用程序数据库方式将充分利用本地计算资源。数据库方式可以充分无限扩展,程序中的数据、函数的都可以扩展成网络地址方式,装载程序事先调用,这样就解决了云计算诸多API接口问题。

  73. along 于 2009-09-11 3:12 上午

    我承认自己没有看懂。

    然后,我根据自己的经验,插一句:有一种人专门是忽悠人的。而且,会忽悠名人。这样等若干年后,那些名人就成了他进一步高升的踏板。他可以说,自己跟某某某讨论过问题。因为术业有专攻的缘故,他的直接非技术上级是可以认为这个人在这个方面有一定功底的。

    我没有影射黄先生的意思,只是根据自己大概的理解,发表一下想法。

  74. Panabit 于 2009-09-11 6:21 下午

    建议陈首席将这几篇文章删掉。

  75. 黄辉煌 于 2009-09-12 8:00 上午

    to along :这年头,敢于承认自己不懂的人越来越少了,值得我们学习。
    以前在我们乡下,空闲时经常有很多农民坐在一起,讨论国家大事,而且说得头头是道,没有人敢说那件事不懂、那个当红领导不认识。现在,在城里、单位、机关里,大家时常也坐在一起,讨论国家人事大事,而且说得头头是道,没有人敢说那件事不懂、那个当红领导不认识。在本人曾经从事过的IT行业,几个IT人士,也经常讨论IT业界的大事,没有人敢说那件事不懂、那种当红技术不懂。然而世界竟如我们的农民还在脸朝黄土背朝天的做着世世代代同样的事情一样,依然没有任何变样。美国人用了两三年的时间建立起现代社会,而中国人用了两三千年的时间建立起的现代社会的农民还在脸朝黄土背朝天的做着世世代代同样的事情。古人说:书生误国,我不敢说对不对,但书读得多的人与没有读书的大抵相同,只不过认识的东西不一样罢了,行为还是脱离不了国人五千年历史的天性。

  76. 黄辉煌 于 2009-09-16 12:46 上午

    本人研究道cpu、道指令纯粹是个人业余爱好。想想看在一个不以技术、专业经验为重的行业里,阿谀奉承之辈横行,技术、专业经验犹如上不了台面的小丑,本人还会以技术、专业经验讨好上级?任何聪明人都不会这样做的,何不利用一技之长,做点改头换面的东西,申报点科研项目、申报点科技奖来的实在。我如此不计名利,全身投入道cpu、道指令之中,所为者不过是一个曾经的软件开发人员未了的心愿罢了。希望各位专家多提点技术意见。

  77. abcdefg 于 2009-09-16 9:27 上午

    1. 你很无聊
    2. 你特别的无聊
    3. 我觉得你真的好无聊
    4. 难道你就不觉的你无聊么
    5. 设计道CPU的人应该用道家思维.
    6. 道家思维应该来自于设计道CPU.
    7. 于是你就开始不停的在毫无道理的循环中衍生着自己.
    8. 直到有一天, 发现这根基就是完全的扯淡.
    9. 或许你会认为你是完全正确的.
    10.但我也可以证明我没错误
    11.而最终结果是什么呢,
    12.或者说道家是什么
    13.神经元是什么
    14.该怎么表示
    15.好搞笑
    16.民科

  78. 陈怀临 于 2009-09-16 9:54 上午

    这就是我担心的问题。贴子一顶,就上首页:-)。这也是我为什么把我写的一些有争议的,——“非技术”讨论——的文章删掉的原因。否则一个评论就顶上来,下去了,一些从网上不知如何search过来的读者加一个评论,又顶上来。这些人都是打一枪就离开了。但是常来的读者就觉得为何成天这些就话题,很无趣。

    黄大师,你在北京吗?我10月份与你见一面。聊聊。你也别回帖了,看在我的份上。

  79. xway 于 2009-10-06 10:46 下午

    有思想,好。但似乎不必固定在“道”或类似的东西上…思想不怕有多远!

  80. Galaxy 于 2009-11-06 2:38 上午

    [原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]->生成信息

    [+,0,0][+,+]->x

    x到底是激活还是抑制?我没看到关于具体计算规则的描述。

    为什么是固定(3+2)x2个输入?为什么激活和抑制要分2条线?

    激活,抑制本来就可以用门电路处理,多输入只是增加了电路本身的复杂度。

    用简单的电路加巨大的数量来搞人工智能,思路对了,但,好像没谈细节。

  81. Galaxy 于 2009-11-06 2:40 上午

    上面写的是:
    [+,0,0][+,+]《-,-,-》《0,-》->x

  82. 黄辉煌 于 2009-11-06 7:00 上午

    to Galaxy:
    1、“x到底是激活还是抑制?”:x是指令结果输出,相当于神经细胞的输出,或逻辑电路的输出。
    2、“为什么是固定(3+2)x2个输入?”:这是排版问题,其实道指令中的“[]”及“《》包含的输入可以任意个数。
    3、“什么激活和抑制要分2条线?”:分成独立的两部分,主要是便于理解,并且可以和神经元机制和基因编码匹配起来,用软件模拟也简单。
    你也看出来了,道指令主要利用大量的内存单元,加上简单可复用的电路来实现对各种计算控制。如果加入复杂的布尔逻辑,会造成cpu设计和软件开发困难。
    具体解释可以参看66楼。

  83. 黄辉煌 于 2009-11-06 7:15 上午

    近段时间来,主要开发临时性和抉择形道指令,碰上很多问题。临时性道指令为当前运行的函数加入临时性道指令,对函数的内部数据进行修改,使得函数可以变现出非确定的行为。抉择形道指令的输出抉择形结果,让外界或用户来选择生成结果。
    这两个新类型的道指令可以让道指令用来编制信息管理系统。

  84. Galaxy 于 2009-11-09 2:28 上午

    我是问,如果用+、-表示激活、抑制,那:
    [+,0,0][+,+]《-,-,-》《0,-》->x
    这个结果x是什么?是得到激活的结果还是得到抑制的结果。

    就是说,是否只要+比-多就得+,反之得-,相等就输出0?

    ——————

    包含的输入可以任意个数

    你讲的是硬件实现,那任意个数的连接方式能用晶体管和铝或铜导线来实现?
    (记得有人说Cell处理器能把不同部分动态设置不同的功能,没具体考据,但好像也没到最小计算单元间的物理连接方式无限。)

    —————-

    使得函数可以变现出非确定的行为。抉择形道指令的输出抉择形结果,让外界或用户来选择生成结果。

    感觉这已经不是从下往上地模仿神经系统了。就是说,这样一来,感觉你说的最小技术单元,就是对应多个而不是一个神经元。

  85. 黄辉煌 于 2009-11-09 7:09 上午

    to galaxy:
    “[+,0,0][+,+]《-,-,-》《0,-》->x”:这个式子不是道指令的形式。
    道指令的涵义:
    [原信息1, 原信息2, 原信息3…]…《 原信息6, 原信息7, 原信息8…》…->生成信息。
    [原信息1=“4643”, 原信息2=原信息19, 原信息3,…]…《原信息6, 原信息7, 原信息8…》…->生成信息。
    式子中的“原信息”都表示信息标记即信息的符号。
    “->”左边所有的标记都是输入,右边就是输出。
    [原信息1, 原信息2, 原信息3…]的意思就是当[...]内要求的输入标记全存在时就输出真值。并输出激活信号。
    [原信息1=“4643”, 原信息2=原信息19, 原信息3,…] 的意思就是当输入标记全存在并等于要求的值就输出真值。
    《原信息6, 原信息7, 原信息8…》的意思就是当《…》内要求的输入标记全存在时就输出真值。并输出抑制信号。
    整个式子只要有一个抑制信号就不输出“-〉”后的“生成信息”。
    所以这跟神经元有点差别,道指令的生成信息是不分激活或抑制的结果,只有在[...]或整合后才有分激活或抑制,并且抑制比激活重要,这相当于把几个类型的神经元集成在一条道指令里。

    关于包含的输入可以任意个数问题:其实真实的硬件不可能做到任意个数,但也没有人会写任意等式个数的道指令,所以综合以下,可以规定20个等式限制或更高个数,主要看硬件的成本,比如用GPU实现时,有几个内核,就可以实现几个等式的道指令。但我实现的模拟器时,直接加一个计数器就可以解决任意个数的问题了。

    关于函数的非确定的行为和抉择形道指令问题,主要是考虑:1、人类大脑思维搜索记忆时,采取如google的云计算技术,几个特征属性值加特征对象,就可以把符合条件的对象找出来,但目前不知道神经元如何实现这个功能,我只好把它设计为另一种道指令;2、人类大脑思维作决定时,不是只有一个选项可选,一般都有几个选项,特别潜意识的选项更多,这时思维肯定按照某种规律选择一个选项,并执行下去,这个功能目前也不知道神经元如何实现,也只好把它设计为另一种道指令。

  86. 黄辉煌 于 2009-11-09 7:24 上午

    其实本人预想:利用道指令全面实现web的整个功能,并且实现现在web所没有的智能功能。
    如能实现,web2.0、web3.0就是小儿科的技术了。
    但靠本人一个人很难做到,如有意此方向者,可尽量与我探讨。E_mail:huang_huihuang@sohu.com.

  87. 黄辉煌 于 2009-11-11 1:40 上午

    道指令到目前为止可以应付大部分的日常诸如数学运算、逻辑运算等功能,但要实现本人所提倡的信息树处理编程能力还不够,还必须对道指令进行简单的扩展。
    信息树处理理论前面已经讲过:信息处理最基本的在于由已知信息事件产生新的信息事件,整个过程构成了信息事件树,汇集成事件信息森林,最后形成信息森林群落。处理信息树的自动产生、存储、分发,就是我们现在倡导的信息树理论的最终目的。有用的信息在于关联程度或在于信息树上的复杂度,即信息的可用度在于新信息的自动产生性,按照科学规律的定义,就是要从这种生生不息的信息树中发现规律,当可利用的信息树的分叉程度越来越高时,所能发现的规律就会越有用。
    按照上述信息处理理论,信息又可以分为自动产生和不可自动产生的类型。自动产生就是通过一些列的数学、逻辑等运算就可以产生出新的信息,而不可自动产生就是不能通过数学、逻辑等运算产生的信息。当道函数内需要很多这种不可自动产生的信息时,道函数实例就会一直等待这些未决的信息,道函数不能通过自身产生这些未决信息,所以它必须等待外界的输入信息。
    有人可能对这种方式很不理解,这里稍微解释一下:当前的计算机程序,大部分是确定性过程,比如一个函数可以从头运行到结束,不管什么情况,结果都一样。那么,程序如何处理不确定性的过程,关键在于函数必须可以跨出自身对不属于自身的信息进行调用,一般的实现就是利用全局数据,全局数据的变化或改变就可以影响函数的运行结果。除了使用全局函数外可以调用另外一个非确定性函数,获得一个关键数据后,函数再决定运行流程,归根结底,也必须有一个非确定性的过程。还有一种最原始解决方式,即调用一个随机过程,取得随机数据,再来决定运行流程。然而目前随机的解决方式,实际上也是调用了一些全局数据,所以我们上述几个解决方式归纳为一个解决方法,即利用全局数据的变化来决定函数的非确定性运行过程。函数穿过自身作用范围调用全局数据,听起来很诡异,比如把整个宇宙比喻成一个函数,宇宙的量子不可测行为及不可理解暗物质现象就会产生如函数调用全局数据的诡异行为出来。宇宙(生活)中很多事务如果按照它规规矩矩般运作,一般结果都能预测出来,有人就会为此高兴或悲伤,但宇宙(生活)并不如此守规矩,就像国人千百年来的传统一样,规矩时刻在被破坏或改变,所以有一句老话:祸兮福之所倚,福兮祸之所伏,高兴或悲伤都是一时的,我们不用太在意。虽然函数调用全局数据可以诡异般地做出非确定的行为来,然而计算机高级语言专家告诉我们,这并不是一种好的行为方式,并且是造成软件项目失败的一种方式。如何较好地解决函数的非确定行为就是道指令及现代计算机语言必须解决的问题。
    现代计算机语言解决非确定函数问题的除上述外方法并不多,目前大多利用事件功能,即函数停下来等待一个事件,再决定运行流程,如windows中的事件消息,C#的yield关键字,这些解决方法虽然提高效率但大都不如全局数据来的直观,所以本文的道指令稍微改造全局数据的表现形式,结合事件的方式,提出一种较好的解决方法,即函数不是“主动”去读全局数据,而是“被动”地改变函数内部数据。
    函数内部数据一般别的函数是不能改变的,一般由自身才能改变,否则会造成函数间极度混乱的调用关系。以宇宙来举一个例子,多重宇宙就像多个函数,多重宇宙间互相交流能量,就会表现出很多诡异特性,比如,粒子的有无相生,能量的无中生有等,从一个宇宙中向另外一个宇宙抛入一个光子,在另外一个宇宙就会突然产生一个光子,或为保持能量守恒,这个宇宙就会向原宇宙抛回一个光子,处在宇宙当中的人就会被这些诡异的特性迷惑,不得不发展很多科学理论来解释这些现象。
    既然要改变函数的内部数据,就必须获得每个函数实例化ID,本文采取以下道函数表达式:
    函数名([Xthis.dfdf,sdfsd,…]《adfd,sdfsd,…》)->Xthis.fdsa=’sfgfsg’。
    Xthis:表示未知的函数实例ID。
    函数名(…)内部的道指令表示满足该道指令的“函数名”函数实例ID,如果该实例ID存在,就运行->后的等式。
    也可以这样理解,道指令运行在两种情况,一种当前已知的函数内,一种临时性被加入在已运行的函数实例内。第二种情况非常难以理解,举一个例子,如有十个人,不知个人品行,我们就临时编出一条道指令:人的道德([Xthis.强奸女性])-> Xthis.自杀,并把这条道指令如魔鬼般临时植入这十个人里,这十个人内部就会按照道指令列出的条件产生出一个虚拟结果,指示某人已满足条件,并运行“->”后的指示,这样世界就太平了。当然以我们目前的科学技术来讲,不可能达到如此的高科技的。
    临时性道指令为当前运行的函数加入临时性指令,对函数的内部数据进行修改,使得函数可以变现出非确定的行为,从而改变道函数“有序安稳”执行的进程。

  88. 厉害 于 2009-11-11 6:31 上午

    楼上的大哥,我对您简直佩服五体投地。 咱这里庙小……

  89. huanghuihuang 于 2010-04-01 8:06 下午

    道cpu模拟器、道指令编译程序终于可以完成了(可以支持数学运算、符号索引、函数实例引用、跨函数数据传送),现在还剩临时性道指令没有测试(还不支持抉择形道指令),其余的都可以完美运行,先上个载图。

  90. ABC 于 2010-04-01 8:57 下午

    黄辉煌同学确实有一股劲在其中,姑且不论成败,单凭一腔热血就是值得肯定的。
    方法论也好,严谨的论证也罢。都是为了保证一个目标能够实现或正确实现。
    试问如果世间万物都在科学范畴之内,是否可以预测未来?是否演算万物呢?至少看来目前不行。既然这样,对待科学还是要保持一种怀疑的态度,科学证实的只能在当前感知范围内有效。
    有些东西是要打破条条框框的,哪怕最后没有成功,对于自己来说也不啻为一种收获。而这种收获也许可以为未来的某个事件提供土壤。
    鼓励原创。支持楼主的工作。

  91. Multithreaded 于 2010-04-01 9:15 下午

    还要开发:

    1。 Linker 把上千万行的程序连起来;
    2。 Debuger 帮助用户调试用;
    3。 Profiler 告诉用户瓶颈口在哪?

    最最重要的是《用户手册》、《语言定义》等。

    感觉你想做的是支持高级语言的直接实现, 像80年代日本的第五代机计划(logic programming (PROLOG machine)), 直接并行执行Horn clause. 不过历史证明无法有效地实现。

    有时间的话多读些ACM ISCA, PLDI, OSDI,PPoPP的文章。否者就自己玩玩吧!

  92. fflover 于 2010-07-26 9:24 上午

    太晦涩的东西,很想认识下panabit同志,08年接触过panabit,一没在意在10年给很多同行出了个杀手锏

  93. Panabit 于 2010-07-26 4:48 下午

    fflover兄,你所说的杀手锏指的是?

  94. 路人 于 2010-10-14 3:19 上午

    楼主能否把你做的道编译器发给我看下!

    呵呵

  95. hu 于 2010-10-14 9:15 下午

    近一段时间,走马观花看了很多书籍,基因、量子、数学群论等,造成脑力消耗太大,思维不足,几乎没有进入以前忘我的状态,但还是坚持思考道指令未来发展,有关计划如下:
    1、开通道指令编程网站,可以在网页上进行编程、编译、运行的网站。
    2、增加动态道指令功能,即在运行时动态增加函数的道指令,与临时形道指令稍微不同,临时形道指令与主动发出指令的函数实例有关,而动态道指令与函数本身有关。
    3、考虑如何在现有的html、xml协议下,创造一种结合道指令的网络协议,可用来编制目前的网络应用,如:邮件、博客、微薄、论坛等。
    4、用道指令编制一种学习中文的应用程序,模拟人类学习语言的过程,最后形成初步的自我思考的智能程序。

  96. huanghuihuang 于 2010-11-03 9:49 上午

    动态道指令作为一种运行时修改程序函数的一种手段,可以代替类定义中的多态。这种多态与类定义稍微不同,它只有运行后才能表现出来,同时他也提供了一种动态定义函数的途径。

    动态道指令与临时形道指令也非常相似,不过临时形道指令对函数的作用范围在调用者生存期内,当调用临时形道指令的函数失去生命周期后,临时形道指令也随之失去作用了。而动态道指令只要调用一次,就会在本进程实例内永久改变被修改的函数,既相当于产生新的函数。以下程序测试动态道指令,并成功运行:

    动态道指令
    {
    maifgn()()
    {
    [dgdfg]->[sfgs=3334,dfda=345];

    [sfgs,dfda]->动态道指令([ttt]->fdgdf=0);
    [sfgs,dfda]->动态道指令([fdgdf]->《346》);
    [sfgs,dfda]->erter;

    [erter]->动态道指令(34)(hhhh);

    [hhhh]->[hhhh,显示结果,结束,dfgdg345,dgdg345];
    }

    动态道指令(ttt)(yyyy)
    {
    }
    }

  97. huanghuihuang 于 2010-11-06 4:34 上午

    道指令的运行方式是采用数据符号生成的办法,即由一系列的符号决定生成或不生成结果符号,那么也应该有生成后再决定不生成的机制。这种机制与宇宙粒子世界的反粒子非常相像,可以把它当成凡符号的生成机制,暂时把它令名为反道指令。反道指令生成的数据是反数据,当反数据与正常数据混合时,就像粒子与反粒子一样,全部消失了。
    反道指令用符号-<表示。

  98. huanghuihuang 于 2010-11-23 7:16 上午

    近日,道指令模拟程序已进成熟,随编两道类似微博好友查找的道指令程序,以检验道指令强大编程功能。
    其一:
    “好友”这个函数在程序开始运行时,“好友”的值就被初始化成9个,数据值被加载。 “好友([xthis.好友="你6"])”测试“好友”函数实例是否有“好友=‘你6’“的

    道指令查找程序
    {
    主程序()()
    {
    [start]->[好友(start)];
    好友([xthis.好友="你6"])->[结果="你6是我的好友",显示结果,结束];
    好友([[xthis.好友]]《xthis.好友=”你6″》)->[结果="你6不是我的好友",显示结果,结束];
    }
    好友(start)
    {
    [start]->[$好友="你1",$好友="你2",$好友="你3",$好友="你4",$好友="你5",$好友="你6",$好友="你7", $好友="你8",$好友="你9"]
    }
    }
    其二:
    程序开始运行时,”好友”函数就被初始化8此,既有8个实例,”好友([xthis.好友="你6"])”查找出其中一个符合要求的实例。

    道指令查找程序另一法
    {
    主程序()()
    {
    [start]->[好友("你1")];
    [start]->[好友("你2")];
    [start]->[好友("你3")];
    [start]->[好友("你3")];
    [start]->[好友("你4")];
    [start]->[好友("你5")];
    [start]->[好友("你6")];
    [start]->[好友("你7")];
    [start]->[好友("你8")];

    好友([xthis.好友="你6"])->[结果="你6是我的好友",显示结果,结束];
    好友([xthis.好友])->[结果="你6不是我的好友",显示结果,结束];
    }
    好友(新好友)
    {
    [新好友]->[$好友=新好友]
    }
    }

    上述两道程序经运行,完全正确。

  99. 陈怀临 于 2010-11-23 7:28 上午

    小黄,我这辈子一定要见你一次。。。否则算白来了。。。

  100. huanghuihuang 于 2010-11-23 7:49 上午

    首席一句话让人倍感温暖,终于有人理解本人十几年研究计算机的苦衷,有机会一定好好向首席讨教。

  101. playmud 于 2010-11-23 10:34 上午

    黄同学:
    时间是顺序的
    人的思维也是顺序的
    包括你的呼吸也是顺序进行的
    如果面向对象一样,他描述上是以对象驱动,但程序还是顺序执行的,你设计并行(我不知道我们对并行的理解是否一样)不知道跟多任务有什么不同。我的看法是只要有上下文关联,就一定是顺序执行的,并行处理是反自然规律的。(多个核)

    你也懂计算机跟编程,我想你把你的设计思想强行套上一个”道“是不明智的,然后还需要去理解这个所谓的“道”,然后理解你的设计思想,你完全可以用现有的计算机术语去描述你的设计思想。

    比现有的计算机架构先进的思想是有很多,我也不认为你一个人在几年内能完成编译器到cpu架构和计算机体系架构的设计,看你挺有恒心的,不如转到一些有意的事情上面来。

    我感觉你是从软及硬的,不知道我猜测是否正确,但我觉得你走偏了。

  102. playmud 于 2010-11-23 10:37 上午

    可能我对多任务和并行的描述不是很清晰,我的看法是:宏观上你可以看成并行的,微观上实际上多任务(多处理流水?)。
    概念上的不统一讨论起来很麻烦。

  103. Multithreaded 于 2010-11-23 10:41 上午

    My comments, don’t reinvent a new vehile.

    Please take a look at the following PROLOG code.
    ————————-
    friend(me, 1) :-!.
    friend(me, 2) :-!.

    friend(me, n) :-!.

    :- friend(me, 6).
    :- yes.

  104. Multithreaded 于 2010-11-23 10:43 上午

    Another concurrent programming language you should study is: ERLANG.

    http://www.erlang.org/

  105. ether 于 2010-11-23 6:33 下午

    要谈并行貌似要先搞清楚可并行化条件吧?如果连这个都不清楚的话,做再多也是浪费时间而已。

  106. ether 于 2010-11-23 6:56 下午

    比现有的计算机架构先进的思想是有很多,我也不认为你一个人在几年内能完成编译器到cpu架构和计算机体系架构的设计,看你挺有恒心的,不如转到一些有意的事情上面来。
    ==
    就算一个人可以完成,而且这个真实划时代的架构,作者也有责任按照同行的说话方式来阐述自己的想法,而不是自己说自己的那一套。

    以同行都能理解的文字传播自己的思想是作者的义务!

  107. Will Chie 于 2010-11-25 4:57 上午

    拜一下这里的巨牛们,
    啥也没看懂的飘过。

  108. huanghuihuang 于 2010-12-09 2:39 上午

    1977年,约翰•巴克斯的图灵奖演讲<程序设计能从冯•诺依曼风格中解放出来吗?程序的函数风格及其代数>讲到新型计算模型和语言,这篇文章非常难懂,但我有点猜测是不是跟道指令想像?如有懂得人请指教。

  109. Panabit 于 2010-12-09 6:31 上午

    我一次次想看懂,但是实在是看不懂,看来的确是“道”行不够!

  110. James 于 2010-12-09 7:53 上午

    量化量化量化.

    建议作者的工作能以 量化 和 图表的方式说明.

  111. lyman 于 2010-12-10 12:34 上午

    跟易经中医搞在一起,不晕才怪。黄同学的想法很好,从目前科技水平来看,是不可能实现了。我理解黄同学是想设计一个具有类似于人脑的智能部件,道CPU。在目前没有一个有效的理论突破状况下,人工智能不会有大的进步。我建议黄同学,先研究研究理论基础,任何重大工业技术的变革和进步,都是有足够的理论来做铺垫的。 个人认为,未来cpu跟部分存储是会融为一体的,大量的cpu互联,共同来进行同一个计算。现在google著名的map/reduce技术,就有点类似的地方。

  112. daseny 于 2010-12-13 8:03 下午

    没看懂。
    我只说一下我知道的并行。
    上面有同学说人的思维也是顺序的,这个从宏观上没错,但是微观上不对,因为人的大脑只有10Hz。人脑可以在0.1s的时间内从两张略微不同的图像中识别出三维场景,微观上顺序的“处理器”如何在一个时钟周期内做到这一点?

  113. S 于 2010-12-13 11:28 下午

    如果那帮老头当年在设计lisp machine时直接把tanach和talmud直接加到论文里面谁会甩他们?犹太社区?绝对标准->哲学思辨->数学模型->形而下(CS,CE),搞学术的拿出后3者来讨论就行,至于你坚信什么xx绝对标准(道,上帝,佛主,xxd,etc)没必要拿出来谈吧

  114. huanghuihuang 于 2010-12-14 12:40 上午

    【我想设计lisp machine的那帮老头如果在他们的文章中祈求上帝保佑犹太人,大家是不会介意的,我在这里借用道也是这个意思】近日苦思道指令生成程序算法,思维几近崩溃。道指令程序可以用动态指令改变自身(指令)算法,或生成动态函数,再调用产生新的算法。这一切如果在本级函数内发生,那么非常容易解决,但如果在生成函数内解决,就很难,相当于程序生成程序生成程序算法。程序生成程序算法的难处是用本程序已知变量初始化生成程序,但程序生成程序生成程序的要用还没初始化的变量初始化将生成的程序,既用未知的变量初始化未知变量。这种嵌套的思想好比人类模拟出一个智能系统,而这个系统还要自己在模拟出一个智能系统。原始程序中没有蕴含生成程序的概念,那么应该也不会产生生成程序。由已知的构造未知容易,由未知的创造未知难。
    在函数内构造动态函数示例:
    带参数动态道指令函数
    {
    maifgn()()
    {
    [start]-> [test(start,8)($testinstan1)]; //用参数8创建一个匿名函数并返回指针
    [start]-> [test(start,5)($testinstan2)];//用参数5创建一个匿名函数并返回指针

    [testinstan1]《hhhhh》-> [&testinstan1(100)($hhhhh)];//用匿名函数指针调用函数。
    [testinstan2]《hhhhh1》-> [&testinstan2(100)($hhhhh1)];//用匿名函数指针调用函数。

    [hhhhh,hhhhh1]->[结束,显示结果];

    }

    test(start,$uu)(return)
    {
    [start]->[$yyyy=(ttt)(yyyy),sfgs,dfda,$uu];//yyyy是匿名函数指针声明。

    [sfgs,dfda]->&yyyy([ttt]->fdgdf=0);//动态加入指令。
    [sfgs,dfda]->&yyyy([fdgdf]->《100*that.uu》);//动态加入指令。

    [sfgs,dfda]->return;
    [return]->《yyyy》;
    }

    }

  115. abc 于 2010-12-15 4:29 上午

    求你了,学点lisp吧。学完你要还好意思宣传这个,那我也不说什么了。

  116. huanghuihuang 于 2010-12-15 6:03 上午

    道指令的动态函数或匿名函数与lisp的内部函数定义过程或lambda相似,也与c#的匿名函数、lambda演算相似,与c语言函数指针也有点相似,但这些概念都是表面上的相似,道指令的动态函数或匿名函数最强大的功能在于当它们被构造完成后,外部调用时还可以用动态指令(或临时形道指令)插入指令,修改动态函数内部指令。本质上道指令程序的所有指令是并行运行的,是无关运行顺序的,所以可以非常灵活的做各种修改指令这种冯偌依曼机器难以做到的事情。那么制造这种邪恶机器到底有什么用途?我也不知道,但我相信人类的大脑更加邪恶,所以道指令一定要发展出比大脑更加邪恶的功能来,那样才可以实现战胜人类大脑的人工智能来。
    另本人不学无术之人,在386、486时代翻遍有关386、486的结构原理、汇编设计、系统设计的书籍,从dos时代以来一直都在搞软件开发,在dos下用c开发过画图程序,图形化菜单系统,任意图形填充程序,粒子随机运动,蚂蚁游戏等程序;在windows89下,用c++开发过各种行业(监督、检测)信息化管理系统,声波采集分析程序,医院内窥镜图像管理系统;在windowsxp下用c#开发过政府行政审批系统,用asp.net+xml开发过网站、办公自动化系统,用c#+xml开发过信息树管理系统,以及的目前道指令编程语言,学习过汇编、c、c++、java、lisp、Prolog、Ruby、xml、xslt、ajax、stl、com、atl等,最爱用c、c++、C#、Xml等。所以abc同学,虽然本人混的不怎样,但真正遇到真枪实弹的地方是不会太差的。

  117. shuyong 于 2010-12-15 6:57 上午

    动态指令,和FORTH的字典式语言颇有些相似。不过这篇大作,看了几次,还是看不懂!

    不管怎样,要想让别人理解道指令,你得用道指令实现某种中等规模的软件,例如,一个画图程序,一个图形widget,让别人理解,评判道指令和现有的编程语言有什么不同,在什么领域可以提高编程效率。最好这个系统是bootstrap的。不行的话,写个道指令到C的编译器也行。计算机系统,是解决我们身边烦不胜烦的问题,而不是让人在探讨哲学时有谈资的。因此实际可以运行的系统最重要。

  118. huang_huihuang 于 2010-12-15 7:23 上午

    简单说一下,道指令就像有限状态转换机或者图灵机的转换规则表中的转换规则,这些规则是不是可以随时动态加入而不影响机器的正常运行?道指令底层功能非常接近c语言,按道理应该可以编制任何功能的软件来,如图形程序、编译器等,但目前我的目标只集中在人工智能、云计算语言领域,所以暂时不考虑如图形程序、编译器等的道指令编程工作。

  119. 陈怀临 于 2010-12-15 7:27 上午

    小黄确实很勤奋。。。创新是很辛苦的,要有精神准备:-)。。。看看Lisp到无妨。。。还挺不错的。一堆小括号编程序,挺clean的。。。

  120. huang_huihuang 于 2010-12-15 8:22 上午

    首席过奖了!其实大家的批评都很对,只是本人心有余而立不足,暂时不能做到引经论据,取得众人的信服,请大家多加原谅。创新确实很难,所以如有这方面特长者,也请多加指点。

  121. abc 于 2010-12-15 9:52 上午

    我也是一个计算机语言设计者,也非学术界人士,民科是也。

    你这个思路(我以为),没踩到重心,像你说的动态插入指令之类,lisp类的语言早已经有成熟的应用,可以这么说,近几十年计算机语言的创新,都能在common lisp庞大的扩展库中找到原型。

    如果是之前说的计算存储合一的硬件机制,那么lisp机这样的硬件平台也可以做到同样的效果,更可怕的是它是有成熟的理论作为基础的。

    大规模的硬件并行,超前的有MIT的可配置异步逻辑自动机这样的项目。

    还有很多可爱的小语种,比如forth,rebol,XL,coq,尤其是面向机器人的一些专用语言,等等,都在很多方向(灵活性,扩展性)上进行了探索,效果也很不错。

    新语言要从几千个都相当不错的候选者中脱颖而出,最关键的是,如何迅速帮助使用者得到生产力。

    我的一个方法是:使用时态语义分析,使得不同的语言(包括机器码)从语义层次上得以互相翻译,混合调用,统一进行管理。

    另外就是语言的抽象力问题,说来话长了。

  122. shuyong 于 2010-12-15 7:40 下午

    赞同楼上的说法。

    每种计算机语言,都是可以清晰地用逻辑,或者说是数学表达出来。每种成功的语言,都是发明者为解决手上棘手的问题而发明出来。因哲学问题而开发出来的可用的语言,没见过。

    其实我们这种IT民工,本身就是很好的语言语义分析和翻译器。为IPHONE,可以学Objective-C,为ANDROID,可以学JAVA,为MEEGO,可以学QT。到什么山头唱什么歌,到什么平台学什么语言,我们就可以把相似的功能用不同的语言实现一遍,或者说翻译一遍。

    前几个月,因为兴趣,学了一下FORTH语言。这语言有意思。但学起来苦恼不已。因为无书可看,无人可问。一堆问题只有靠自己慢慢猜。最后因为没有项目给操练一把,也不知道自己学会没有。这时候才真切感觉到,一个语言的成功,不但要语言本身好,还得要有一堆的代码库和工具支持才行。没有这些,语言是很难发展的。要达到这些目标,是需要靠人力物力堆出来的。

  123. abc 于 2010-12-15 9:23 下午

    我大概是看懂了点,理想上大概是想搞这么个东西。

    有海量的存储兼计算单元,程序的运行从某个单元开始,然后触发很多其他单元,再触发更多的单元,这是一个大规模并行计算的过程。

    问题是,一个单元触发另一些单元的信号需要在一条总线上进行,所以这个思路也压根就做不到想象中的并行。如果要解决就只得加上总线仲裁,一加上之后,单元的逻辑就复杂了,而且总线成了最大的瓶颈。

    对硬件机制没有了解就容易出这种问题,这种并行思路不知道几十年前就有人研究过了,最简单的问题,这种CPU的内存管理怎么做?

  124. huang_huihuang 于 2010-12-15 11:20 下午

    to abc :基本上可以这么理解。对并行的解决方法由于内存串行读取的限制,也只模拟并行去运行,不过由于道指令程序都是由一些小片段道指令组成,可以把这些变量符号加载到极高速缓存中运行,弥补模拟并行的缺陷。真正的并行技术要等到光技术在芯片上的大规模应用,利用光广播、编码技术,同时处理变量符号的并行处理。
    另再次复习一下lisp,个人觉得lisp的开发也不是那么神圣,基本上也是有了一个基本想法(树形表)后再去慢慢扩充,c及c++语言的发展也是这样,同样道理,道指令从变量符号的“阴、阳”、“有、无”属性为基本点,再这个基础上慢慢扩充,这样才能提高壮大。所以我对软件的设计开发思想也一样,从简单着手,再慢慢增加功能,最后形成完善的系统。记得我开发《行政审批系统》时,也是这样,从行政审批最基本的机制入手,再考虑其他附加功能,然后形成完整的系统,开发完成后,再从这个最基本的机制中抽象出信息树管理机制,再从信息树管理机制从抽象出道cpu、道指令,再从道cpu、道指令抽象出云计算、人工智能机制,相信在时间允许的条件下,随着抽象能力的提高,最后必将实现真正的人工大脑。

  125. abc 于 2010-12-15 11:36 下午

    lisp还真不是一般的神,是大神,你太小看了。

    这些年语言的创新很多都是从lisp中早已经有的原型来的,从理论的严谨性到语法的灵活性,lisp一直都是一个标杆。

    要是像你说的条件达到,肯定也比不过lisp机,因为lisp本身就符合大规模并行的条件,更别提无比庞大的代码库了。

    当然到时候lisp机也不一定取胜,一定会有更实用的理论。

    你的意思是现在做不了实用的东向,只是理论,但理论就得有理论的突破,大规模细粒度的并行化算不上什么突破。

  126. abc 于 2010-12-16 12:21 上午

    而且,你可能觉得很有创意的用XML实现语言的方法,我N年以前就用XML写过一个小脚本语言的原型。

    但是,不要以为我很厉害,因为IBM就有过一个家伙完整的构造了用XML定义新语言的方法和规范,用XSLT进行编译,生成java代码,并在某些地方具有实用价值。

    现实是:在创新方面,不论是学术还是应用,很多我们自以为得计的东西,只要肯花时间在网上翻,在学术资料库里面查,都可以找到原型,创新的门槛不是一般的高。

    我搞这个也不是一年两年,很多绞尽脑汁想出来的东西都查到了对应的理论,还好,最近撞车的理论都基本上到90年代的学术论文了,工业界还看不到什么应用,而且他们的论文看下来,也知道实用化的困难在哪里,哪些地方有问题,怎么解决。基本上也能琢磨出点道道了。

  127. huang_huihuang 于 2010-12-16 1:08 上午

    to abc :
    其实很多东西追根溯源下去一定会有相似的东西存在,如相对论讨论的坐标系问题,最早伽利略也讨论过坐标系问题,但爱因斯坦从普遍性出发,搞出了相对论原理,同样道理软件开发也一样,看似一样的东西,当他的前提条件、时间等改变后,肯定会变得与以前不一样。lisp在计算机语言历史上起着非常重要的作用,但具有同样功能的语言为什么还会被发展出来也是这个道理,lisp基于树形表,道指令基于“阴阳、有无”,前提条件改变了,效果肯定不一样。
    另外,有一些东西经常看似很有道理的言论,如函数语言适合并行化操作,理论上很有道理,实现起来很难,要不函数语言早就占领了语言的世界。现在微软的F#也在并行化下了很大功夫,但是难于达到预期目标,并行化不但要在语言上实现,而且要在操作系统上、硬件上去实现,否则一切都是空谈。以多核cpu为例,intel最多开发了1000核,那么时间上也只有真正的1000核在并行,去除不能内存并行,资源独占、通讯管道并行真正在并行运行核心的不知道有几个。
    另外如有可能也把你的想法也拿来让大家看看,提提意见。

  128. abc 于 2010-12-16 1:17 上午

    懒得总结了,这里有一大堆,想看的人挑着看吧。

    http://www.douban.com/people/2977847/notes

  129. 陈怀临 于 2010-12-16 7:21 上午

    程序语义,Formal Methods这方面不是一般的难。。。我碰过CCS和Z一段时间。很有意思,但很难。我看弟兄们就当个hobbyy吧:-)。我很天天惦着把Hoare的CSP的书给做个校注呢。。。没有时间呀。。。另外,国内有CSP的中文版嘛?翻译的质量如何?

  130. abc 于 2010-12-16 7:38 上午

    时态语义更有前途些。所谓的难点实际上是在非确定输入时程序性质的证明,跟搞机器证明的难度等价。

    实用产品完全可以绕开这一点,吊死在这棵树上真划不来。

    Hoare也是20年来一直在琢磨他的“统一编程理论”,自称也是业余爱好。连John McCarthy这两年还念念不忘他的elephant2000编程语言。

    江山如此多娇,呵呵

  131. huang_huihuang 于 2011-01-17 6:31 下午

    经过几日辛苦开发,终于把符号定义开发完成了。
    符号定义类似java语言中的元类的定义,即对每个类的实例提取typeof信息后再操作。在人类自然语言中,大脑自动为词语建立定义,然后根据定义组成语句,道指令的符号定义的用法也类似这种方法。符号定义在符号里增加了定义,在程序运行时可以抽取符号的定义进行操作,这与对象编程的类定义有很大的不同。对象编程最大的好处是解决程序复用问题,在运行时对象的本质已经改变了,如真正的对象应该是并行存在运行的,但目前的语言很难做到。

    具体示例如下:

    符号定义1
    {
    main()()
    {
    [开始]->[人是不是有头()($头,$yes),实例已初始化];

    人是不是有头([实例已初始化])->[xthis.人::无道,$实例指针=xthis.this];

    //在临时性道函数内生成‘人::无道’的人,xthis是指未知的‘人是不是有头’函数实例,‘$实例指针’主要测试符号变量有没有正确赋值。

    [头,yes]->[结束,显示结果];
    }

    人是不是有头()(头,yes)
    {
    [::人]->《头,yes》;
    }
    经测试运行正常。

  132. 冬瓜头 于 2011-01-17 7:35 下午

    我个菜鸟,实在不懂代码,只记得黄老兄的一句话“就一条指令”就够了,印象深刻。呵呵,支持黄兄的探索,期待能创造奇迹!

  133. huang_huihuang 于 2011-01-18 12:24 上午

    感谢支持!
    道指令语法已基本接近完善,我将择机发布网络编译器,到时请各位批评指正。

  134. huanghuihuang 于 2011-02-22 5:02 上午

    近日在(www.csdn.net)上看到一则新闻,思路与道指令相近,现摘录如下:
    马里兰大学的一位研究人员在1月份出版的美国计算机协会的旗舰级通讯刊物上称,为了有效使用多核处理器,IT业需要彻底反思它已使用了50多年的基本计算机体系结构。

    马里兰大学高级计算机研究所教授Uzi Vishkin在论文中称:“近期从单处理器计算机系统向多处理器平行系统的大规模迁移,要求对建立新系统并为之编程的计算机科学的许多方面进行彻底改造。”

    Vishkin甚至提供了一份新体系结构抽象图,他称之为ICE(即时并行执行),他利用美国国家科学基金会提供的资金开发出了ICE。

    我们今天所使用的基本计算机体系结构是基于二十世纪四十年代数据学John von Neumann提出的概念的。在他的体系结构中,数据和程序存储于计算机内存并被馈送给计算机的CPU。程序通过使用程序计数器执行,这就为CPU提供了内存当中下一个将执行的指令的地址。

    这种方法允许进行Vishkin所称的串行计算,在这种设计当中,“在串行程序里可供执行的任何单个指令可以立即执行。”

    但是,它却是受限制的,因为它一次只允许执行单个指令。Vishkin称,在多核处理器和拥有大量可用内存的时代,不再需要这种限制了。取而代之的是,多个指令通常可以更快地平行执行–所有指令都同时执行且只需一个步骤。

    Vishkin的替代方法不同于von Neumann体系结构,它允许在任何指定的时间执行无数个指令,这样可以极大地简化程序员的工作。他说,有了ICE,“你可想象任何数量的指令,只要某个指令的输入不是另一个指令的输出。”程序员不再需要担心有多少处理器可供该项任务使用。

    Vishkin表示,这种体系结构要求改变硬件设计。至于操作方式,芯片可能需要在处理器和内存之间建立高带宽、低延迟的网络。硬件需要一个单处理器核来控制其他所有核。如果代码是串行的,它可以在那个核上执行。如果有其他指令,中央处理器可以向其他核发送其他指令。

    Vishkin拥有这项技术的6项专利,研究小组也建立了可以在ICE抽象体系结构上运行的原型硬件。(老冯/译)

    不知这个马里兰大学高级计算机研究所教授Uzi Vishkin是谁,兄弟们如有认识的,请转告一下,在遥远的中国,也早有人在研究全并行指令,并请他有空指导一下中国知音。

  135. kevin 于 2011-02-22 10:26 上午

    http://www.ece.umd.edu/meet/faculty/vishkin.php3

    anyway,不要对学术界的新闻太激动。。。

  136. James 于 2011-02-22 2:11 下午

    Huang,

    paper 在这里, download下来读读贝.

    http://www.umiacs.umd.edu/users/vishkin/XMT/cacm2010.pdf

  137. 理客 于 2011-02-22 2:15 下午

    黄道长远比土大师实在,希望能有所获

  138. ABC 于 2011-02-24 5:34 下午

    根据态度判断内容价值,可笑得很。

  139. 弯曲不用注册么? 于 2011-02-26 3:02 上午

    不太明白。什么是智能?智能和科学什么关系?

  140. huanghuihuang 于 2011-02-27 6:52 上午

    本人近段时间全力开发动态条件道指令、动态结果道指令,即:sfgs[[wfwe,wrfwe,weew] ->[~wfwe]] ,含义:函数sfgs道指令中具有[wfwe,wrf,weew]前置道指令被动态删除wfwe条件,只要[wrf,weew]就可以了。sfgs[[wfwe,wrf,weew]->[^esf]]含义:函数sfgs道指令中具有[wfwe,wrf,weew]前置道指令被动态增加esf条件,变为[wfwe,wrf,weew,esf]条件。sfgs《[wfwe,wrfwe,weew] ->[~er]]》,含义:函数sfgs道指令中具有[wfwe,wrf,weew]前置道指令被动态删除er结果. sfgs《[wfwe,wrf,weew]->[^esf]》。含义:函数sfgs道指令中具有[wfwe,wrf,weew]前置道指令被动态增加esf结果。动态条件道指令、动态结果道指令相当于DNA的基因在工作时,可以根据实际情况修改DNA编码,然后遗传下去。其实可以仔细规划动态道指令,也可以做到动态条件道指令、动态结果道指令的功能,但实现起来比较麻烦,动态条件道指令、动态结果道指令可以实现很多的微调功能。这种微调可以实现如机器学习、遗传等.
    上次看到的马里兰大学高级计算机研究所教授Uzi Vishkin的ICE(即时并行执行),经过仔细研究他的论文,觉得与道指令还是有点不一样的,虽然都是全并行指令,在处理方式上,ICE还是偏重于相同的任务,实现起来非常复杂,而道指令只要两块内存,一块存道指令,一块存符号数据就可以了,虽然效能不是很高,但很容易实现。

  141. huanghuihuang 于 2011-05-06 10:18 上午

    近半年来的努力终于得到回报,动态条件道指令在此时此刻第一次能够正确运行,心情特别激动,留下一下代码以作纪念:
    动态条件结果道指令
    {
    maifgn()()
    {

    [start]->[test([test1,test2]->《666》)];
    [start]->[test1,test2];

    [test1,test2]->[test(test1,test2)($hhhhh1)];

    [hhhhh1]《end》->[test([[test1,test2]->[test3]]),test11,test12,test13,$end];

    [test11,test12,test13]->[test(test11,test12)($hhhhh2)];
    [test11,test12,test13]->[test(test11,test12,test13)($hhhhh3)];

    [hhhhh1,hhhhh3]->[结束,显示结果];

    }

    test(test1,test2,test3)(return)
    {
    }

    }

    运行结果:
    hhhhh1 666
    hhhhh3 666
    结束
    end
    显示结果

  142. huanghuihuang 于 2012-03-14 6:29 下午

    【目睹在网络上开骂,深感痛恨。做技术说到底,都是资本的奴隶、资本家的走狗。两个奴隶和走狗在为技术大打起来,让有钱人看戏,这都是为取得主子的欢心,而忘了阶级的压迫,让亲则痛,仇者快,以后不再关注此类话题。】一年前,兴奋地写下动态结果道指令时,忘了写解释,估计很多人甚是迷茫,以为本道人又道性大发了,幸好前段又花时间研究一下道指令代码,把忘记了的东西又陆陆续续记回来了。现解释如下:

    test(test1,test2,test3)(return)
    这是一个空代码的函数,仅像c函数声明一下,对代码没有任何影响。

    [start]->[test([test1,test2]->《666》)];
    这是一条动态道指令,既在test函数里无条件加入道指令“[test1,test2]->《666》)”,此条指令含义是当test1和test2符号同时出现时,函数返回666这个数值。

    [start]->[test1,test2];
    生成test1和test2符号。

    [test1,test2]->[test(test1,test2)($hhhhh1)];
    当test1和test2同时出现时调用test函数,
    并把函数返回值存到hhhhh1做无限存储。

    [hhhhh1]《end》->[test([[test1,test2]->[test3]]),test11,test12,test13,$end];

    当hhhhh1有而end没有时,调用test的动态结果道指令“[test1,test2]->[test3]”,既找到条件为[test1,test2]的指令,并把test3符号作为条件加入到此条指令[test1,test2]中,变为[test1,test2,test3]。

    [test11,test12,test13]->[test(test11,test12)($hhhhh2)];
    [test11,test12,test13]->[test(test11,test12,test13)($hhhhh3)];

    因为test函数的指令已经被修改,
    所以第一条不能生成,而第二条可以生成,结果hhhhh3被产生,

    运行结果
    hhhhh1 666
    hhhhh3 666

    符合本程序的预期结果。

  143. 陈怀临 于 2012-03-14 7:00 下午

    黄道长,你,你,你,。。。自己找事:-)。同学们,把注意力转移吧。黄道长又出山了:-)

  144. Eety 于 2012-03-15 2:18 上午

    MD,杀死偶好多脑细胞,愣没明白到底是什么东东。
    油菜。游戏。

  145. matrixOS 于 2012-03-16 5:12 上午

    想法和思路实在太难理解了,完全没有看明白

  146. dew 于 2012-03-16 5:35 下午

    145楼的 你得跟楼主学下 你们本质上都是做一类东西的 但你整那什么操作系统包装的太差 太容易让人看懂了 所以被批的狗血喷头 楼主这个一般人看不懂 隐避性好多了 随然也是谁都知道这是扯蛋的东西 但没证据

  147. kevint 于 2012-03-16 7:52 下午

    当年黄道长也是被批的狗血淋头吧。不过人家没用马甲这种下三滥的手法

  148. multithreaded 于 2012-03-17 9:08 上午

    黄道长好像对PROLOG没有做深入的研究。你的那个例子也就是几行PROLOG语句:-)

    随便说一句,开发一个语言的解释器(Interpreter)的难度是1的话,开发一个编译器的难度就是10了。 任何一个研究新语言的人一定要回答这个问题:

    Where the compiler of my so so language?

  149. multithreaded 于 2012-03-17 9:08 上午

    Last question is:

    Where is the compiler of my so so language?

  150. huanghuihuang 于 2012-03-17 10:16 下午

    本人对PROLOG语言确实研究不多,只知道他是一种逻辑处理语言,可用于人工智能编程,语义采用深度搜索实现。因为道指令语言的定位也是人工处理,所以语言上也会跟PROLOG语言类似,比如规则定义,搜索等。但有些地方会不一样,如动态实时修改规则,这点PROLOG应该没有。虽然所有动态都可以做到支持匿名函数,但程序写起来非常不直观,道指令干脆直接修改指令,这样不是很方便吗!
    我不知道"Where is the compiler of my so so language"的确切涵义,但我说明如下:道指令是一种编译语言,而非解释型语言,道指令被程序被编译后,数据全部存储在sql数据库上,而模拟器干脆就是一段cql存储过程,非常容易调试和实时监视运行过程,并且只要有支持sql的地方都可以运行道指令语言。
    具体运行实例都可以看我的博客http://blog.csdn.net/huanghuihuang。
    目前本人在构思可思维大脑,希望各位有空指点一下。

  151. multithreaded 于 2012-03-18 1:03 上午

    1. Prolog has assert that can dynamically add new rules;

    2. No compiler uses a database to store the executable. Based on what you described you have only an interpreter.
    That is good to have a fun by yourself. It is a long way to make it practical usage.

  152. huanghuihuang 于 2012-03-19 2:43 上午

    1、Prolog has assert that can dynamically add new rules;
    Prolog 可以动态增加规则,道指令可以动态实时增加、修改、删除规则,功能上道指令比较强。
    2、 No compiler uses a database to store the executable. Based on what you described you have only an interpreter.
    我现在在数据库做模拟器,只是为节省时间和开发方便,不见得就不能直接编译成一个可执行文件,我现在就有一个思法,就是把每条道指令替换成c或c++语句,同样可以编译成一个可执行文件,只是这样做以后,道程序之间扩展性太差了。
    3、That is good to have a fun by yourself. It is a long way to make it practical usage.
    大家如果连一个改造程序语言的思想都没有,那开发程序还有什么乐趣可言,纯粹是一个代码民工。不做不知乐趣,做了才知道其中奥妙。

  153. multithreaded 于 2012-03-19 9:16 下午

    http://en.wikipedia.org/wiki/Warren_abstract_machine

    Please understand Warren Abstract Machine and then talk about your idea.

  154. huanghuihuang 于 2012-03-21 7:05 上午

    受multithreaded启发,再次研究prolog,有新的收获。道指令与prolog运行方式实质上是不一样的,prolog偏向于类似数据库的查询方式,道指令类似根据数据之间关系进行相关处理,这种关系必须有数据实例时才能发生作用,而且关系满足时,就产生一系列结果。比如要判断一些参数数值是否满足一定等式,道指令只要一条指令就可以了,而prolog就必须建立一些规则,还有如符号的有无,既规则里有,但实际上却没有,我不知道prolog如何处理。但prolog也有很多优点,如处理查询规则很方便,这启发本人干脆也把这种查询规则加入到道指令里,其实这功能可以就在动态道指令的基础上完成,所以在此增加一种类型的道指令:查询道指令。
    感谢multithreaded的批评,在各位批评下,本人才有开发道指令的动力,并让道指令发展完善。

  155. prife 于 2012-03-22 9:30 上午

    不知道是不是上学上傻了,反正自从决定做码农以后,我就觉得自己越发的低级趣味。不读/编码,又不想看书的时候,只好在网上看一些帖子放松。后来在不知道怎么回事search到弯曲来,看过一些文章,觉得非常不错。所以就常来看看。不过后来我发现,弯曲还有一些娱乐帖子。看完之后云里雾里不知所云。。 可见弯曲真是居家旅行,杀人越货的必备网站啊。

  156. oj 于 2012-03-22 5:07 下午

    @道长:虽然大家没搞明白您的思想原理,但我还是有个建议,为何不把您的一些验证过程,设计工作放到网上,让更多的人去了解,去参与。这也算是推广您思想的一种方式,也是利用集体力量、集体智慧的思路。要不然就像您花了半年时间,“动态条件道指令在此时此刻第一次能够正确运行”,照这个进度,我们大家伙可能很担心在有生之年能不能见到您说的这个东西问世。如果哪天您要是生病或者被别的事耽搁了,这不也让我们着急嘛,要是组成了一个团体,那不好多了吗?

  157. huanghuihuang 于 2012-03-22 9:12 下午

    楼上的话很实在,本人确实早就有这个想法。其实我真实构想和想法都已经公布在网上了,有心人应该可以根据这些想法能够开发出另一版本的道指令模拟器和可运行的编译器,也有可能道指令的思想已经用在他的软件上了。但是国内很多利用开源软件的公司或个人开发出商业软件后,一般都没有公开修改的源代码得习惯,这对开源非常不利,对软件的进程是一个阻碍。所以我想如果我把道指令公开后,能够得到的帮助预料之中应该不会有。
    因此即使要公开源代码之类的,我想不如集中一些真正的智能思想爱好者,形成可信赖的团体,进行开发维护,才能取得真正的进步。

  158. geek42 于 2012-03-25 3:07 上午

    这个所谓阴和阳不就是0和1的别称而已

    折腾人么

    看了他那几个代码示范 操纵栈什么的跟forth思想不是很接近么

    我也喜欢中国古代的一些东西,可是没这么扯的用起来的

    这个人最大的毛病就是认为信息技术里那些名词 术语什么的都是英文写的,所以就是外国人控制的,要搞起我国的技术来,就得把这些符号全替换一遍,纯扯淡

    那数学里那么多公式,阿拉伯数字你怎么不去替换掉呢

  159. huanghuihuang 于 2012-03-27 6:49 下午

    楼上严重误解本人的意思了。
    1、道指令没有跟普通cpu“栈”一样的功能。
    2、我没有“这些符号全替换一遍”这个意思。道指令是无关键字的语言,可以任何字符,如英文,中文都可,没有特别指定关键字符。
    3、“阴和阳不就是0和1别称”这句话不准确,0和1只是数字,110011,对人来说也是数字,但数可以表现各种关系,而阴阳只是数的外在关系的一种,如用1表示人,用0表示非人,但“阴”却不能表现人,“阳”不能表示非人。
    阴阳只是数的关系,如用数字来表示将会引起更大的误解。

  160. anonym 于 2012-03-28 8:04 上午

    黄道长把生物和物理都理解得过于简单了, 以在下愚见, 您好像没有什么生物或者物理方面的专业背景.
    又详细的看了看你的文章, 大部分内容都是空谈.
    涉及到所谓’道语言’的部分, 好像只是高级语言语法上的改进, 真正涉及到相同功能的程序的实现时, 底层好像没有什么本质的区别啊?
    所谓智能, 那差得更远了吧?

  161. huanghuihuang 于 2012-03-28 8:42 下午

    不知楼上从哪里看出本道人没有什么生物或者物理方面的专业背景,好像开发cpu、语言要用到量子力学、相对论、DNA、基因等技术,没有生物或者物理专业知识就是空谈了。
    目前由于本人时间所限,用道指令只编过短短的几个程序用来测试、调试等,大家较熟悉的就是自然数的连乘,其他的程序我估计很多人根本就不理解了,更不用说要看出底层实现。
    道指令道cpu的底层与普通cpu非常不同,没有顺序的指令,所有道指令逻辑意义上是并行运行的,每个函数调用与初始化类产生对象实例一样,每个函数内的数据都在自动产生与消失。
    不知楼上有没有看出上面道cpu的底层运行机制,这种机制与常用的cpu底层是否一样?
    如果没有理解道cpu底层,基于错误理解而产生的结论都是错误的。

  162. anonym 于 2012-03-29 3:26 上午

    @huanghuihuang
    专业背景是指正规而系统的理论学习. 在某方面的专业知识背景, 至少意味在常规教育体系下完成了该专业的本科学位学习.
    诚然, 开发cpu或者道指令和理论生物或者物理没有多少联系, 但是您文章中提及生物物理什么的内容不少, 但是并不准确和专业, 用意不明.
    “道指令道cpu的底层与普通cpu非常不同,没有顺序的指令,所有道指令逻辑意义上是并行运行的,每个函数调用与初始化类产生对象实例一样,每个函数内的数据都在自动产生与消失。”
    您指的”道指令道cpu的底层”是哪个底层? 我指的底层是架构底层, 您的道cpu将会是什么架构? 您能大量地简化底层逻辑结构而实现相同的功能? 您说现有cpu结构太复杂, 那您的道cpu会有哪些结构? 嫌ALU之流复杂您会把它删了? 以上这些, 本人资质愚钝, 还真没有看出来.
    您通篇描述的道指令和函数已经是高层意义上的实现了. 面向对象的语言和流程式的语言, 实质上没有什么区别. 道指令也是如此. 愚以为, 道指令如果能真正开发出来, 最大的创新也许是相对减少程序员的工作量.

  163. huanghuihuang 于 2012-03-29 7:01 上午

    按照阁下的标准,我想问一下阁下是否本科学过生物、物理、计算机之类的,否则你的见解评论也是不专业了,争论下去就没有意义了。
    我在文中提到的有关生物的知识也只有dna、基因、神经元等,不论现在的知识爆炸时代,dna、基因、神经元都是至少中学时代必会的科普知识,每一个理科学生如果对这些知识还有不懂的话,那不是比文科还差吗!
    再者科学是建立在精确的语言之上的,阁下只一句不准确、不专业的评论,只是暗暗给人扣帽子,显示阁下不专业了。
    道cpu的底层我很早以前就论述过了,基本上只要用内存cpu就可实现了,这种东西只可意会不可言传,要理解就靠个人的科学素养了。
    目前的对象语言与过程式语言基本没有差别,因为他们都是建立在顺序执行的逻辑之上,但道指令已经是全并行的执行逻辑,这对程序设计而言,简直就是天差地别。

  164. kevint 于 2012-03-29 10:26 上午

    民科的特点就是拒绝用现代科学的理论方法去研究问题。喜欢自成一套,越玄越好。

  165. huanghuihuang 于 2012-03-29 6:35 下午

    我要是把《道cpu、道指令、道编程基本原理》改为《基于布尔逻辑代数的编程原理》,估计许多人就有点概念了,但潜意识照样还是产生反对意见:现在的编程语言都这么好用,干嘛还搞语言开发,布尔逻辑代数太底层,没有c语言好用…等等之类的。
    科学研究的本质就是从客观事实中发现问题,解决问题,这里面没有民科和官科的说法,只要按照客观事实办事,你就是科学研究。
    本人提出的全并行指令,虽目前的硬件技术没有办法制造出来,但可以用软件模拟手段模拟出来,然后在这个基础上开发编程语言。
    以前的民科很会想象,诸如永动机,反相对论、中医、八卦的,这些东西都没有办法用软件开发出来,他们也只有纸面或口头的东西,跟软件开发相差太远了。
    软件开发的实用性很强,只要你用想法,用软件开发出来,实现了你的功能,这软件就是的思想结果,跟民科拿纸面或口头蒙人的东西不可对比。

  166. shuyong 于 2012-03-29 7:18 下午

    也许你把名字改为“基于布尔逻辑代数的编程原理”,把你的思路按照逻辑代数的方法表达出来,那么大多数人才能理解。这时候的反对,是在理解基础上的反对;评判,也是在理解之上的评判。而不是像现在这样虚虚玄玄,没有他人能理解。那么他人也只能根据当下的常识来判断了,评价自然不会高。

    再次努力进入你的思路而失败之后的感想。

  167. kevint 于 2012-03-29 7:21 下午

    努力看完前面一半及你对硬件系统的认识,实在是认为不值一驳
    好在你这东西不像汉编,IPV9一样危害社会,当个兴趣爱好研究研究罢了

  168. huanghuihuang 于 2012-03-29 8:35 下午

    to shuyong :
    《道cpu、道指令、道编程基本原理》利用《道德经》思想以前已经解释过了,原因:1、这是对诸如汉编、易语言、八卦语言等利用中国文化来美化、宣扬中文编程的优越性的一种讽刺,用中国文化如果还只停留在汉化或口头上,无疑都是骗子。既然要中国文化,那么我就用《道德经》《易经》等来尝试,不是那种汉化或口头上的宣扬,而是要毫无破绽的结合现代科学,这样才是真正的宣扬中国文化。2、我在这里宣扬一下古代文化具有现实意义。

    关于布尔逻辑代数解释,很早以前也解释过了,一条道指令就是一条布尔逻辑等式,可能很多人没有仔细看或者只是找一些反驳的文字,没有领会罢了。

    好像kevint 心里已经有点怀疑道指令会不会产生社会危害,把道指令列为汉编,IPV9之流,然后估计一下可能不会产生危害,可以当做兴趣爱好研究研究,我想这是潜意识的反应。国人坑蒙拐骗的现象太多,把外国人的东西拿来后,惯于国产自创、自有等,然后大势骗纳税人的钱。我先申明一下,《道cpu、道指令、道编程》都是本人业余开发,没有拿过谁的一分钱,没有参考过谁的代码,没有仿造过别人的思想,完全是本人自创、自有,根本不会产生任何危害,危害的也只是本人的时间、精力。本人把道指令拿到这里讨论,主要是向各位学习,希望各位提点好的建议,完善道指令,早日完善、我早日公开拿出来公用,这对大家都有好处。

  169. ticat 于 2012-03-29 11:56 下午

    既然黄大仙昨天刚刚把这个帖子顶起来了,我就趁机也出来说几句,希望首席不要见怪。

    前几个星期参加一个码农聚会,遇到一个在国企工作师弟。几年不见以后,他给我的感觉和lz挺像的。
    聚会上大家都要讲点什么,这个师弟也不例外。他宣讲的题目是“抛开你的成见、认识你的直觉”,而内容则是一些智力题。

    今天看到lz的大作瞬间这股熟悉的感觉就出来了。共同点不过8个字:“摆大排场,做小事情” ,而已。

  170. anonym 于 2012-03-30 2:27 上午

    @huanghuihuang 于 2012-03-29 7:01 上午
    好, 既然您论述的生物物理是科普, 那我们抛去不谈.
    1.”道cpu的底层我很早以前就论述过了,基本上只要用内存cpu就可实现了”
    这篇文章里好像没有具体论述, 如果您以前的文章有过论述, 请给个出处?
    内存cpu是什么东西??
    2. “道指令已经是全并行的执行逻辑”
    在cpu层您如何实现并行执行???

  171. anonym 于 2012-03-30 2:35 上午

    @huanghuihuang 于 2012-03-29 6:35 下午
    3.”目前的硬件技术没有办法制造出来”
    制造工艺之类尚且不论, 您的道cpu有详细的设计图么??
    @huanghuihuang 于 2012-03-29 8:35 下午
    4.”一条道指令就是一条布尔逻辑等式”
    您的道cpu真先进, 可以在cpu层面上直接执行布尔逻辑等式!!!

  172. huanghuihuang 于 2012-03-30 9:32 上午

    我简单我答一下这几个问题:
    1、文章有两节论述内存cpu的结构。
    2、对于没有数学运算的道指令,按照内存cpu设计方法,扫瞄一遍内存就相当于全部指令同时执行一次。有数学运算的道指令,就必须在内存单元中集成alu,非常复杂,但也是扫瞄一遍内存就相当于全部指令同时执行一次。
    3、如上,简单的可以用内存实现,复杂的就要添加很多结构。
    4、内存中,一次简单的取值就是一次布尔逻辑运算,利用充足的内存当然就能执行布尔逻辑等式了,这没有什么奇怪的。

  173. anonym 于 2012-03-30 10:34 上午

    @huanghuihuang 于 2012-03-30 9:32 上午
    别老是绕弯子.
    您根本无法直接回答我上面的问题. 您文章中的论述不明不白, 不清不楚.
    好, 我换个方式来问:
    1. 道指令既然只有一条, 那么您究竟定义”道指令”为逻辑结构, 还是其他什么东西? 请准确定义.
    2. 道系统中的信息是如何存储和执行的? 您不喜欢用1, 0表示可以, 但实质是什么呢?? 电位高低? 还是其他您的创造发明??
    3. 道指令您如何定义? 请给出精确的定义.
    4. 道指令和道函数究竟是什么关系? 是cpu指令和高级语言的关系? 是cpu和汇编语言的关系? 还是它们就是一回事??
    5. 您宣称没有计算, 您如何定义”计算”一词?? [:…:]=> [:…:];为何不是计算?
    以您自己给出的例子为例:
    f(n)(result)

    {

    [n=1]->;

    [n]->$oldn=n;

    [n]->f(n-1)(fresult);

    [fresult]->;

    [fresult]->[~oldn,~this,~oldthis];

    }
    上面这个函数, 写好以后, 解释器编译器在哪里???
    如何执行??? 您能解释清楚么???

  174. huanghuihuang 于 2012-03-30 6:43 下午

    看来楼上这个朋友道行不够,不过本道人也不会介意,我还是简单回复一下:
    1、那么您究竟定义”道指令”为逻辑结构, 还是其他什么东西?
    有关道指令与布尔逻辑我再引用以前的解释(在64楼、65楼):
    [原信息1, 原信息2, 原信息3…]…《 原信息6, 原信息7, 原信息8…》…->生成信息。
    [原信息1=“4643”, 原信息2=原信息19, 原信息3,…]…《 原信息6, 原信息7, 原信息8…》…->生成信息。
    式子中的“原信息”都表示信息标记即信息的符号。
    “->”左边所有的标记都是输入,右边就是输出。
    [原信息1, 原信息2, 原信息3…]的意思就是当[...]内要求的输入标记全存在时就输出真值,。
    [原信息1=“4643”, 原信息2=原信息19, 原信息3,…] 的意思就是当输入标记全存在并等于要求的值就输出真值。
    《原信息6, 原信息7, 原信息8…》的意思就是当《…》内要求的输入标记全存在时就输出假值,。
    整个式子的真值由对应的布尔等式:
    ((ABC..)∪(…..) ∪…)∩!(EFG…) ∩!(…) ∩…决定,当式子为真时,输出右边的符号(也可以带值输出)。
    2、道系统中的信息是如何存储和执行的? 您不喜欢用1, 0表示可以, 但实质是什么呢?? 电位高低? 还是其他您的创造发明??
    一个逻辑系统的实现与它用什么进制无关,比如图灵机,图灵机用纸带工作,在纸带上它可以用任意符号。道系统也一样,同样可以再纸面上做运算,关键是只要能够把纸带上的符号分辨出来就可以了。如果用芯片来实现,当然所有符号都用二进制标记就可以了,不必在发明其他进制。
    3、道指令您如何定义? 请给出精确的定义.
    参考第一条,不在重复。
    4、道指令和道函数究竟是什么关系? 是cpu指令和高级语言的关系? 是cpu和汇编语言的关系? 还是它们就是一回事??
    道函数是道指令的运行实例,所有的道指令必须被包装在道函数实例内运行,如c语言和函数关系基本一样。
    5、 您宣称没有计算, 您如何定义”计算”一词?? [:…:]=> [:…:];为何不是计算?
    我定义的计算是狭义的,既数字的数学运算。没有计算,这句话意思是不一定用硬件实现数学运算单元,只用最基本、最简单的道指令也可实现这些数学运算。
    [:…:]-> [:…:];这条指令用到的只有符号的对比、赋值,没有任何数学运算。
    6、上面这个函数, 写好以后, 解释器编译器在哪???如何执行??? 您能解释清楚么???
    道程序被道指令编译器编译成为由很多数据表格组成的数据库中的数据记录,运行时,再由模拟器取出这些数据进行模拟(我的微博里已经列出了这些数据表格,大概有上百个数据表格,非常复杂,如果转化为c或c++的话,大概也要这么多的数据结构,但虽然数据结构庞大,模拟器却非常简单,仅由是循环、对比、赋值等运算,没有大量代码连接http://weibo.com/1490696807/y7a2A6ZQR)。

  175. kevint 于 2012-03-30 6:54 下午

    早日康复

  176. anonym 于 2012-03-30 7:29 下午

    @huanghuihuang 于 2012-03-30 6:43 下午
    很好, 根据您的回复, 我的理解是:
    1. 您所谓的道指令可以算做逻辑结构, 但是和你文章中所标榜的道指令只有一条是自相矛盾的.
    2. 逻辑系统的实现的确与进制无关. 但是现代计算机设计中不是一个简单的用二进制标记的问题. 采用二进制设计的原因你知道么??
    3. 任何的逻辑系统都有严谨的定义. 如同intel有x86指令集一样. 请问您的道指令集呢?? 只有高级语言的寥寥几个简单例子也好意思到处吹嘘???
    4. “所有的道指令必须被包装在道函数实例内运行, 如c语言和函数关系基本一样。”
    很抱歉的告诉您, c语言唯一必须的函数是main, 但是这是用来告诉编译器程序的起始点的, 并非”必须”包装在里面才能执行.
    5. 再一次很抱歉的告诉您, cpu运算指的就是逻辑运算, 而非数学运算! 最底层有哪些门来着? 哪几个是基础的? 和n, p有什么关系? 复杂的门如何实现? 您还没学到这里来吧?
    “最基本、最简单的道指令也可实现这些数学运算”, 您的道指令可真够牛叉的!
    “[:…:]-> [:…:];这条指令用到的只有符号的对比、赋值,没有任何数学运算。”
    对比, 赋值都不是数学运算了, 您的对比如何比? 您赋的值哪里来的?? 这是数学领域新开创的黄式分枝吧!
    6. 我从来不用微博, 因此看不了你的数据记录.
    但是根据您宣称的来看, “道程序被道指令编译器编译成为由很多数据表格组成的数据库中的数据记录”, 显而易见, 您的道指令在您所谓的编译过程中就已经被执行了! 所谓的编译后的道程序只是最后一步: 比较输入并提取相应结果. 结果是机器资源的大量浪费! 没有任何实际应用的价值!

  177. anonym 于 2012-03-30 7:37 下午

    @huanghuihuang
    最后说一句, 您要是不心虚的话, 不妨把您所谓的道指令的模拟程序开源发出来给大家看看, 模拟环境和语言不限.
    是牛是马, 拉出来看看才清楚.

  178. beans 于 2012-03-30 8:49 下午

    牛皮不破的最基本原则就是只吹牛,不拿真东西出来.~

  179. huanghuihuang 于 2012-03-30 9:08 下午

    1. 您所谓的道指令可以算做逻辑结构, 但是和你文章中所标榜的道指令只有一条是自相矛盾的.
    如果逻辑结构的意思特指与硬件结构相对应的话,那么逻辑结构主要用于模拟器的设计,当然要分解成很多步骤,但如用行列式内存设计的话,也只是一条指令。
    2. 逻辑系统的实现的确与进制无关. 但是现代计算机设计中不是一个简单的用二进制标记的问题. 采用二进制设计的原因你知道么??
    这个问题明显小看人了,不用回答。
    3. 任何的逻辑系统都有严谨的定义. 如同intel有x86指令集一样. 请问您的道指令集呢?? 只有高级语言的寥寥几个简单例子也好意思到处吹嘘???
    我的工作不是专职设计cpu的、不是专职搞IT的,我现在的能力只是设计软件模拟,没有时间、精力去设计硬件cpu。现在很多国家cpu大肆抄袭国外cpu版权,再包装成自主、自有,而本人利用业余时间开发出真正自主、自有的cpu、编程语言,怎么吹都不过分。
    4. “所有的道指令必须被包装在道函数实例内运行, 如c语言和函数关系基本一样。”
    很抱歉的告诉您, c语言唯一必须的函数是main, 但是这是用来告诉编译器程序的起始点的, 并非”必须”包装在里面才能执行.
    这又明显曲解本人意思,我没有说c语言必须要函数、c语言必须要main函数,我的意思也只是道指令和道函数的关系基本与c语言和函数关系一样,所以请不要曲解本人意思。
    5. 再一次很抱歉的告诉您, cpu运算指的就是逻辑运算, 而非数学运算! 最底层有哪些门来着? 哪几个是基础的? 和n, p有什么关系? 复杂的门如何实现? 您还没学到这里来吧?
    “最基本、最简单的道指令也可实现这些数学运算”, 您的道指令可真够牛叉的!
    “[:…:]-> [:…:];这条指令用到的只有符号的对比、赋值,没有任何数学运算。”
    对比, 赋值都不是数学运算了, 您的对比如何比? 您赋的值哪里来的?? 这是数学领域新开创的黄式分枝吧!
    这又是在给人扣帽子。我已经一再强调最基本、最简单的道指令只有对比、赋值功能,对比就是符号值的对比是不是一样,赋值就是把一个符号的值赋予另一个符号。其他的如数学运算可以从这些功能用编程方法开发出来。请anonym说说看是不是还有比只有这两个功能更简单的cpu了,而且对比、赋值就是内存的最简单功能,那么用内存cpu实现道指令有什么不行了。
    6. 我从来不用微博, 因此看不了你的数据记录.
    但是根据您宣称的来看, “道程序被道指令编译器编译成为由很多数据表格组成的数据库中的数据记录”, 显而易见, 您的道指令在您所谓的编译过程中就已经被执行了! 所谓的编译后的道程序只是最后一步: 比较输入并提取相应结果. 结果是机器资源的大量浪费! 没有任何实际应用的价值!
    明显诚信不过,你看不了,自己去注册一下,又不会花很对时间。“显而易见, 您的道指令在您所谓的编译过程中就已经被执行了…”,这还是没有理解道指令运行方式,而且如果只是用内存cpu来实现道指令,用内存也比用通用cpu来的便宜,浪费点内存也没关系。

  180. huanghuihuang 于 2012-03-31 3:26 上午

    [有感而发]我发现免费、开源、公开是程序员作贱自己的代名词,就像搞it的,每个人都可以对他说:你会电脑,帮我修修、装装等,你还不得不答应,否则别人就有意见。但如果你对扫地地说:你会扫地,帮我扫扫,估计别人先把它给扫了。国内一些到处copy,拼凑代码的码农,一般也是嚷嚷:开源、公开,目的等着别人把代码解决了好copy。一般国外人思想境界高,看到新的软件功能,有时手痒了,顺便自己开发也搞了一套,让大家粘光。但开创性的东西一般国外也没有那么高尚,google也从不把bigtable、mapreduce公开源代码,只是在论文上吹了一番,倒是yahoo发挥高尚,把这给开源了,但结果沦落为被流氓欺负的境地。
    所以每个程序员,你们要注意了,当有人说,开源、免费时,那就是说:你会扫地,帮我也扫扫。
    前年我在一个论坛上稍微说了我的研究成果,以为老者当即说:年轻人有什么问题,提出来,我也许会帮的上。这就是俗人界与代码界的区别。

  181. anonym 于 2012-03-31 3:32 上午

    @huanghuihuang
    我无语了…
    你连一点最基本的cpu和程序设计方面的知识都没有, 还不如一个大一的本科生, 还好意思在这里吹牛…
    我甚至怀疑, 你是否真正有计算机方面的专业背景. 如果你是计算机相关专业毕业的话, 那成绩一定很糟.
    根据我的判断, 除了你的道思想, 你一无是处.
    不好意思, 不愿再在你的东西上浪费时间.
    还是那句话, 既然做了模拟, 不妨发两个完整的代码出来看看, 最简单的就可以. 然后你解释一下: 你的代码是怎么运行的, 模拟了什么东西. 你敢么???

  182. anonym 于 2012-03-31 3:35 上午

    @huanghuihuang
    你居然还担心有人copy所谓道指令?
    程序员这个称呼你也配?!!

  183. Panabit 于 2012-03-31 6:50 上午

    楼上的,我觉得你是吃饱了没事干,撑的。

  184. anonym 于 2012-03-31 7:11 上午

    @Panabit
    恩, 弯曲高人们都喜欢潜水看笑话.
    原以为黄道长有真东西, 只是语文不大好, 于是一时兴起, 就刨根究底的较了下真.
    到此为止. 希望大家不要见怪.

  185. 理客 于 2012-03-31 4:13 下午

    如道长实言,确实对社会并无危害,相比于许多已经危害社会的吹牛者,已经非常好了,但是,是否可以怎么吹都不过分,可能不能全由道长说了算。无论如何,道长比那些玩黄丸红丸的正道多了。
    目前电子计算的主要基础是二进制(vector计算机还不能普及),就是和我们老祖宗的八卦相同的进制,本质上应该说是类似的,但实际使用上则是两个完全不同的体系,道长把二者混在一起,结果不但没法做出这样的CPU,连清也说不了如何描述了,道可道非常道名可名非常名,不可言不可言,只可意会,如何科学?
    可以理解道长的支持最基本的判断和赋值的海量内存CPU,然后其他功能全部是软件实现,这个表面看起来很让人兴奋,虽然道长大事未成前不愿意让任何人看到里面的玄机机密,但如果要实际物理实现这个模型,你会发现目前的CPU就是其中最合理的一个模型
    计算机起源于数学计算,然后才到生活应用,所以最后,请教道长一个最简单的数学:一个基本的除法,比如99/4,如果用道CPU,具体是如何实现的?

  186. billy 于 2012-03-31 5:01 下午

    理客童鞋,上知天文,下知地理,横刀立马,高屋建瓴,才气十足……pfpf,何时莅临魔都给小弟一个机会得睹真容…

  187. billy 于 2012-03-31 5:03 下午

    依稀记得谢所还own me一份臭豆腐吃…不知何时才能兑现…甚是挂念…

  188. 理客 于 2012-03-31 5:21 下午

    有了billy的pf,真的也要黄道长了,在下虽然真容鄙陋,但希望有机会和弯曲的英豪江湖小会

  189. huanghuihuang 于 2012-03-31 6:45 下午

    理客果然高人,一句顶十句,一下子就看出了道cpu的本质,有机会要当面请教。

    关于道指令的进制问题,我再澄清一下,进制问题只是牵涉数的表示方法,这是表面的东西,跟客观事实没有关系,在某种条件下你可以用二进制、三进制、八进制丝毫无影响数的表达,甚至你用汉字表示也一样。
    那么我在道指令里最大的突破就是:第一抛掉数的表达问题,只用符号来表示,这个符号你用二进制、三进制、八进制、汉字都没有关系,什么方便就用什么。第二突破性地用阴阳、八卦处理符号集,符号的表示无关事实真相,但对事实的处理却是事实的最重要的事。宇宙四方,上下几百亿年,客观事实随时都在变化,这是事实在起相互作用,那么他们怎么起相互作用的,就要总结规律了,才能预测出事实变化的真相。中国的古人很早就思索宇宙,总结很多经验,这就是阴阳、易经八卦、五行之类的,这才是我们要学习发扬的东西。

    关于数学除法运算,比如99/4,我想即使现在通用cpu也不是那么简单的。道cpu对除法也可用通用cpu的算法用软件模拟出来,无非就是把除法转换成加减法、乘法,用查表法逐步近似算出来,就是麻烦一点而已。

  190. beans 于 2012-03-31 7:02 下午

    “前年我在一个论坛上稍微说了我的研究成果,以为老者当即说:年轻人有什么问题,提出来,我也许会帮的上。这就是俗人界与代码界的区别。”

    道长,你也有被忽悠的时候阿,你咋知道这说话的是老者呢? 人家这么说,是占你便宜玩呢。你没看出来而已。老头有几个上网跟你扯淡的,都玩鸟遛狗去了。这搞不好就是个matrix那类比你还菜的鸟,高深了你一把~~。有吹的,有捧的,这才有意思。

  191. huanghuihuang 于 2012-03-31 7:47 下午

    前年因编译器、模拟器问题,到各大网站上搜索资料,连【老子论坛】也看,这论坛基本上大都是老者。我看他们对《道德经》还是很推崇的,顺便把我自己的研究成果载录贴了一篇,几位同道中人还是赞同的。我知道他们对信息技术毫无研究,但对他们的话很是感激,但也只是表示一点兴趣而已,算不上忽悠。

  192. anonym 于 2012-04-01 6:36 上午

    @huanghuihuang
    文章和回复漏洞百出居然还能继续吹牛毫不脸红, 黄道长境界之高让人佩服.
    科学的发展都是由下到上的, 比如理论突破–>晶体管制造–>逻辑电路–>低级语言–>操作系统/高级语言/程序. 每级都牢固地建立在前一级的基础上.
    黄道长的道体系是从上到下发展的. 黄氏哲学–>黄氏道指令体系(现在只到这一步)–>完善黄氏高级语言–>黄氏低级语言??–>黄氏科幻电路??–>黄氏…??
    然则千年之后尚有黄道长这样的门生将本门哲学发扬光大固然可喜可贺, 老子自当含笑九泉!

  193. 理客 于 2012-04-01 2:59 下午

    道长既难以道可道,又不愿泄露天机,还无专业时间,也没法说如何从这样只有赋值+判断的内存CPU单元开始任何一种实际的计算,在弯曲的历史上,王大师、黑客帝和黄道长中,道长是最虚,很符合道家风范,王大师是最实在的,提供了实际的paper,所以能被批的很明白,被批的另外一个关键是王大师过分夸大了一个普通的科研成果,动机不纯;matrix的技术可行性和先进性不够,但也很实在,不害人;道长也不害人,但实在是够虚无缥缈,还是散了吧。

  194. multithreaded 于 2012-04-01 4:38 下午

    其实道长的天机就是把所谓推理的规则存在一个数据库里,这样就非常容易进行推理了。

    这样做法和PROLOG语言的设计有异曲同工的效果;不过太不专业,语言没有严格的语义 (Semantic),执行没有效率 (efficiency),再加上道家风范, 只好停留在“民科”的水平。

    建议道长要看两方面的论文:

    1。和PROLOG有关的。真看懂了,就会有“既生瑜何生亮”的感觉;

    2。和编译原理有关的。懂一点就够了!就知道目前你的做法是必可行的!

    不过道长在“民科”里,还算是高手。至少运用了程序的源源变换技术,值得鼓励。

    希望今后更实在些,多读些计算机系统学科的基本教材,就不会飘飘在上看不起我们这些码农了。

  195. 哈哈 于 2012-04-01 9:14 下午

    给道长出个题:
    用与门 或门 非门 组合搭建一个简单加法器.
    道长学过 数字电路 没有? 肯定学过吧.
    有些人连 BNF 都不知道咋回事,就要大言不惭实现一门新语言.
    道长肯定不是这样的人.

  196. 陈怀临 于 2012-04-01 9:37 下午

    我靠,这是《数字电路》的上机实习!:-)。。。

  197. 陈怀临 于 2012-04-01 9:41 下午

    哎,扫过众多评论,一句“语言没有严格的语义 (Semantic)”。就hit我的eye了。

    就知道多线程是内家高手呀。。。

    行家伸伸手,就知是大牛。

  198. huanghuihuang 于 2012-04-02 7:48 下午

    我再简单会答一下 理客的问题:
    数学运算道指令算法:
    +(add1,add2)(sum)
    {
    [add1=0, add1=0]-> sum1=0;
    [add1=1, add1=0]-> sum1=1;
    [add1=0, add1=1]-> sum1=1;
    [add1=1, add1=1]-> sum1=2;
    [add1=0, add1=0]-> sum1=0;

    [sum1]->;
    }
    为减少道指令程序数量,其中加数add1,add2可先暂定8位或4位,多位数的加法再用8位加法算法编程后算出。
    具体可参考以前博客(http://blog.csdn.net/huanghuihuang/article/details/4349044)。
    我已经把道指令所有有关的内容大都发表在博客上了,包括内存cpu的设计几乎前后写了三四篇,如《未来计算机畅想 》(http://blog.csdn.net/huanghuihuang/article/details/4615496)这篇。我想一个计算机专业的人不可能不能从这些文章中形成道指令的思路,弯曲上至少也有很多计算机大牛吧,那么为何还有这么多人认为我的设计是“民科”水平,本道人实在想不通,难道要我把一行一行代码亲自讲解一遍,把所有的图纸都画出来,好让某些人copy。
    multithreaded 、首席都是大牛,知道道指令核心本质。我记得以前首席还出了一题,想验证一下道指令是不是仅有形式自动机功能,是否没有图灵机标准。但其实自动机里没有符号的自动生成功能,道指令有符号自动生成也就相当于有了无限的存储功能。本质上所有的计算机器都可以用图灵机描述,那么图灵里有没有加减算法,答案是:形式上没有,但实质上有。图灵机很关键的地方在于它由一个功能就是纸带的移动功能,这移动功能就是偷偷把数学的加法(加一、减一)带到计算世界。有了左、右移动(加一、减一),不用实际的加减法功能就可以用(加一、减一)处理数学运算。所以读书时如果还相信图灵机没有数学运算功能,还认为道指令没有数学计算功能,那么就白读了。
    道指令目前当然还有缺陷。如没有正规的定义,程序库等,这与本人有很大关系。由于本人的目标主要是设计大脑智能机器,不是cpu、计算机语言,道cpu、道指令也是设计大脑智能机器的产物,甚至本人还有异想天开的想法,既利用道指令创造一种符合全能物理学的理论(这个才是民科想法),以前的《量子力学与道指令》一文,就是最初的尝试。
    临时性道指令就是由于思考了量子力学的结果而产生的灵感。临时性道指令现在已突破量子力学范围,应用于诸如数据库搜索的功能,也算是读杂书的好处吧。
    不是本人吹牛,当年本人大学的《数字电路》考试是全班第一,一些雕虫小枝不值一提。

  199. kevint 于 2012-04-02 10:43 下午

    懂了

    c语言算法
    uint sum(add1,add2)
    {
    return add1+add2;
    }
    道指令算法
    daoint sb()
    {
    daoint add1,add2;

    if(add1==0 && add2==0)
    return 0;
    else if(add1==0 && add2==1)
    return 1;
    else if(add1==1 && add2==0)
    return 1;
    else if(add1==1 && add2==1)
    return 2;

    /*how long is program goes depends on how many digit you want to process*/
    …..
    }

    c语言弱爆了

  200. 理客 于 2012-04-03 1:12 上午

    道长,kevint的翻译是否正解?如果有误,还请对kevint的翻译直接纠正。

  201. anonym 于 2012-04-03 2:38 上午

    kevint的翻译原理上正确.
    我前面就指出了, 道指令是对计算机资源的巨大浪费.

  202. anonym 于 2012-04-03 2:46 上午

    在现有计算机体系下, 在已有的道指令体系思想上发展而来的完整指令体系(如果能最终实现的话), 在任何方面都不会优于现有的语言及指令体系.
    立此为证.

  203. 理客 于 2012-04-03 2:47 上午

    因为数字是无限的,这个实现方法是没有实际意义的。道长未必是这么想的,道长应会有更巧妙的玄机和法门来实现这种道CPU。

  204. huanghuihuang 于 2012-04-03 6:40 上午

    我在说明一下道指令加法算法:
    +(add1,add2)(sum)
    {
    [add1=0, add1=0]-> sum1=0;
    [add1=1, add1=0]-> sum1=1;
    [add1=0, add1=1]-> sum1=1;
    [add1=1, add1=1]-> sum1=2;
    [add1=0, add1=0]-> sum1=0;

    [sum1]->;
    }
    我已经注明加数的位数不要太大。一般仅取4或8位数,如取4位时,两个加数的组合为256个,既有256个条指令,如取8位时,两个加数的组合为2^16=65536。那么这什么概念呢,既取4位,花费内存单元大概为0.5KB,取8位时,大概为200KB。一个算法从1KB到200KB,我觉得很正常,你想省点,就用1KB,不想省点就用200KB,无所谓。但是不管内存花费不多,但如果要每个程序员都这样编程,估计都吓跑了,所以在认识到这种弊端后,本人在模拟器上特别为数学运算增加了库,
    加法就可以很简单了
    sum(add1,add2)(sum)
    {
    [add1,add2]->《add1+add2》;
    }

    而且一个体系结构从理论到实际过程,是一个优化过程。图灵机是一个计算机体系的理论,但实现图灵机功能的与之不同但功能相同的机器。我看也没有人用图灵机编程吧。
    那么为何道指令从计算最基本的起点开始呢?
    1、智能的原因:我们大脑也没有先天的计算功能,我们学习计算时,每个都要从1+1.1+2…等开始。这根道指令一样,都要建立事实的规则后,再从这些规则匹配出最好的结果。
    2、学习的原因:虽然道指令一条一条的,数量庞大,编起来比现有的语言繁杂,但很关键的它可以在运行时再扩充规则库,比如:
    一个儿童大脑运算只有
    [add1=0, add1=0]-> sum1=0;
    [add1=1, add1=0]-> sum1=1;
    [add1=0, add1=1]-> sum1=1;
    [add1=1, add1=1]-> sum1=2;
    [add1=0, add1=0]-> sum1=0;
    道指令,每个儿童都会丛生活中开始学习
    那么他就会逐步加入以下指令:
    [add1=2, add1=0]-> sum1=2;
    甚至加入
    [add1=2, add1=2]-> sum1=2;
    这种错误指令。
    但没有关系,这些以后每个儿童还可以增加、修改。
    所以基于上述原因,道指令不得不这么做。
    所以 kevint 既然 把加法指令翻译成C语言,要是有空的话,把函数调用指令、临时形道指令翻译成c语言看看,那这里面就会有理客所说的玄机和法门了(如果再把动态形道指令、修改结果、修改条件等翻译,那么他可以作出模拟器了)。

  205. 哈哈 于 2012-04-03 7:28 上午

    黄道长,您的道指令集有哪些,您打算怎么实现您的道CPU呢?
    能不能说下,您道指令的取指,解码,执行等大致流程? 用啥实现呢

  206. 理客 于 2012-04-03 7:50 上午

    道长的意思是kevint的翻译是正确的了?道长是在给幼儿园开发数字启蒙吗?在下实在是驽钝,只是觉得道长应有玄机,但还是没能理解道长的玄机,如果实现64bits的加法,需要多少内存?除了加法,还有无数种数学运算,又会用多少内存?道长是否有玄机实现的道CPU不需要天文数字的内存就可以实现这些基本的数学运算?

  207. huanghuihuang 于 2012-04-03 9:06 上午

    to 理客 :
    如果不讲究效率,64bit 加法算法 可分成18个4bit,再通过4bit加法完成,基本不用再增加内存单元,只是效率很低。
    所以为消除数学运算效率过低问题,我们可以再增加一层道函数,为4为的数学运算提速,如采用超前进位等,反正尽量把数学算法的效率减少到两个函数调用是可以的。这些也可参考FPGA的数学运算算法,这点道指令与FPGA相似。

  208. yunhaid 于 2012-04-03 9:50 上午

    估计你在这个坛子里找不到知音了,再多的解释也没有,你老可以自己理解为“对牛谈琴”与其浪费口舌,不如扎实的自己完善理论体系,申请专利也是可能的,中国专利保护不好,就申请美国专利,到时候要是IBM,INTEL侵犯你的专利,要个亿万美金也是可能的。

  209. 胡不才 于 2012-04-03 7:18 下午

    老黄啊,放手吧。内存就是cpu,cpu就是内存。色即是空,空即是色。可是内存和cpu的速度至少差了一个数量级(DDR3, 100-266Mhz)。就好比人家开F1,你说太受限制了,又不环保,我骑自行车就行了:-)

    色不是空,空不是色。做到空色两忘才成道了丫

  210. huanghuihuang 于 2012-04-04 7:45 上午

    回答楼上疑问:
    内存cpu,难道真的要用内存来做cpu?再先进内存的他也是根据一个地址在一个时刻读出数据的存储介质。既然一个时刻只能读出一段数据进行处理,它的并行性就会受到限制。那么我们要用内存来设计道cpu,必须做到:
    1、改造内存结果,使得内存适合道指令处理,增加数据传输效率。
    2、增加内存道指令处理单元的缓存数量,使得同时运行的道函数基本都能加载到缓存上。
    3、增加alu处理单元,快速处理数学运算,如直接不惜成本集成成千上万alu单元。
    4、改造操作系统,使得系统运行的进程更加符合道指令运行方式。
    以上4条基本措施,基本上能够让道指令庞大的并行指令运行效率得到提高。
    对于第一、三条,增加内存的比较、复制功能,是非常容易做到的,其他数学运算在进入内存前先计算。这样在数据的传输到内存中就可以完成道指令的运行。
    第二条,用高速内存如ram作为缓存,效率就可得到飞速提升。
    第四条,抛弃操作系统的线程、进程概念,直接用道指令的并行概念代替,增加数据变化监控等。

  211. huanghuihuang 于 2012-04-04 8:24 上午

    【许多人问我,你的道指令是什么东西,可不可以比最好的输入法还好用,可不可拿来赚钱。这个问我的人不是爆发富,不是土包子,而是堂堂的从大学毕业出来的人。为什么他会这样问,因为计算机对他来说只是一个打字、排版的工具,他认为计算机最厉害的就是打字了。我当时无话可说了,这都是当年几百个开发输入法一拥而上的结果,那时整个中国都认为计算机的未来就是输入法,小孩从小就练习输入法,再没有比掌握输入法更有未来了,这就是学计算机从娃娃抓起的年代产生的后遗症。为教育后人,写一段道指令推广文,主要让受输入法毒害的人看看,否则到头来不但把计算机看扁了,把搞计算机的人也看扁了。】
    道指令借鉴古中国道家《道德经》《周易》等思想精髓,创造出融合阴阳、八卦、相生相克、生死理论等的真正的自主、自有的计算机架构、计算机语言、编程方式,让中国传统文化成为未来信息处理的先锋。道指令的开发,已经超越日本第五代计算机的构想,开创新一代大脑智能语言,成为今后信息处理的集大成者,甚至成为量子力学的替代者。

  212. anonym 于 2012-04-04 8:52 上午

    这到底算自卑呢, 还是自负呢?
    多么生动活泼的当代国人心态的缩影啊~

  213. kevint 于 2012-04-04 9:50 上午

    散了吧。我已经吐槽无力了

  214. anonym 于 2012-04-04 2:00 下午

    老子曰:” 有无相生.” 道长修行尚浅, 不明所以. 然则有无相生, 非常物以度; 阴阳数理, 亦不可同日而语. 道长何以拘泥于有而相忘于无? 曰: “无, 名天地之始; 有, 名万物之母. 常无, 欲以观其妙; 常有, 欲以观其徼.” 是以阴阳之理衍于有无. 道也, 观于目, 悟于心, 通于性, 非愚钝之人可解. 又曰: “天下万物生于有, 有生于无.” 道长之道既为有, 也必生于无, 可谓之”无中生有”也!

  215. 核撼叁 于 2012-04-04 2:28 下午

    坚决支持黄楼主,您的理论领先了当今世界N个光年。。。
    也可以说老祖宗的易经领先了N个光年。。。
    人类吧,折腾来折腾去就是跳不出如来的掌心啊。。。
    CNND的电脑,活活糟蹋了各位的身板和大拇指。。。

  216. 理客 于 2012-04-04 4:51 下午

    没想到道长已经修炼到了能无中生有的魔度,愿意陪道长继续玩娱乐也是一种乐趣,我不想魔了,洗洗,散了

  217. anonym 于 2012-04-04 7:10 下午

    乃们置算盘于何地!

  218. huanghuihuang 于 2012-04-04 8:38 下午

    “无中生有”可作为软件设计、开发的哲学,但不可作为人生哲学。创新性软件开发要求开发者从大量的实践中,总结出新的东西,这就要开发者要有“无中生有”的境界。如果达不到这个境界,只能copy已有的东西,这是“有中出有”的小聪明。
    前年,思想进入“无中生有”的境界,产生《道指令与易经八卦》成果,并且后来也把按这个思路做出来。现在我把它贴出来,让各位评论,是否达到“无中生有”的境界。

    《道指令与易经八卦》
    (http://blog.csdn.net/huanghuihuang/article/details/5478731)
    通过前一段时间努力开发,道cpu模拟器、道指令编译器终于完成了。经测试,完全可以代替目前以国外计算机科学原理为基础的现代cpu、现代计算机开发语言。但道cpu、道指令研究的初衷不是为替代现代cpu、现代计算机开发语言的,而是为了更大的目标,既弘扬古中国人的科学思想,并用这些思想来为我们现代国人服务。借此道cpu、道指令成功开发的时机,本文将论述如何用古代易经、八卦的思想更深一步地开发道cpu、道指令。

    前面在与网友交流时,稍微透露过,道指令的形式除了有阴阳两种形式外,还可以扩展成多种形式。如附图1“太极两仪四象八卦”图,道指令的阴阳形式只相当于图中两仪,还缺少“太极、四象、八卦”的形式,按照古人宇宙协调统一的思想,只有两仪形式的道指令是不完美的,必须进行扩充。

    首先、“太极”形的道指令。《道德经》:“万物生于有,而有生于无”,也即《易经》:“无极生太极”,讲述了万物发展的根基。如果宇宙由庞大的道指令集构成,这个道指令集在宇宙没有开始运转时,只是一些静态描述宇宙的运动方程,要让宇宙运动起来,必须有始发物体“有”,按照古人的思想,既“有生于无”。这个“太极”形式的道指令可表示如下:“[]”。现代cpu里也有这个“太极”,既cpu启动时的指令地址值,这个值不能由用户编程设定,必须在设计cpu时就要嵌入cpu的半导体电路里。道cpu的启动时产生,“太极”道指令运转,产生后续指令,这样就可以无限运行下去了。

    第二、“ 太阳”、“太阴”、“少阴”、“少阳”形道指令。阴阳形式的道指令虽然可以用来完成日常编程工作,但在一些特殊场合下用只有阴阳形式的道指令比较麻烦,增加“ 太阳”、“太阴”、“少阴”、“少阳”形道指令可以提高效率。道指令里的各个分布数是一种“无有“的关系,“ 太阳”、“太阴”、“少阴”、“少阳”就是“无有”的程度没有完全达到或超过阴阳道指令的关系。“少阴”、“少阳”、“ 太阳”、“太阴”道指令用如下表示:<[…]> 、[<…>]、[[…]]、<<…>>。

    第四、“八卦”形道指令。“少阴”、“少阳”、“ 太阴”、“ 太阳”道指令描述了“有无”“阴阳”之间“不达”“过”的关系,当它们脱离了这种状态时,比如从“少阴”转到“阴”、时,变为“阳”,或变为“阴”,就必须有这种形式的道指令,采用如下形式:

    “少阴” 转到“阴”,变为“阳”:[<[…]>]

    “少阴” 转到“阴”,变为“阴”:<<[…]>>

    “少阳” 转到“阳”,变为“阳”:[[<…>]]

    “少阳” 转到“阳”,变为“阴”:<[<…>]>

    “太阳” 转到“阳”,变为“阳”:[[[…]]]

    “太阳” 转到“阳”,变为“阴”:<[[…]]>

    “太阴” 转到“阴”,变为“阳”:[<<…>>]

    “太阴” 转到“阴”,变为“阴”:<<<…>>>

    根据“太极两仪四象八卦”原理设计扩展的道指令非常复杂,常人难于想象,没有具体编程经验要理解这些扩展,是一件非常困难的事,幸运的是,日常只要用“两仪”既“阴阳”形式的道指令就可以满足工作的需要了,不必为这么多指令烦恼。扩展如此多的道指令最主要的原因是,为了理解古人,应用古人的思想。

  219. 老陈 于 2012-04-04 10:59 下午

    看不懂这个道指令、道cpu。搞不懂,为什么要在现代计算机框架下,引入“道”。

  220. 理客 于 2012-04-05 12:36 上午

    黄道长比王大师技术差很远,但言论风格如出一辙,道长是不幸失足入魔还是深藏玄机故意入魔,不想纠结,有兴趣的可以继续在茶余饭后弯曲没有兴趣点的时候围观一下道长的娱乐节目,没事就散了吧,还有很多吃喝拉撒的正事还忙不过来呢。

  221. huanghuihuang 于 2012-04-05 1:50 上午

    to 理客:
    古人说:“术业有专攻”,我承认本道人在内存缓存算法技术方面比王大师差,但其他专业方面应该不会,这是两个不同专业领域问题。弯曲上还有其他各种专业人才,大家应该从思想(但不要幻想)、技术、经验等方面进行广泛交流,互通有无。

  222. 理客 于 2012-04-05 1:58 上午

    地球人都知道您和大师只是术不同,但行事言论风格如出一辙,可能天才的“有些部分是共同的”。

  223. huanghuihuang 于 2012-04-05 2:35 上午

    王大师行事言论风格会和本人一样,这是反话吧。
    看看王大师语录
    “Intel必然死在内存墙上”
    “多核多线程对内存墙于事无补”
    “采用了我的技术性能超越intel一倍”
    “因为内存墙的存在,使得复杂的CPU设计以及更多更快的CPU核心对性能提高没有任何贡献”
    本道人宅心宽厚,从不会用这种毫无事实依据的肯定式的语气,对intel也是保持敬仰之心,只对其在并行cpu架构上的改进抱怀疑态度。
    本人不但对王大师的夸大事实的文字深恶痛绝,而且怀疑他的缓存算法的真实性、实用性。

  224. 理客 于 2012-04-05 2:40 上午

    是不是一样,群众有眼睛是雪亮的,道长悟性极高,但能不能悟出自己的道,还是道长“自误”吧。

  225. huanghuihuang 于 2012-04-05 7:09 下午

    贴一下八卦指令源代码:

    //“少阴”、“少阳”、“ 太阳”、“太阴”道指令用如下表示:<[…]> 、[<…>]、[[…]]、<<…>>。

    //“少阴”、“少阳”

    index1 = ifconditionexpress.IndexOf(“<[");

    if (index1 == 0)
    {
    index2 = ifconditionexpress.IndexOf("]>”);
    if (index2 > 0)
    {

    condiction = ifconditionexpress.Substring(“<[".Length, index2 - "]>”.Length).Trim();
    ifconditionexpress = ifconditionexpress.Substring(index2 + “]>”.Length).Trim();
    InEventpairactivetype = 6;
    InEventpairlogictype = “not”;
    }

    }
    else if (ifconditionexpress.IndexOf(“[<") == 0)
    {
    //index1 = ifconditionexpress.IndexOf("[<");

    index2 = ifconditionexpress.IndexOf(">]“);
    if (index2 > 0)
    {
    condiction = ifconditionexpress.Substring(“[<".Length, index2 - ">]“.Length).Trim();
    ifconditionexpress = ifconditionexpress.Substring(index2 + “>]”.Length).Trim();
    InEventpairactivetype = 1;
    InEventpairlogictype = “not”;
    }

    }
    else if (ifconditionexpress.IndexOf(“[[") == 0)
    {
    //“少阴”、“少阳”、“ 太阳”、“太阴”道指令用如下表示:<[…]> 、[<…>]、[[…]]、<<…>>。
    //“ 太阳”、“太阴”
    //index1 = ifconditionexpress.IndexOf(“[[");
    index2 = ifconditionexpress.IndexOf("]]”);
    if (index2 > 0)
    {
    condiction = ifconditionexpress.Substring(“[[".Length, index2 - "]]”.Length).Trim();
    ifconditionexpress = ifconditionexpress.Substring(index2 + “]]”.Length).Trim();
    InEventpairactivetype = 1;
    InEventpairlogictype = “more”;
    }

    }
    else if (ifconditionexpress.IndexOf(“<<”) == 0)
    {
    // index1 = ifconditionexpress.IndexOf(“<<”);
    index2 = ifconditionexpress.IndexOf(“>>”);
    if (index2 > 0)
    {
    condiction = ifconditionexpress.Substring(“<<”.Length, index2 – “>>”.Length).Trim();
    ifconditionexpress = ifconditionexpress.Substring(index2 + “>>”.Length).Trim();
    InEventpairactivetype = 6;
    InEventpairlogictype = “more”;
    }
    }
    else if (ifconditionexpress.IndexOf(“[") == 0)
    {
    //"[...]” “<…>”
    index1 = ifconditionexpress.IndexOf(“[");
    index4=index1+"[".Length;
    do
    {
    index2 = ifconditionexpress.IndexOf("]“, index4);
    index3 = ifconditionexpress.IndexOf(“[", index4);
    index4 = index2 + "]“.Length;

    } while (index2 > 0 && index3 > 0 && index2 > index3);

    if (index2 > 0)
    {
    condiction = ifconditionexpress.Substring(index1+”[".Length, index2 - "[".Length).Trim();
    ifconditionexpress = ifconditionexpress.Substring(index2 + "]“.Length).Trim();
    InEventpairactivetype = 1;
    InEventpairlogictype = “and”;
    }
    }
    else if (ifconditionexpress.IndexOf(“<”) == 0)
    {
    index1 = ifconditionexpress.IndexOf(“<”);

    index2 = ifconditionexpress.IndexOf(“>”);
    while (index2 > 0 && index2 < ifconditionexpress.Length – “>”.Length)
    {
    string ifconditionexpressother = ifconditionexpress.Substring(index2 + “>”.Length).Trim();
    // trace(ifconditionexpressother);
    string ifconditionexpressotherfirstchar = ifconditionexpressother.Substring(0, “>”.Length);

    if (ifconditionexpressotherfirstchar != “[” && ifconditionexpressotherfirstchar != “<”)
    index2 = ifconditionexpress.IndexOf(“>”, index2 + “>”.Length);
    else
    break;
    }

    if (index2 > 0)
    {
    //
    condiction = ifconditionexpress.Substring(index1 + “<”.Length, index2 – “<”.Length).Trim();
    //trace(condiction);
    ifconditionexpress = ifconditionexpress.Substring(index2 + “<”.Length).Trim();
    InEventpairactivetype = 6;
    InEventpairlogictype = “and”;
    }

    }

  226. 疯了. 于 2012-04-05 8:37 下午

    哥们, 用硬件描述语言 实现下吧!

  227. 一帘幽梦 于 2012-04-06 6:17 上午

    百花争艳,百鸟齐鸣,以一己之力能做到如此探索已是不易,支持一下。

  228. multithreaded 于 2012-04-06 2:17 下午

    道长的几行C++ code无非在找匹配的符号而已!属于编译中最最基本的词法分析的范筹。

    难道你想说:词法分析==编译器吗?

    有空请你看一下:LEX/YACC, 并搞清楚 what is recursive descent parser, 就会悟出“天之大,我之小了”。

  229. kevint 于 2012-04-06 5:51 下午

    其他的不说了。。。我只是觉得,我要是把变量起名字叫ifconditionexpressotherfirstchar 。。。。不用我老板骂我,我自己找个地洞就钻进去了。。。

  230. huanghuihuang 于 2012-04-06 8:36 下午

    【还好我这是业余爱好,没有老板,没人监督,可以随心所欲。而且手工编译程序也不大,上千行而已,没有复杂到要规范编写,除非给自己找事做。

    我贴这段代码,主要是为了说明八卦指令已经实现,而非空想,如此而已。
    不用LEX/YACC是有原因的:
    1、不爱用第三方开源工具。
    2、LEX/YACC 对于中文的字符、关键字等支持不好。
    3、道指令的词法、语法分析也没有复杂到要用LEX/YACC来做,没有关键字、没有程序执行结构,用LEX/YACC简直小材大用了。
    4、手工编写才能体会编译器的精髓。编译器功能无非是为了解析出源程序的结构,程序的结构也无非是一些嵌套结构,相应的结构调用相应的功能函数。而道指令没有关键字、没有程序执行结构,仅有一条道指令的解析,把这条指令结构解析出来,相应的分析功能就出来了。

  231. haoling 于 2012-04-06 9:23 下午

    科学研究的范式:问题,抽象,理论模型,数学工具表达,推论,实验验证,证伪,

  232. sunmoon 于 2012-04-08 5:51 上午

    这个想法非常有发展空间,大家可以看看下面的视频,感觉有些暗合的地方,
    http://v.163.com/movie/2009/11/V/A/M6I12OHDE_M6I134KVA.html

  233. anonym 于 2012-04-08 3:34 下午

    楼上的视频什么实质的东西都没提到, 只是个科普性质的描述.
    不得不说, 你们把人工智能的实现考虑得过于简单了.
    完善的人工智能再给这个世界几十年也研制不出来.

  234. beans 于 2012-04-08 7:07 下午

    我觉得人类永远都实现不了真正的智能,现在人类对自己起源的认识就有问题。

  235. tektalk 于 2012-04-09 7:23 上午

    同意beans的说法,人工智能怎么能解决人的思想?人的创意?这两个东西对人类社会是很重要的,如果没有这两样,机器永远只是机器。

  236. 理客 于 2012-04-09 4:18 下午

    个人的修行太差,实在看不出道长的字符处理代码和道长不可道的道计算有任何一点实际的联系,除了名可名之外,莫非这就是道的不可道导致的没有悟道的人都不能理解期间的奥秘关系?
    道长看到有人在道长开创的现代计算机之道上误乐,道长是不是感觉良好,甚至比较high?

  237. huanghuihuang 于 2012-04-09 6:56 下午

    我看了正《斯坦福大学:健康未来:七个颠覆你思想的演讲> 为脑构建原理图、在芯片上搜索大脑》等科普片,感觉一点新意也没有,如模拟神经元的芯片模拟的深度如何、多个神经突触和多个神经轴突如何模拟、神经冲动如何模拟等都没有指出来。想学点美国的高科技不是那么容易的!
    有关道指令如何模拟神经元工作原理这里不再重复,感兴趣的人可以仔细领会。

    我回答一下 理客 的疑问:
    上述八卦指令代码只是道指令编译器的一段,这只是一段对八卦指令的解析,后被送入模拟器的数据库中,然后再被模拟器运行引擎调用,这时才展开各种道指令的运行,编译器是根本看不到运行代码的。
    我可以提醒一下,八卦道指令其实是神经元的一种阈值函数,它对神经冲动的分类还是比较粗糙的,但用来处理符号却凑凑有余。

  238. 理客 于 2012-04-09 7:30 下午

    道长乃真神人,玩吧

  239. matrixos 于 2012-04-10 2:20 上午

    现实世界,无论是人类还是其他生物,或是程序,基本运作框架其实就一个,输入—〉处理 -〉输出。

    道长的理论也避免不了这一模式,道长试图在处理环节搞一个巨大的数据库,并不断动态智能进行更新(所谓的学习过程),存储所有可能的匹配信息,以供输入到输出的查询转换,不知道我的理解是否正确?

    但是,这个只是一种输入到输出的转换框架,道长是否考虑过有关人类“意识”方面的东西,那可是最难的东西。换句话说,没有输入,你怎么考虑生命个体内部发生的系列变法和思想?

    并且道长的基本理论,其实N年前都出现了,就连紫光拼音都还有简单的词组记忆功能嘛,呵呵。

    一个非常简单的概念,故意阐述的过于复杂深奥难懂,不太像是实干一派, 更像是忽悠大师。

  240. matrixos 于 2012-04-10 2:29 上午

    关于matrixos操作系统,也只能勉强说成是,给出一套系统架构和代码设计方法,尽最大可能模拟现实个体对象的存在/构造,以及个体对象之间的互动关系,至于智能化,那应该是另一门科学,matrixos系统可能会成为这个科学一个技术基础。

  241. anonym 于 2012-04-10 5:20 上午

    本来就是忽悠大师.
    看文章和回复的内容就知道, 对生物物理这类的学科, 黄道长一窍不通. 用他本人的话来说, 就是知道一点科普知识. 计算机方面倒是知道一些高层的东西.
    就是这样, 还恬不知耻地宣称要实现智能机, 超越量子物理什么的. 黄道长还真以为那么多物理生物计算机界的前辈都是喝西北风的. 还听不进别人意见觉得全世界智商不够都是错的只有自己是对的. 目中无人跟凤姐前五百年后五百年有一拼.
    还什么众人道行不够. 既然黄道长是修道出身的, 不妨说说道家哲学世界观有什么优点? 把世界都归到虚无缥缈去了居然21世纪还有信徒. 哈.

  242. huanghuihuang 于 2012-04-10 9:12 上午

    【本来不想对任何不理解、误解道指令的评论做任何评论,但感觉如果不澄清一下,将会缪传千里。】
    to matrixos :
    一、现实世界是一个输入输出的系统,这没有错,关键在于如何处理,有的人用图灵机处理、有的人用冯偌依曼原理处理,有的用…等等,不一而足。所以我在前面已经特别指出,道指令利用道家阴阳、相生相克等古老中国哲学精髓来处理庞大的世界信息。这种原始的朴素的哲学原理能不能胜任处理信息的机制呢?是不是太简单了就不能用了,要制造集成上万的cpu的并行机来处理?答案显然是错误的,可用性不在于它的概念简单、复杂,概念反而越简单越好,而在于它提供的功能够不够用。图灵机概念也很简单,但它提供的功能却可以胜任任何计算机制,学计算机的人就不会轻视图灵机的简单性。
    二、道指令模拟机用了上百个数据库表、视图等来运行程序,而一个输入法用几个数据库表、视图就可以了吧,显然道指令不是输入法的简单匹配查找,否则,不用我忽悠,应该很多人就看出来了。
    三、当道指令运行起来后,所有的道函数事实上是永远在运行着,即使这个函数没有任何数据。一个函数的数据时刻在变化,这就像大脑神经元,成组的神经冲动会相互影响。
    四、道指令的原理很简单,简单到可以用任何理论来证实。如用《基于布尔逻辑代数的编程原理》或《基于神经元机制的编程原理》或《基于基因机制的编程原理》或《基于量子力学的编程原理》或《基于道家思想的编程原理》或《基于周易的编程原理》等等都可以作为道指令开发的原理。因为道指令用了如此众多理论,所以它的适用性广、功能强大。
    我不知道 anonym 是如何看出本道人对生物物理学科一窍不通,他有没有看出本人是当年我是物理高考的全国状元(满分),生物也仅差一分满分?仅懂一点科普知识就要设计cpu、语言?

  243. anonym 于 2012-04-10 9:20 上午

    高中学的知识不过是常识而已.
    以这点东西自吹自擂, 不过是井底之蛙!

  244. anonym 于 2012-04-10 9:26 上午

    黄道长曰: “图灵机概念也很简单,但它提供的功能却可以胜任任何计算机制”.
    曰: “道指令模拟机用了上百个数据库表、视图等来运行程序”
    又曰: “当道指令运行起来后,所有的道函数事实上是永远在运行着,即使这个函数没有任何数据”
    —————-
    稍有常识的人都可以看出来, 上述说法是多么的荒谬.

  245. huanghuihuang 于 2012-04-10 5:57 下午

    楼上还是道行不够。
    我说道指令牵涉到的生物物理高中知识就可以了,不等于本道人只掌握了这点高中知识,不等于高中毕业就没有再学习了。
    在我看来,高中知识都是精华,相对论的两条假设,量子力学的杨氏实验等等都可以学到。几十年前的大师仅凭这些简单的假设、事实就建立起宏伟的物理学大厦。一般人却对这种对基本的事实一般都不屑于故,认为只有高级的如博士学业才称得上知识。图灵发明的图灵机在当时的一些人看来,可能很低级,用纸带做存储,一个仅会左右移动的机械头,比当时的计算器低级多了。但是图灵就是用这些低级的东西建立利己后人的计算产业。
    真正大师是仅用最简单的知识,却可以推导出整个整个知识大厦,非大师只是会利用、copy已有的大量知识,根本创造不出知识来。

    道指令的概念很简单,但为什么模拟器却用到如此复杂的表结构?
    道指令模拟器不仅仅简单模拟指令结构,它必须模拟整个运行时的一切,进程管理,函数实例化,函数调用管理,函数调用、返回时的参数转化,符号生存期管理,匿名函数管理,动态指令管理,临时性道指令运行管理等等,这一切都必须在这100多个表结构里完成,已经相当于一个小型的操作系统了。

  246. anonym 于 2012-04-10 7:17 下午

    黄道长你要说你实现的是高级语言还有可信度. 但是你实在吹得太玄乎, 不值一批.

    你的每一句话几乎都有纰漏, 而且还不是语义学意义上的不严谨, 而是学识和认知上的缺失.

    很多东西你不敢详细解释, 因为你解释得越多, 你的无知就暴露得越多.

    如人饮水, 冷暖自知.

  247. James 于 2012-04-11 8:13 上午

    道长, 你的 “进程管理,函数实例化,函数调用管理,函数调用、返回时的参数转化,符号生存期管理,匿名函数管理,动态指令管理,临时性道指令运行管理等等,这一切都必须在这100多个表结构里完” 都需要在 表(或者数据库)中完成. 那么 数据库又是由谁来维护管理的呢? 是更底层的OS还是完全是硬件实现的? 是不是可以说数据库的(查询)效率就直接决定了你 道程序运行的效率? 你不会又说 得要开发出一套完全适应你道程序的 全新的数据库架构吧. 我估计道长是这样想的, 因为 道长还想要重新设计整个CPU 和mem 结构(见前发言).

  248. kevint 于 2012-04-11 10:12 上午

    有人在街上卖大力丸你们还围着捧。。。真是。。。

  249. huanghuihuang 于 2012-04-11 5:59 下午

    我回答一下楼上疑问:
    道指令模拟器用数据库仅是为了开发、测试道指令语言语义、道程序方便,没有考虑到运行硬件、效率等。这是第一步。当道指令语言语义充分完善后,再考虑第二步,如用c、c++语言编写模拟器,开发道指令的专有操作系统,用专用道cpu硬件代替通用cpu。这些后续工作要投入很多的时间、精力,所以本人量力而行,做到一步算一步,毕竟个人能力根本与国家大规模投入不可相比,否则,万一仅由一个人开发出自主cpu、计算语言、操作系统、数据库等,那就是一个国家天大的笑话。

  250. beans 于 2012-04-11 7:15 下午

    晕倒了,matrixos居然还和道长掐起来了。就你那破6千行外加5万行注释的东西,连个好点的本科生毕业设计都不及,跟道长的功利比起来简直天地之差,你也好意思出来说? 道长这个好歹还有点俺们看不明白的东西,就你那破玩艺忽悠的资格都没有。

  251. OLD HSer 于 2012-04-12 2:39 上午

    晕死了,matrix居然说matrix os会是人工智能的科学基础,从这句话,就可以判断这个人的水平了,OO只不过是一种工程方法,跟科学完全不沾边,你可以说1+1=2是科学基础,你懂什么是科学基础嘛?

  252. matrixos 于 2012-04-12 3:50 上午

    纠正一下之前的说法:matrixos可能会为人工智能提供一种可选的基础软件平台,之前我的文章也有提到过,应该是一种技术支持平台,而不是一种科学基础。

  253. matrixos 于 2012-04-12 3:53 上午

    另外某些网友跟我徒弟之前可能有些争斗和误会,之前的一些言论就不要继续进行了,谢谢

  254. matrixos 于 2012-04-12 3:58 上午

    给道长一个中肯的建议:建议不要把有关道学方面的东西般上来,大多数人都看得一头雾水,您直接用现代科学语言阐述你的思想和技术,有实力技术创新就不要怕别人看个明白,技术做得精妙绝伦,概念描述得越简单越好。

  255. tektalk 于 2012-04-12 6:20 上午

    弯曲垂死,大家快去准备香火吧。

  256. 理客 于 2012-04-12 7:48 上午

    matrixos的建议很对,但道长是不敢follow的,因为没了论道,道长都没了,成了255楼预言的

  257. 疯了. 于 2012-04-12 6:11 下午

    道长 以前搞过CPU ? 能不能教教我. 我愿意成为您的信徒.

  258. to 疯了 于 2012-04-12 6:30 下午

    道长没以前搞过CPU, 对这块了解得不多.

  259. beans 于 2012-04-12 7:55 下午

    matrixos,你那徒弟暴了你的老底,你还不把他逐出师门吗? 好歹也要先废了他武功,再打折双腿吧?
    你看看你那几个马甲说话的口气,一会儿拿你那5万多行注释的调度器跟windows比,一会儿跟vxworks比,一会儿又成人工智能基础了…. 这世界上不太容易找到第二个这么不要脸的人,所以这肯定都是你自己。你想吹牛出大大方方出来吹,躲躲闪闪的有意思吗? 这点道长比你强多了。

  260. aaa 于 2012-04-12 7:56 下午

    beans,得理要饶人,别这样,对你对别人都不好。

  261. 疯了. 于 2012-04-12 7:59 下午

    想在弯曲 拜个老师 学CPU设计.

  262. huanghuihuang 于 2012-04-12 8:21 下午

    本人还没有设计过真正的cpu,但如对道cpu感兴趣的话,有任何疑问可以向我提问。

  263. beans 于 2012-04-12 8:36 下午

    259楼的,你是matrix的哪个徒弟阿?
    想出来吹牛还怕别人说吗?吹牛的人都是不要脸的吧?

  264. huanghuihuang 于 2012-04-12 8:55 下午

    兄弟们,我看除了技术以外还是别争吵了,这些无益于提升自身修养。有时间还不如去和资本家争论,比如提升待遇之类的,或者投入时间去学习。

  265. matrixos 于 2012-04-12 9:52 下午

    呵呵,某些个网友对我还真是比较用心,谢谢这些网友的关注和认真,有了你们挑剔的眼光,我才能更加认真的去思考和做事情,再次感谢!

  266. aaa 于 2012-04-12 10:32 下午

    beans,我是过路人,别误会。你应该能看得出来我是好心。

  267. ork 于 2012-04-13 2:22 上午

    太热闹了,哈哈。

  268. 哈哈 于 2012-04-13 8:02 上午

    想去国外读博,首席能推荐下不? 我想学正统计算机,学这个道计算机,他妈的肯定找不到工作.

  269. 理客 于 2012-04-13 12:45 下午

    beasn支持道长,我支持黑客,其实相比之下大师的技术水平更扎实,但是也是大事最想忽悠圈钱,三位互有短长,不好分伯仲

  270. huanghuihuang 于 2012-04-17 1:16 上午

    受 multithreaded 启发 ,在道指令里增加搜索道指令,形式如下:

    搜索道指令(([fasfs,sgs,sdgsdg]))[sgsd,sgg,ssgd]->[sdfgdfgf];
    与临时性道指令区别在于函数括号,搜索道指令用”(())” ,临时性道指令用”()”,如下:

    临时性道指令([fasfs,sgs,sdgsdg])->[sfbfd,dfhdf];

  271. tttt 于 2012-04-24 9:37 上午

    这个贴应该往好的方便发展 大家慢慢帮大师纠正错误的想法 最后合集成一本漫画书《大话语言设计》 肯定有销量!

  272. linus 于 2012-04-29 8:34 上午

    希望lz借鉴LINUS免费使用和自由传播的精神公开道,定会得到支持

  273. huanghuihuang 于 2012-05-04 2:45 上午

    在运行时构造一个动态函数的目的,就是用已知的符号、符号值构造一个运行时自定义的函数。那么就会出现两个问题:一是引用当前函数实例符号的值,二是当前函数实例符号的值作为动态道指令实例化后的新符号。lisp语言里用Lambda表达式来构造高阶函数,道指令里的动态道指令也实现类似功能。如下:
    1、that. 表示引用当前函数实例符号的值,如that.sdfds,把当前符号值传到动态函数程序里。 2、thot.表示引用当前函数实例符号的值作为动态道指令实例化后的新符号,如thot.sdfss,sdfss的值将被作为动态函数的符号。
    用that thot表示符号的引用问题,比较不符合规范,但感觉用“&”“*”等符号来表示会与原意混淆。
    请有这方面经验的高手指导一下!

  274. huanghuihuang 于 2012-05-08 8:34 上午

    前几天看了一篇“为什么要用for”的博文,深受启发,随用道指令编了一道不用for的mapreduce道指令示例程序。如下:
    mapreduce示例
    {
    maifgn()()
    {
    [start]->[临时性道函数(345)];
    [start]->[临时性道函数(123)];
    [start]->[临时性道函数(2345)];
    [start]->[临时性道函数(67567)];
    [start]->[临时性道函数(567567)];
    [start]->[临时性道函数(576567)];
    [start]->[临时性道函数(567567)];
    [start]->[临时性道函数(5765)];

    临时性道函数([xthis.tyt])->[$ttttt=xthis.tyt];

    [[ttttt]] ->[sum=0+ttttt,显示结果,结束];
    }

    临时性道函数($tyt)()
    {
    }

    }

    以上程序经测试,完全运行正确。

  275. electricface 于 2012-05-11 1:58 上午

    [[ttttt]] -》[sum=0+ttttt,显示结果,结束];

    我对 sum=0+ttttt 不是很理解,求解释。

    =0+ 是累加符号吗?

  276. huanghuihuang 于 2012-05-13 4:59 上午

    sum=0+tttt 这是对=后面的符合进行加法计算,如sum=sss+fgghh+hgcc……,不管符合号多少个,是否重复,都一起累加。

  277. wonderful 于 2012-05-14 8:32 下午

    话题太高端了

  278. 曲径通幽 于 2012-05-14 9:07 下午

    支持黄先生的执着!

  279. 曲径通幽 于 2012-05-14 9:26 下午

    其实本人也有一些并行架构计算的思考,对目前存储指令结构计算机深感落后,目前已经设计好一些雏形设计图,但是我只排除了那些网上随便都能查到的那些并行架构跟我设想的是不一样的,不能确定是不是在别的地方早有人想到并发表了跟我类式的思路,各位高手,老师可否请教目前最先进的计算机体系结构都有哪些,各自的根本思想,在哪里能找到这些论文著作。我看一下,免得自己做无用功。

  280. huanghuihuang 于 2012-05-15 6:52 下午

    这本书《高等计算机系统结构–并行性 可扩展性 可编程性》 不知道有没有看过?

  281. 曲径通幽 于 2012-05-16 1:02 上午

    好的,我看看,不知道这本书和陈国良的《并行计算·结构 编程 算法》相比怎么样?
    另外,我已经完成适应单核单线程的系统上实现最优并行运行的并行CPU内部微架构和并行编程的详细设计方案,如果最后确认其创新性不知道是发表成论文合适还是申请专利合适?

  282. huanghuihuang 于 2012-05-17 7:47 下午

    陈国良的书没有看过,不好评论。
    关于知识产权保护,我认为应该申请专利保护。

  283. huanghuihuang 于 2012-05-17 9:05 下午

    经过一段时间思考,综合模拟器性能、编译器编写、代码美化等方面因素,决定对查询道指令采用如下的源代码形式,可保证三方综合平衡:
    查询道指令([ghfdg,gdfgfd])(tyhrt,hthtr,rtyhrt)([dfghdfgf,dfghdf]<egergfr,ergerf>)( <[egergr,erger]<egsdfergr,ergsde>> )([[egergr,erger]<egffergr,erger>])。

  284. 曲径通幽 于 2012-05-19 5:31 上午

    黄先生建议你画几张设计图来讲解,千言万语不比一张图能更容易让人明白你的思路,我觉得你描述道cpu,道指令…就跟你在用语言描述一个三维的物体让人很难在脑子里建立起很清晰的场景

  285. yunhaid 于 2012-05-19 11:38 上午

    群里有学习haskell语言的吗?

  286. abel 于 2012-06-06 7:43 上午

    忆阻器已经在工程上实现了,希望大家看看.
    记得是hp的工程师无意中做出来的,而忆阻器理论则早已经出来20多年了.

    而另一方面,我们对计算机体系的理论还停留在40年前,那个时候没人知道忆阻器是什么.

    诸位前辈经受过严格的工程训练,引经据典,言之凿凿.不过那些经典都诞生在没有忆阻器的年代,与之配套的理论和实践几十年来其实没有本质变化.

    我以为,开阔一下眼界,了解一些忆阻器的理论和工程实践,再回过头看看自己有限的认知,应该不无益处…

    另外,最近看到一个关于人脑神经网络内部结构的文章,看了配图,我对于电脑和人脑之间到底有多么不同,又多了一份感性认识.
    http://it.sohu.com/20120606/n344848780.shtml

  287. huanghuihuang 于 2012-06-08 7:18 下午

    费了很多不眠之夜后,终于把动态道指令(查询、修改指令条件,增加指令条件、增加指令结果等)各种功能集成在一条动态指令里。顺便修改编译器的符号扫描,现在可以支持全角的;[->,等,在输入指令时,不用在英文和汉字之间来回转换。

    源程序

    动态条件道指令4 //sdhfsd
    {/*jhdifsdji*/
    maifgn()()

    [start]->[yuyu=343,jkj="test3",$fgjgf="test1",start1];

    [start1]->[test([test1,test2]->)];

    [start1]->[test1,test2];

    [test1,test2]->[test(test1,test2)($hhhhh1)];

    [hhhhh1]->[test(([test1,test2]->([test3,test4][test5,test6]->)[$test9999=7676](test3))),test11,$end,test3=1231];

    [test11,test9999]->[test([test1,test2])($hhhhh2)];

    [test11,test9999]->[test([test1,test2,test3])($hhhhh3)];

    [test11,test9999]->[test([test5,test6])($hhhhh4)];

    [[hhhhh1,hhhhh4]][[hhhhh1,hhhhh2]][[hhhhh1,hhhhh3]]->[结束,显示结果];

    }

    test(test1,test2,test3,test4)(return)
    {

    }

    }

    运行结果如下:

    InstanceID FunctName TypedefName EventName EventValue
    0dc5d6ad-55f5-4bca-a065-c6acf7fa320a maifgn fgjgf test1
    0dc5d6ad-55f5-4bca-a065-c6acf7fa320a maifgn hhhhh1
    0dc5d6ad-55f5-4bca-a065-c6acf7fa320a maifgn test9999 7676
    0dc5d6ad-55f5-4bca-a065-c6acf7fa320a maifgn end
    0dc5d6ad-55f5-4bca-a065-c6acf7fa320a maifgn hhhhh3 1231
    0dc5d6ad-55f5-4bca-a065-c6acf7fa320a maifgn hhhhh3 55
    0dc5d6ad-55f5-4bca-a065-c6acf7fa320a maifgn hhhhh4
    0dc5d6ad-55f5-4bca-a065-c6acf7fa320a maifgn hhhhh4 55
    0dc5d6ad-55f5-4bca-a065-c6acf7fa320a maifgn 显示结果
    0dc5d6ad-55f5-4bca-a065-c6acf7fa320a maifgn 结束

  288. 2b青年. 于 2012-06-10 9:03 下午

    自己玩去!

  289. 路过不平之徒 于 2012-06-11 5:01 上午

    在弯曲潜水了一段时间,今天看到这篇被挖上来的文章一口气将288条评论看完,忍不住上来打抱不平一下。

    无可否认的是,[b]冯.诺依曼架构的提出并没有考虑多核的可能性[/b]。正如当年的640K内存限制一样,有时代的局限性。但在640K内存早已被大幅打破的今天,在多核时代仍然死抱着冯.诺依曼架构以及基于该架构基础上建立起的一系列理论体系、观念不放,未免显得落入思维定势。
    多核发展到今天,核间对共享的内存、总线、外设的竞争逐渐且注定成为多核系统中最大的瓶颈。业界在高性能、高运算量的行业应用领域里也渐渐倾向于从通用领域的SMP架构转向AMP架构。
    正好弯曲有个FP2网络处理器的分析且弯曲对NP颇有造诣,遂信手摘录部分:
    ”1. FP2的NP有112个cores, 排布成16行7列。
    2. 每一行完成一种业务转发。如第一行做MPLS转发,第二行做IP转发。
    3. 而每一行又有7个Core,这说明它是典型的Pipeline架构,由7个Core接力完成一种转发业务(如MPLS转发);
    4. 共有16个rows,说明有16条独立的流水线。每条流水线都可处理任何业务,具体是根据输入的包来决定。
    5. 每一行的包能保证输入输出保序,说明它是严格的流水线,一个包只会沿着一条流水线走,中间不会切换到其它行;
    6. 再考虑到整个芯片要在16行之间保证顺序(例子,处理single flow IP转发),故需要一个输入分发模块和输出排序模块;
    7. 每个Core可以有自己的微码空间“
    在此提出几个简单问题:
    112个cores是如何协同工作完成一个数据包的转发的?某一组cores的输入是否来源于上一组cores的输出结果?
    每个Core是否有自己独立的代码空间和数据空间?
    关键问题来了,在数据包处理、转发过程中,[b]每个Core上所执行的运算是否可以用一句或长或短、或简单或复合的布尔逻辑表达式来描述?[/b]

    抛弃大脑里的思维惯性与定势吧,LZ所说的“内存CPU”也好“道CPU”也罢,实质上是一组简单的布尔逻辑运算电路+一小片独占的执行/运算所必需的储存电路的综合体而已,这是新一代计算机的基本运算单元而不是现代传统意义上超大规模集成电路的芯片。在后者的Die size上完全可以集成百万乃至上千万级的前者(“道CPU”)。也请别再用内存管理怎么做、总线如何仲裁这种问题来问LZ了,问出这种问题只能说明你压根就没好好看(或者是没看懂)LZ这篇文章的前两段(起源和设计)。
    现代的数据访问方式:
    ABI约定了上级函数会将参数1存放在r3寄存器并压入了栈中,地址是SP+sizeof_fp+sizeof_lr。所以我要从SP+8(假设是32bits系统)地址的内存中取出栈内容放到r9寄存器里。
    而未来的数据访问估计会是这么一种形式,请输出关于参数1的数据:
    N个1级运算单元(或叫道CPU,N取决于集成度)在自身独占内存中做比较,match则输出,否则发出继续执行的指令给2级运算单元,直到有输出或者全部运算单元都比较过一遍为止。没有内存地址,没有内存分配,也不需要约定俗成的ABI,正如我们至今还记得高中物理题的答案却无法也无需知道这答案储存在于哪颗脑细胞中。

    诚然,LZ离未来的计算机架构或者人工智能计算机还有很长的路要走。甚至包括我在内也认为他搁置新型架构系统的硬件实现不理会而先去设计编程语言是本末倒置、空中楼阁。这种新型系统的架构实际上将现代CPU复杂的内部逻辑推迟到了硬件互联阶段,难点不在于指令或语言的设计而在于如何实现百万级别的”道CPU”之间高效且可复用的核间连接,以能保证在极短的时间内并发完成百万级别数量”道CPU”的遍历执行并可以轻易地将”道CPU“数量从N增加到N+1而不用改动太多电路。希望LZ能重新审视实现的关键,别再搭建空中楼阁而是将精力投入到正确的方向中来。

    每个时代都不乏异想天开之徒,那位给自己安上翅膀并从崖上跳下去的哥们甚至还为自己的异想搭上了性命,即便最终飞机的实现者并不是当初那位跳崖的哥们,但至少他不应该被我们冷嘲热讽以及作为茶余饭后的谈资。何况他目前正抱着满腔热情和精力热烈地投入到他自身的理想中。

    最后,在此杜撰寓言一则,与诸君共勉:
    李白问鲁迅曰:“阁下可懂五言七律?”
    鲁迅:此乃常识,晚生自然明白
    哦?何处所学?
    惭愧,学生早年师塾中所学
    哼!未上过国子监仅凭师塾所学便敢妄称懂得五言七律!?还大言不馋要另创新文体!对仗没有也罢,平仄你有么,押韵你有么,你丫这所谓的白话文新文体根本就是大言不馋、沽名钓誉之狗屁!!!
    鲁迅:……
    (原本想将这段寓言放在开头的,但考虑到国情人性若放在开头多数会影响诸位对本评论的阅读质量,故此放在最后以作回顾)

  290. 曲径通幽 于 2012-06-12 7:31 上午

    abel果然高见!我正想找忆阻器这种类型的东西呢,另外,我觉得模糊数学也应该是类人脑计算机的一个关键理论!

  291. huanghuihuang 于 2012-06-13 9:40 上午

    感谢”路过不平”的鼎力支持,不但阅读了3年来本人陆陆续续写的、回复的帖子,而且还写了很长的回帖,可见学识、修养水平,有空多指导。

  292. abel 于 2012-06-16 8:49 下午

    晚辈惭愧,高见不敢当.
    过程与状态的紧耦合,忆阻器和电容都能实现.
    但能够无源地记录状态/过程,只有忆阻器.
    我仅仅是打开了一扇门而已,希望前辈们放弃成见.

    “路过不平之徒”的大部分观点,我都同意.
    他对于楼主的批评建议更是直指关键,非我所能及.强烈赞同.

    唯独最后那个故事,窃以为略有不妥:
    白话文简直是用方块字写拉丁语.
    白话文在今人与古人之间,狠狠地割了一刀,非常不利于今人吸取古人的智慧经验.
    古文中的散文/诗词/赋,无论演变如何激烈,都有继承.但是到了白话文,这种继承关系戛然而止了.
    变革应该建立在继承的基础上,而不是割裂.

    如果把李白换成牛顿,鲁迅换成胡克,这个预言也许更恰当,也更贴合这个帖子中的情境:对立的两者在同一话语体系内.
    http://www.cas.cn/jzd/jfk/jxzktx/200308/t20030806_1725630.shtml

    扯多了哈.

  293. multithread 于 2012-06-19 5:11 上午

    如果没有在ACM的OSDI, ISCA, PLDI, PPoPP, SIGCOMM发表过文章; 退一步讲连每个会议的一篇文章都没有读过的,而是只看了一、两本书的话,请到人工智能的论坛里“吹“所谓的CPU设计。

    在这里请亮出:Verilog/VHDL, systemC or C model来;否则只是”笑谈“而已。

  294. huanghuihuang 于 2012-06-19 7:56 上午

    【被人研究道cpu、道指令纯粹业余爱好,所以也没有准备要在ACM的OSDI, ISCA, PLDI, PPoPP, SIGCOMM发表文章,也根本没有读过一篇此类文章。研究时也断断续续,仅凭心血来潮,那一天不感兴趣了,可能就扔一边了。但为了让同行知道中国还有异类的研究cpu、指令的人,所以就把道cpu、道指令贴了三个地方,留下历史记录,到几十年后,自然有人再去翻翻看,从中得到启发的。

    前天看了外国人开发了memsql,把sql编译成c++,相当于把sql当成另外一种c++语言,道指令用sql开发,如果用mensql实现道指令,那么也就用c++实现了道指令,性能肯定能得到提高。

  295. 二大妈 于 2012-06-19 6:53 下午

    有想法就该鼓励,希望他即使没做成,也希望能把失败经验教训分享一下。

    不过我还是没有完全理解道CPU的工作原理,似乎是想通过查表的方式代替计算?可是有那么大的内存吗?而且有没有想过如何克服内存墙的问题?

  296. 2b青年. 于 2012-06-27 10:06 下午

    没文化真可怕啊.

  297. huanghuihuang 于 2012-06-28 10:12 上午

    费了许多不眠之夜,把道指令模拟器与web服务结合起来,现在请感兴趣的进入这个地址试一试:http://59.57.21.26/daocpu/codeedit.aspx 要运行请先随便注册用户名。有问题,请反馈在这里。

  298. kevint 于 2012-06-28 8:06 下午

    糟糕!谷歌浏览器无法连接到 59.57.21.26

  299. huanghuihuang 于 2012-06-28 9:04 下午

    我试了一下谷歌浏览器可以上http://59.57.21.26/daocpu/codeedit.aspx。
    操作说明:
    1、先在账号、密码框里随便输入字符,点击注册,你自己的账号、密码就建立了。
    2、再用你的账号、密码输入后,点击登录,你就可以了运行到指令程序了。
    4、选左边程序列表的程序(全部已经调试、测试过了),源码框就会显示改程序源码。
    5、在函数名、变量名、变量值 输入表格中输入第一个函数名,第一个符号变量名后,点击输入变量数据并运行按钮,等待运行
    6、可以把源码复制下来,在程序名输入框里输入自己的程序名,点添加程序,再在左边程序列表里点选后,把复制源码粘贴上去,就可以修改并保存、编译了,运行。
    7备注。因为后台服务设定5秒的数据监测,运行可能会达到5秒之久。

  300. huanghuihuang 于 2012-08-29 2:04 上午

    近来杂事不断,把道指令丢脑后了,今天突然有事又想起来了,并且有了一个全新的灵感:临时性道指令对函数的多个实例进行临时插入指令,那么它没有办法对由他生成的各函数实例进行临时插入指令,所以必须增加一种对函数调用实例进行临时插入指令的机制,这种机制可以对函数的调用树(栈)的函数临时插入指令,这种机制可以暂时令名为树形道指令。