本节目录
量子编程法的编程工具
面向文档的编程
量子编程法的编程工具
上两节已完整的介绍了量子编程法的原理和数据结构,也实际编程运行了两个示例程序。
可以看到,在量子编程法中,每个量子的数据结构以及动作和确认过程在结构上都是相同的,因而编程时可以对量子进行一致性处理,并且自动生成代码。
因此,我们采用一个工具来进行量子编程法的编程。这个工具就是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程序来处理。
本节到此结束。