信息处理基本原理-设计5

来源:互联网 发布:linux 命令行图形界面 编辑:程序博客网 时间:2024/06/07 07:38

这几天一直在思考道指令:

[原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>->生成信息。
    
是否满足编程足够需要,否则道指令虽然简单,但编程时却不能满足高效、灵活的要求,导致采用道指令设计的程序充满各种难懂的语句。

1、对数学运算查表方法的支持程度。

加法运算:+()或add()或加()

+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]-> (sum=sum1);

}

上述加法函数定义形如[add1=0, add1=0]-> sum1=0;各条语句的意思就是当加数add1add2分别满足00时,就产生sum1并且sum1的值为0;其它各条语句也是同一个意思。最后一条语句[sum1]-> (sum=sum1)就是当信息sum1出现时,不管它的值如何,把sum1的赋值给sum并返回函数值。

其它各种数学运算也采用这种函数定义的形式。

考虑到cpu的设计,如为了实现8位的数学运算,一种运算需要256*256=65536=64K条语句,估计将进20种数学运算,那么需要64K*20=1.25M条语句,每条语句采用10字节指令,总共需12.5M字节.

上述对数学运算的编程评估,为了实现8位简单的数学运算竟然花掉了12.5M的存储空间,当代最高级的cpu内部也没有这么多存储空间,实在有点夸张。但是信息cpu不同于通用的cpu,各种数学运算的程序都是存在于信息cpu的内存中的,与cpu的指令空间无关。这样做的关键在于,信息cpu的价值不在计算而在于信息比较,利用易于维护的内存代替不易维护的cpu布线设计,还是很有经济价值的。

2、判断语句

各种形如if.else如何实现?采用程序如下:

[i=1]-> sum1=1; ifi=1{sum1=1;}

[i=1][j=1]-> sum1=1; ifi=1||j=1{sum1=1;}

[i=1,j=1]-> sum1=1; ifi=1&&j=1{sum1=1;}

 

[i]<i=1>-> sum1=1; ifi!=1{sum1=1;}

[i][j=1]<i=1>->sum1=1; ifi!=1||j=1{sum1=1;}

[i][j]<i=1><j=1>->sum1=1; ifi!=1||j!=1{sum1=1;}

[i,j]<i=1,j=1>->sum1=1; ifi!=1&&j!=1{sum1=1;}

3、循环语句

各种形如while(){   }如何实现?采用程序如下:

{}内作为一个函数while()(,

[i,j]<i=1,j=1>-> whileij)(ij;whilei=1j=1{   };

比较别扭。但最好充分利用每条指令都在循环执行的机制,消除循环语句。

4、信息树处理

形如:

1)   信息1出现时而信息2不出现时,产生信息3的信息编程:

[信息1]< 信息2>->信息3

2)   信息1或信息2出现时,产生信息3的信息编程:

[信息1][ 信息2]->信息3

3)   信息1和信息2一起出现时,产生信息3的信息编程:

[信息1,信息2]->信息3

4)   信息1和信息2仅有一个出现时,产生信息3的信息编程:

[信息1][信息2]< 信息1, 信息2>->信息3,

5)   信息1出现与信息2、信息3其中一个出现时,产生信息4的信息编程:

[信息1,信息2][ 信息1,信息3]< 信息2, 信息3>->信息3,

等等。

考虑如何编制上述各种编程常见的语句形式,目前道指令还是可以相当圆满解决这些问题的。

原创粉丝点击