我的电脑生涯(9):TOP-DOWN
(2011-08-20 18:13:51)
标签:
日本结构化程序设计转移指令编程方法东芝公司 |
分类: 电脑与智能手机 |
在调试过程中日本专家小林先生给了我很多帮助,他不仅指导我如何调试设备,还给我提供了一些东芝公司内部的技术资料,例如编程规范,编程方法等等。其中后来对我的软件设计有影响的是结构化程序设计方法。
1)结构化程序设计方法的特点之一就是“TOP-DOWN”,即自顶而下的设计。所谓上,就是宏观的东西,下就是微观的东西。和它相反,也有自下而上的方法。如果采取自下而上的方法,就是先把具体的东西做好,再组成整个系统,这样做的缺点是容易陷入具体的细节中而迷失了主要的方向。
自顶而下,在设计框图的时候,第一张框图,应该只用一页纸就把全部要做的事情包括在内。这页里面,可能画了几个方框,表明要做的几件事情,然后,每个框再对应另一页,这页中又有几个框,这样逐步细分下去,直到细节末端部分。
2)结构化程序设计方法的另一个特点就是“一个入口一个出口”,即任何一段程序,只有一个入口,也只有一个出口。就是说,不能用转移指令从这个程序里的某个地方直接转到另一个程序去。这样做,程序的可靠性很高,如果某段程序出了问题,可以把它入口和出口之间的这段切割出来进行修理改正,然后再连接回去,而不会影响程序的其它部分。
关于结构化程序设计的方法,在网上可以查到详细的信息,所以这里不细讲。再说,我们在武钢只是参加调试,程序都不是我们设计的,所以当时我只是跟着小林先生学习,但是这个设计思想,对我后来的工作有着重要的影响。
后来,在八十年代初,我又听过北大数学系王选教授讲的存根法,把存根法与这里说的结构化程序设计方法结合起来,使我后来编程的效率提高了很多。所谓存根法,就是在自顶向下设计时,假定某个程序要干的工作叫做“任务甲”,那么在一开始的时候,这个程序就干一件事,例如,就是在屏幕上显示一句话:“任务甲已经完成”,至于这个任务,留待后面慢慢去做,这叫存根。用存根法,有很多好处:
1)采取自顶向下的方法而又存根的话,程序在开始调试的时候,逻辑关系很简单,这是因为所有要干的事情都是用虚拟的方法做完的,所以要调试的只是程序的逻辑,而不是具体任务。
2)每个原来存根的任务,在设计的时候,都遵循一个入口一个出口的原则,这样做好甚至调试好之后,再用它替换掉原来的根。万一替换完主程序就出问题了,那么问题多半出在这里。
3)到程序最后全部调试完毕的时候,主程序是每次被运行的最多的部分,经历过考验了,所以也最可靠,即使有问题,也多半是那些后来补充进来的底部细节,所以总体来说程序的可靠性比较好。