道指令程序注释

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];

}

 

}

 运行结果载图:

以下讲解上述程序如何运行:

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

//首先程序空间hhhyyyy

 

hhhyyyy

{

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

main()()

{

        /* dgdfg符号是函数开始符号,这个符号必须由函数输入参数传入,或在主函数中由用户直接传入*/

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

              /*[dgdfg]表示dgdfg符号存在时,便激发“->”后的生成指令,f函数就可以执行调用了,调用后dgdfg符号就丢弃了。当f(n)( result)函数调用完成后,result 的值赋给ttttt ttttt可以使用了*/

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

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

}

f(n)(result)

{

[n=1]-><1>;

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

[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(….)(….)

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值