量子编程法(003):面向文档的编程

本文介绍了一种使用Excel作为编程工具的量子编程法,通过在Excel表中定义量子的属性和代码,自动生成源代码,实现了面向文档的编程,极大地简化了编程过程并减轻了文档管理和软件维护的负担。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本节目录

       量子编程法的编程工具

       面向文档的编程

 

量子编程法的编程工具

上两节已完整的介绍了量子编程法的原理和数据结构,也实际编程运行了两个示例程序。

可以看到,在量子编程法中,每个量子的数据结构以及动作和确认过程在结构上都是相同的,因而编程时可以对量子进行一致性处理,并且自动生成代码。

因此,我们采用一个工具来进行量子编程法的编程。这个工具就是Excel

在上两节的示例程序中看到,我们也是利用Excel表,每一行代表一个量子,将每个量子的各个组成部分列出来,甚至量子对应的动作和确认代码的主体部分也放到了表格中,使得对每个量子的设计和管理变得方便和清晰。

利用Excel进行量子编程法的编程过程如下:如下图所示,用Excel表写出每个量子的名称、描述、源量子、继量子、代码等等信息,然后通过另外编写的VBA处理程序,生成所有量子的源代码并输出到源代码文件中:

这与C语言中的“宏”的原理有点类似,Excel表中的量子信息类似C语言的宏代码,VBA处理程序类似C语言的预处理程序,二者都通过处理程序生成实际的源代码供编译或解释执行。(微软将VBA称为“宏”是否就是这个原因呢?)

上图中的“动作代码”列和“本身确认代码”列中代码是VBA代码,因而要用产生VBA代码的处理程序。如果要产生其他编程语言的代码,就要在“动作代码”列和“本身确认代码”列中填入相应编程语言的代码,当然VBA的处理程序也不同。

面向文档的编程

利用Excel,量子编程法的编程方式发生了革命性的变化。编程不再是在代码编辑器中一条一条的写语句,再加上注释。而是在Excel文档中,一行一行的写出量子的各种组成部分,写出量子的名称、各种描述、相关的代码、源量子继量子等等,然后自动生成最终的源代码。

因此这种编程方式可称为“面向文档的编程”

进行面向文档的编程的Excel表格称为“量子编程表”。在量子编程表中,量子的排列顺序是不重要的,可以通过Excel操作任意交换行的顺序,根据需要进行分组及添加各种标记等。一个编程方案思考好了之后,可以立即开始编写,可以从任何一个量子开始编写,想到哪里编到哪里。也可以在移动设备上,利用各种碎片时间编写,走到哪里编到哪里。

在传统的软件开发中,文档管理和软件维护是必不可少的工作。当采用这种面向文档的方式编程时,文档和代码是同时产生的,一一对应,能够准确的描述软件的各个细节,因此极大的减轻了文档管理和软件维护的负担。

在面向文档的编程过程中,阅读源代码实际上就是阅读文档。例如在上图所示的量子编程表中,从驱动链的起点量子开始,沿着继量子,可以找到此量子系统的两条驱动链如下:

1条:InitQtmSys(初始化量子系统)——frmMain(显示主窗口)——BindlblLabel(将系统控件与lblLabel绑定)及txbNum1(将系统控件与txbNum1绑定)

2条:evtCommandButton1_Click(响应事件:点击CommandButton1——strNum1(从txbNum1中获取文本)——vNum1(将strNum1转为数值)——vNum2(计算vNum2的值)——lblLabel(显示vNum2

上面两条所显示的是设计的驱动链,但在程序运行中,驱动链并不一定都会从起点一直运行到终点。这很好理解,因为一些量子需要确认,如量子没有得到确认,则驱动终止。

因此如果考虑到源量子,2条驱动链可以有以下更完善的描述:

evtCommandButton1_Click(响应事件:点击CommandButton1——strNum1如果txbNum1存在,txbNum1中获取文本)——vNum1如果strNum1是数值,strNum1转为数值)——vNum2如果vNum1有效,计算vNum2的值)——lblLabel(显示vNum2)。

当然,此过程也可以编写一个VBA程序来处理。

本节到此结束。

下一节:量子编程法(004):量子系统的设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值